1

在广为阅读的“为了乐趣和利润而粉碎堆栈”教程中,Aleph One 提供了这样的 C 代码示例:

void function(int a, int b, int c) {
    char buffer1[5];
    char buffer2[10];
}

void main() {
    function(1,2,3);
}

然后,基于某种直觉(有时是查看 X86 程序集),Aleph One 生成了堆栈配置图。例如,堆栈function(int a, int b, int c)看起来像这样:

bottom of                                                            top of
memory                                                               memory
           buffer2       buffer1   sfp   ret   a     b     c
<------   [            ][        ][    ][    ][    ][    ][    ]

top of                                                            bottom of
stack                                                                 stack

在阅读了教程并进行了一些练习之后,我现在可以手动制作上面的图表了。但是,对于更复杂的程序来说,手工制作这些图表可能有点乏味。

是否有可以生成这样的堆栈图的工具,也许通过进行静态分析?

4

0 回答 0