こんにちはIDAで私は機能を持っています
void __userpurge Test(int a1<eax>, int a2, int a3, int a4, char a5)
そして、私は自分の C++ インジェクトされた dll からそれをフック/呼び出したいと思います。
DWORD CALL_ORIGINAL = 0x00EAF6D0;
__declspec(naked) void myHookedFunc(int a1,int a2,int a3,int a4,char a5) {
__asm
{
push a5
push a4
push a3
push a2
push eax
call CALL_ORGIGINAL //maybe use JMP?
retn
}
}
そして、これはexeがこの関数を呼び出す方法です
mov eax, [ebp+arg_4]
add esp, 8
push eax
push ecx
mov ecx, [edi+2138h]
mov edx, [ecx+4]
mov ecx, [edx+30h]
mov edx, [ecx]
mov eax, esp
mov [eax], edx
mov eax, [edi+20h]
mov [esp+40h+var_24], esp
push eax
push eax
mov eax, edi
call Test
pop edi
pop esi
retn
機能に数回あるようです
add esp, 24h
retn 10h
より多くの引数があること、または IDA が間違った引数の型を取得したことを意味するのはどちらでしょうか?