2004-10 << 2004-11 >> 2004-12

2004-11-29 (月)

*BBR-4MG

またルータのファームウェアを読む.今度はフラッシュメモリを操作してそうな辺りを読む.ちょっと,色々できそうなので改造前のファームウェアに戻して,ブラウザからURL入れてバッファオーバーフローを起こさせて,フラッシュメモリの内容を消すコードを実行させてみる.確かに消えましたが…間違えて無限ループさせてしまって,同じところを何回も書いてる….フラッシュメモリの書き込み中に止めるとおかしなことになりそうで心配でしたが,どうしようも無いので電源を抜く.データは壊れましたが,その後も問題なく書き込めたのでよかったです.

ここまでくれば任意のコードでも何でも実行できるんじゃないかと,少しがんばってみましたが,ブラウザから入力されたデータがあるアドレスの値が,簡単にはジャンプできない範囲にあったので断念.でもちょっと安心しました.小文字は大文字に変換した後のデータでバッファオーバーフローが起きてるので,どうしてもa〜zの値は使えないわけです.となると,一度別の所に飛ばして,レジスタの値を加減算してからジャンプさせることになりますが,丁度良いコードが見つけられない.サイズが1MBもあるので,どこかに使えるバイナリ列があってもよさそうですが….プログラム中に特定のバイナリ列が存在するかどうかで,セキュリティーホールの深刻さにも影響がでるので,プログラムが大きくなると,必然的に一つのバグあたりの問題の大きさも大きくなるのかなぁ.そのうち,一つのプロセス内でも,アクセス可能なメモリ空間を変更できるようになったりするでしょうか.オブジェクト指向の方向を見てると,あながちあり得ない話でもないかもしれません.そのまえに,ポインタが使えないプログラミング言語が主流になったりしそうですが.

なんか,日記がバッファオーバーフローを使ったシステム乗っ取りの説明みたくなってきたので,そろそろ止めておきます.

2004-10 << 2004-11 >> 2004-12