バッファ オーバーフローの概念実証をしようとしたときに、奇妙な問題に遭遇しました。アドレス0x0828433cで実行したいプログラムにコードが存在しました。これは単純なオーバーフローであったため、攻撃は次のように実行されました。
$ perl -e 'system("./program lotsofcharacterstofillinspacethen\x3c\x43\x28\x08")'
ただし、\x3c
ascii で > に移動し、シェルは残りの文字が出力ファイルであると想定していました。(つまりecho 1 > hello.txt
)
幸いなことに、その上に 2 つの nop があったので、その特定のアドレスを使用する必要はありませんでしたが、必要になった場合はどうなるでしょうか?
ありがとう!