なぜ私がそうするのか誰かが私に説明してもらえますか
dumpbin / disasm "C:\ simple_Win32.exe" >> "C:\ users \ piter \ myDump5.txt"
ルーチンの名前は表示されませんが、eax、ebx、mov、およびその他の「自分ではない」関数(プリプロセッサマクロなど)のみが表示されます。つまり、次の例では、関数の名前とともにアセンブリコードがあります。
.text:00403D89 lea eax, [ebp+SystemTimeAsFileTime]
.text:00403D8C push eax
.text:00403D8D call ds:__imp__GetSystemTimeAsFileTime@4
.text:00403D93 mov esi, [ebp+SystemTimeAsFileTime.dwHighDateTime]
.text:00403D96 xor esi, [ebp+SystemTimeAsFileTime.dwLowDateTime]
.text:00403D99 call ds:__imp__GetCurrentProcessId@0
.text:00403D9F xor esi, eax
.text:00403DA1 call ds:__imp__GetCurrentThreadId@0
.text:00403DA7 xor esi, eax
.text:00403DA9 call ds:__imp__GetTickCount@0
.text:00403DAF xor esi, eax
.text:00403DB1 lea eax, [ebp+PerformanceCount]
.text:00403DB4 push eax
.text:00403DB5 call ds:__imp__QueryPerformanceCounter@4
.text:00403DBB mov eax, dword ptr [ebp+PerformanceCount+4]
.text:00403DBE xor eax, dword ptr [ebp+PerformanceCount]
.text:00403DC1 xor esi, eax
.text:00403DC3 cmp esi, edi
.text:00403DC5 jnz short loc_403DCE
次に、私のコードが次の場合:
#include <iostream>
int Foo(int,int){return 4;}
int main(){
//std::cout<<"\n\nHello.\n\n"<<std::endl;
int i=Foo(2,4);
int a=i;
//system("pause");
return 0;
}
このコードexeの結果から、アセンブリダンプビンにFooが見つからないのはなぜですか?
そこにFooという名前を見つけることができるはずですか?