0924_MEMtoCPU.c |
#include <stdio.h> typedef struct _Context { int efl; int eip; int edi; int esi; int ebp; int esp; int ebx; int edx; int ecx; int eax; }CONTEXT; void PrintReg(CONTEXT *); void STST(CONTEXT *); void LDST(CONTEXT *); int main() { CONTEXT stpReg = {0,}; PrintReg(&stpReg); STST(&stpReg); PrintReg(&stpReg); getchar(); LDST(&stpReg); // STST로 가게해줌. while 문 역할 // 메모리안에 있는 정보를 CPU 로 옮겨준다. printf("Kernel Panic\n"); return 0; } void PrintReg(CONTEXT *stpReg) { printf("------------------------------------------------\n"); printf("EAX VALUE : 0x%08x ECX VALUE : 0x%08x\n", stpReg->eax, stpReg->ecx); printf("EDX VALUE : 0x%08x EBX VALUE : 0x%08x\n", stpReg->edx, stpReg->ebx); printf("ESP VALUE : 0x%08x EBP VALUE : 0x%08x\n", stpReg->esp, stpReg->ebp); printf("ESI VALUE : 0x%08x EDI VALUE : 0x%08x\n", stpReg->esi, stpReg->edi); printf("EIP VALUE : 0x%08x EFL VALUE : 0x%08x\n", stpReg->eip, stpReg->efl); } |
0924_Monitor.asm Source |
.386 .MODEL FLAT |
실행화면 |
▶ STST 함수 CPU -> Memory , CPU 안에 있는 레지스터 값을 메모리에 저장
▶ LDST 함수 Memory -> CPU , 메모리 안에 있는 레지스터를 CPU 로 돌려줘서 다시 STST 함수가 실행 되도록 하여 무한반복문 동작을 한다. |
'Assembly' 카테고리의 다른 글
2013.09.26_ASM_어셈블리 영역 출력하기(수정중~30) (0) | 2013.09.27 |
---|---|
2013.09.25_ HexaView 응용해서 스택구조확인 (0) | 2013.09.25 |
2013.09.23_어셈블리_ 메모리에 변수값직접넣기 (0) | 2013.09.23 |
2013.09.12_ASM_Disassambly로 분석해보기 (0) | 2013.09.13 |
2013.09.11_스택영역을 확인해보자_스크랩 (0) | 2013.09.12 |