3

すべてがスタック上にあることに慣れているので、この 64 ビット全体にはまだ慣れていません。たとえば、Windows 32 のアセンブリで DllMain をエミュレートしたい場合は、次のようにします。

__declspec(naked) void DllCall_Stub(HMODULE hModule)
{
    _asm
    {
        push 0;
        push 1;
        push [esp + 0Ch]
        mov eax, 0x12345678;        
        call eax;
        ret;
    }
} __declspec(naked) void DllCallStubEnd(void){}

ただし、Windows 64 では、レジスタを介して引数を渡すようです。

64ビットプロセスでこれを行うのと同等のものは何ですか?

4

1 に答える 1