在广为阅读的“为了乐趣和利润而粉碎堆栈”教程中,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
在阅读了教程并进行了一些练习之后,我现在可以手动制作上面的图表了。但是,对于更复杂的程序来说,手工制作这些图表可能有点乏味。
是否有可以生成这样的堆栈图的工具,也许通过进行静态分析?