system()
libc エクスプロイトへの復帰を作成しようとしていますが、呼び出しの引数をスタックのどこに配置すればよいかわかりません。
脆弱な機能は
void func(char *str)
{
char buffer[12];
strcpy(buffer,str);
}
この関数のスタックは次のようになります。
-----------
str
-----------
return address
-----------
previous frame pointer
-----------
buffer
-----------
戻りアドレスをsystem()
呼び出しのアドレスで上書きする必要があることは理解していますが、その引数のアドレスをどこに配置すればよいのでしょうか?またその理由は?
ありがとう。