3

有人知道钩子__usercall类型的函数吗?我成功挂机__thiscall__stdcall__cdecl打电话,但这对我来说已经足够了。

知道有人为 's 挂钩库或__usercall如何使用翻译来挂钩这种类型的函数吗?__stdcall__cdecl

我首先必须挂钩的功能是:

int __usercall func<eax>(int a<eax>, int b<ecx>, int c, unsigned int d, signed int e);
4

2 回答 2

5

使用将其转换为__stdcall.

int __stdcall func_hook_payload(int a, int b, int c, unsigned int d, signed int e);

// Wrapper for
// int __usercall func<eax>(int a<eax>, int b<ecx>, int c, unsigned int d, signed int e);
__declspec(naked) void func_hook()
{__asm{
    push ebp
    mov ebp, esp
    push dword ptr[ebp + 0x0C] // or just push e
    push dword ptr[ebp + 0x08] // d
    push dword ptr[ebp + 0x04] // c
    push ecx // b
    push eax // a
    call func_hook_payload
    leave
    ret // note: __usercall is cdecl-like
}}
于 2010-11-04T20:47:02.697 回答
2

当所有其他方法都失败时..用调试器遍历它。

当您进入调用时,请特别注意这些,例如 ESP,然后在函数返回之前再次注意。

于 2010-11-05T03:45:30.507 回答