広く読まれている「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
チュートリアルを読んで少し練習した後、上のような図を手作業で作成できるようになりました。ただし、これらのダイアグラムを手動で作成するのは、より複雑なプログラムでは少し面倒です。
おそらく静的分析を行うことによって、このようなスタック図を生成できるツールはありますか?