IDA/Hexrays:局部变量分配失败;如何解决这个问题?
逆向工程
艾达
反编译
六线谱
做
堆栈变量
2021-06-20 20:24:29
1个回答
首先,局部变量分配失败并不一定意味着反编译不正确。例如,当使用强制变量时,它们可以自然发生。我会继续尝试像往常一样分析该功能。
如果您看到任何无法协调的奇怪变量操作,我建议您在整个函数中仔细检查堆栈指针。从返回站点开始:您是否在ret说明中看到任何负位移?如果是这样,这表明在整个函数的某个地方有错误的堆栈点。
如果返回站点看起来不错,我建议您停下View->Open subviews->Problems来开始工作,修复任何显示BADSTACK. 当我说“修复”时,我的意思是确保每个被调用的函数都有正确的堆栈位移信息。对于直接调用,您可以通过编辑函数来修复这些问题,以确保它们清除的字节和帧指针增量是正确的。对于间接调用,请使用ALT-K“更改 SP 值”以确保正确的清除量。
其它你可能感兴趣的问题

