私は、スタックからコードを実行してバッファオーバーフローを実行する必要があることを示す割り当てがあります。私はそうしようとしてきましたが、スタックの "ret"位置をスタックの位置に置き換えるたびに、コードが常駐するようになります。私が "ret"位置を物理的な.oファイル(物理的なアセンブリコードのような)に存在するアドレスに置き換えると、うまく動作します。スタック上のポジションに戻ることは許されていませんか?スタックアドレスに戻ることができない場合は、自分のアセンブリコードでバッファオーバーフローを実行する方法が混乱しています...(btw、私はIA32リトルエンディアンマシンを使用しています)。バッファオーバーフロー攻撃 - スタック上のアドレスに戻りますか?
マイ手順:
- オーバーフロー
- が
- が上記 "RET" スポットを上書きし(そこに格納されている実際の値を持つ)場合%ebpの位置を上書き(すべてのFFを入れて)32文字バッファアセンブリファイル内のアドレスではなくスタック上のアドレス
- 私のアセンブリバイトコードを埋め込みます(先頭にnop命令を追加して、4バイトの倍数で終わるようにしてください)
それを実行すると、これは
、我々は(そうでない場合、彼らは私たちのような割り当てを与えないだろうスタックを実行可能としてマークされていることを前提としこの)。他のアイデア?ありがとうございました。 – de1337ed