前回で脆弱性の存在を確認したので,今回は,いよいよshellコードを流し込んでみます。目的は,イーサネット・コントローラの制御が可能かどうかを調べることです。 shellコードのアプローチ 第6回で書いたように,ターゲットのCPUはSamsung社製のS3C4510Bです。S3C4510BのコアはARM7DTMIであり,16ビット・モードと32ビット・モードの2つのインストラクション・モードが用意されています。shellコードはどちらのモードで記述してもかまいませんが,32ビット・モードの場合はNULLが混入しやすいため,strcpy()などの文字列処理で発生するバッファ・オーバーフローの攻略には不向きです。そこで,16ビット・モードで記述します。 ファームウエアが32ビット状態で動作している場合は,以下のように,オペランド・レジスタの状態ビット(ビット0)をセットしてBX命令を実行するこ
![組み込みシステムのセキュリティ~攻撃の脅威と防衛策~最終回(8)イーサネット・コントローラを制御する](https://cdn-ak-scissors.b.st-hatena.com/image/square/bed39b5962a5d552c95b6d796db8f55e72d32943/height=288;version=1;width=512/https%3A%2F%2Fxtech.nikkei.com%2Fimages%2Fn%2Fxtech%2F2020%2Fogp_nikkeixtech_hexagon.jpg%3F20220512)