1月10日(火)1、2コマ目
今日、やったこと
バッファオーバーフロー
今日のホワイトボード
バッファオーバーフローでリターンアドレス書き換え
前回のつづきです。
前回はサンプルプログラム「bof_sample2.c」を使って、関数呼び出しの際、呼び出し元に戻れるようにスタック上にリターンアドレスを記録すると解説をしました。
今日は実際にスタック上のリターンアドレスを書き換えてみます。
![]() |
| 図 コマンドライン引数でリターンアドレスを書き換える |
今回は、コマンドライン引数をperl(スクリプト言語の1種)で生成しています。
バッファオーバーフローをやってみよう その1
サンプルプログラム「bof_sample3.c」でバッファオーバーフローを引き起こし、通常とは異なる動きをさせます。
基本的には「bof_sample2.c」と同じです。
![]() |
| 図 やってみよう その1 スタックエリアとコードエリア |
![]() |
| 図 やってみよう その1 リターンアドレス書き換え後 |
バッファオーバーフローをやってみよう その2
サンプルプログラム「bof_sample4.c」でバッファオーバーフローを引き起こし、通常とは異なる動きをさせます。
こちらも基本的には「bof_sample2.c」と同じです。
![]() |
| 図 やってみよう その2 スタックエリアとコードエリア |
![]() |
| 図 やってみよう その2 リターンアドレス書き換え後 |
じかいは
バッファオーバーフローのテストをします。
テストは紙のテストで、何を見てもいいが、自力でやることです。




