在广泛阅读的“Smashing The Stack For Fun And Profit”教程中,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
阅读完本教程并练习一下之后,我现在可以手工生成上面的图表了。但是,手工制作这些图表对于更复杂的程序来说可能有点乏味。
是否有可以通过静态分析生成这样的堆栈图的工具?