教育目的で、スタック ベースのバッファ オーバーフローを利用したいと考えています。
プログラムからの入力として、パラメーターが保存されるローカル バッファーが与えられる、main からのパラメーターで呼び出される典型的な関数があります。のような入力が与えられた場合nops+shellcode+address_shellcode
、それを利用します。
strcpy
gdb でデバッグした後、パラメーターとして渡されるシェル コードのアドレスを見つけました。スタックを調べた直後に$ebp+8
、戻りアドレスである がシェル コードのアドレスで正常に上書きされました。だから私は欲しいものを持っています。しかし、実行を進めると、次のようになりました。
->shellcode_address in ?? ()
その後
Cannot find bound of current function
リターンアドレスには、私が望む値があります。何が起こっているのですか?
また、それを実行すると、セグメンテーション違反が発生し、 でコンパイルしました-g -fno-stack-protector
。なんで?