分支时 IDA 堆栈深度差异

逆向工程 艾达
2021-07-04 04:51:06

我正在反编译一些对 __stdcall 函数进行大量间接调用的 Direct3D 代码。

例如:

call dword ptr [edx+0xC8h]

这真的是:

pD3DDevice->SetRenderState();

在每种情况下,IDA 都无法正确猜测这些调用的堆栈指针更改,因此我必须手动通过 Alt+K 来获取正确的 SP 值。

但是在这样做之后,我开始遇到一个问题,即分支的一侧会有错误的 SP 值

在此处输入图片说明

我可以 Alt-K 带有错误 SP 值的第一条指令,但这仅对下一条指令生效。

0个回答
没有发现任何回复~