打开ida,打开一个文件,我用的是安恒月赛的一个文件,出现

IDA小技巧之——F5不能出现伪代码-LMLPHP

postive sp value has been found ,这个问题其实干扰我很久了,然后网上的很多说平衡堆栈,平衡平衡,发觉一个很长的函数,用手去计算堆栈吗,显然不是的,网上又没解释清楚,然后今天我搞懂了,就分享一下,进入正文:

首先打开option-general

IDA小技巧之——F5不能出现伪代码-LMLPHP

option在上面的一系列菜单中,选中stack pointer,就是我画红圈的地方,勾选,然后确定

 

IDA小技巧之——F5不能出现伪代码-LMLPHP

你会发觉代码段多了一系列东西,这就是栈指针,他告诉我们栈的高度,而postive sp value has been found ,会出现,是因为有负的栈指针,

IDA小技巧之——F5不能出现伪代码-LMLPHP

红圈所示,而我们修改呢,只需在出现负数的那个地方的上一行,按alt+k,调整成跟这个数一摸一样的值就可以了

IDA小技巧之——F5不能出现伪代码-LMLPHP

如图所示,然后确定,然后按F5便可以变成伪代码了

10-04 14:44