CSAPPのbuflabからの問題。スタックを破壊するのに十分な長さのエクスプロイトコードを入力するように求められます。フェーズ2では、最初にglobal_valueという名前のグローバル変数の値を変更してから、 bangという名前の関数を呼び出す必要があります。ただし、bangのアドレスをスタックにプッシュしてから戻る場合にのみ機能します。
#codes before set the value of global_value
movl $0x12345678,%eax /* 0x12345678 is the address of bang */
push %eax
ret
私が次のような直接ジャンプを使用する場合
#codes before set the value of global_value
jmp 0x12345678
その後、gdbを使用した0x5abcdefgのような場所で完全に迷子になりました。誰でも助けることができますか?これはモードのアドレス指定と関係がありますか?