次はヒント。strcpyは文字列の長さチェックをしないため、BOFを引き起こせる。gdbで逆アセンブル。<main+54>でstrcpyを呼び出している。引数はbuffer、argv1。スタックは引数を逆順に並べ替える。したがってebp-256がbufferの位置である。しかしスタックにはeb
ヒントは以下のやつ今度はbufferが16バイトgdbで見てみようstrcpyを呼び出している<main+48>の上に引数がある<main+44>でbufferの位置がebp-16であることをわかった攻撃してみようebpまで16バイト+SFPの4バイト=20バイトを意味なしの文字に上書き
coboltとは入力方式だけ違う説明なしに攻撃環境変数を作るアドレスを探す今度もアドレスは0xbfffff6e攻撃コマンドクリア
今回は環境変数を使えないそしてRETの最後が\\xbfじゃないとプログラムが終了されるじゃあ、bufferにはシェルコードを入れて、bufferが始まるアドレスを探してそれをRETに上書きすればできるソースコードを再コンパイルしてダンプを作ろうesp-80ぐらいの地点を見てみよう0xbffffcb0