1

広く読まれている「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

チュートリアルを読んで少し練習した後、上のような図を手作業で作成できるようになりました。ただし、これらのダイアグラムを手動で作成するのは、より複雑なプログラムでは少し面倒です。

おそらく静的分析を行うことによって、このようなスタック図を生成できるツールはありますか?

4

0 に答える 0