IDA如何计算堆栈变量偏移量?

时间:2018-01-14 10:21:16

标签: stack reverse-engineering ida

IDA能够读取子程序的机器指令并显示存储在堆栈中的每个变量的相对偏移量。

enter image description here

我正在编写一个分析堆栈内存的程序,我希望能够将存储在堆栈内存中的值放入各自的变量类型中。在幕后发生了什么逻辑,使IDA能够显示堆栈变量偏移?

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

通过查看堆栈地址的使用位置和方式,从函数代码中推断出它。比如,加载到4字节寄存器并进行算术运算可能意味着执行加载的堆栈内存属于某个int变量。

如果您想了解IDA算法的详细信息,我怀疑您是否能找到它。您可以查看Avast的Retargetable Decompiler开源项目,它可以像IDA一样执行分析并研究其代码。