IDA pro 不能F5之Decompilation failure;positive sp value has been found
使用F5时报warning:
Decompilation failure
401657F:positive sp value has been found
这个错误是因为堆栈不平衡导致的,需要手动修改堆栈,使其平衡。
从图中可以看到自0x00401661到调用函数,一共压栈了5个参数,在call结束之后,使用了add esp,40h来平栈。这里就有点问题了,一共只压栈了5个参数,用40h来平栈,用的就有点多了吧。1个参数0x4,5个参数0x14,将光标放在0x40167C上,Alt+k,弹出窗口“Change SP Value”
修改new SP为0x14。堆栈如下。
在这个函数中发现其在很多函数调用结束后都使用了add esp,40h来平栈,可能是用来反调试的吧。