다음은 함수 포인터가 가리키는 컴퓨터 코드를 읽고 인쇄하는 나의 시도입니다. 현재 인쇄되는 데이터는 생성 된 코드와 다릅니다 ... 생성 된 실행 파일에서 생성 된 포인터의 값을 확인한 후 디스어셈블러 (코드/디버거간에 차이점이 있음)가 표시되지만 돈은 표시되지 않습니다. 문제가있는 것을 보거나 문제를 해결할 수있는 방법을 이해하십시오. 여기함수 포인터를 역 참조하고 MSVC++에서 데이터로 읽는 방법은 무엇입니까?
void dummy();
int _tmain(int argc, _TCHAR* argv[])
{
int i;
printf("\nReading dummy...\n");
for(i = 0; i < 25; i++)
printf("%.2X ", ((char *)((void *)dummy))[i]);
puts("");
dummy();
getchar();
return 0;
}
void __declspec(naked) dummy()
{
__asm
{
nop;
nop;
nop;
nop;
ret;
}
}
에 선
? –
함수 주소에서 메모리 덤프 창을 사용할 때 무엇을 얻고, 무엇을 얻으며, 디버거에 표시되는 내용은 무엇입니까? –