以下のような関数を書きます。
void inject_func()
{
_asm
{
push 2
push 1
mov eax, 0x0041188E
call eax
}
}
デバッグモードでコンパイルすると、次のようになりました。
00F43330 > 55 PUSH EBP
00F43331 8BEC MOV EBP,ESP
00F43333 81EC C0000000 SUB ESP,0C0
00F43339 53 PUSH EBX
00F4333A 56 PUSH ESI
00F4333B 57 PUSH EDI
00F4333C 8DBD 40FFFFFF LEA EDI,DWORD PTR SS:[EBP-C0]
00F43342 B9 30000000 MOV ECX,30
00F43347 B8 CCCCCCCC MOV EAX,CCCCCCCC
00F4334C F3:AB REP STOS DWORD PTR ES:[EDI]
00F4334E 6A 02 PUSH 2
00F43350 6A 01 PUSH 1
00F43352 B8 8E184100 MOV EAX,41188E
00F43357 FFD0 CALL EAX
00F43359 5F POP EDI
00F4335A 5E POP ESI
00F4335B 5B POP EBX
00F4335C 81C4 C0000000 ADD ESP,0C0
00F43362 3BEC CMP EBP,ESP
00F43364 E8 8CE2FFFF CALL inject_c.00F415F5
00F43369 8BE5 MOV ESP,EBP
00F4336B 5D POP EBP
00F4336C C3 RETN
リリースモードで、私は得ました:そして、これは私が欲しかったものです.
00EA17A0 > . 6A 02 PUSH 2
00EA17A2 . 6A 01 PUSH 1
00EA17A4 . B8 8E184100 MOV EAX,41188E
00EA17A9 . FFD0 CALL EAX
00EA17AB . C3 RETN
私はVS2010がいくつかのデバッグ情報を追加したことを知っています.私が尋ねたいのは、それが追加したものです. Google で検索しましたが、キーワードが間違っている可能性があります。これについて何か知っている人はいますか?