C-如何修改CALL指令

时间:2019-05-11 11:40:18

标签: c assembly x86 inline-assembly

每当我尝试用新功能替换call地址时,都会导致应用程序崩溃。这是我尝试过的代码(来自IDA的地址)

int FuncPtr;

__declspec(naked) NewFunc()
{
    __asm JMP FuncPtr;
}

void UpdateInstruction()
{
    BYTE *Ptr = 0x81BA10 + 0x201A; // Pointer to CALL (E8)
    FuncPtr = *(int *)(Ptr + 1);
    *(int *)(Ptr + 1) = NewFunc;
}

0 个答案:

没有答案