chargeのブログ

人のブログを見て真似して書いていきます。似たブログを見つけたら教えてください。

マスターブートレコードの誤解

2013-03-15 01:11:29 | 科学っぽい思考
 マスターブートというセクタ0にあるOSをロードするためのプログラムがあるが、ためしにLINUXのものとWindowsのものを比較していたら、ネット上にあるマスターブートのパーティティションテーブルの記述・説明がおかしいことに気がついた。
 512バイトあるレコードの最後が「0x55AA」になるところ以外は自由に定義でき、必ずパーティティションテーブルを作る必要はないようなのだが、必須のように書いてあって、おそらくウインドウズのマスターブートレコードの仕様を持ってきたのだと思うのだが内容が正しくないと感じた。
 どうしてか知らないし、誰も疑問に思わないかもしれないが、人為的な可能性もある。
 根本から乗っ取られると大抵対処できないので正しい情報が固定データでプログラム領域が少ないとブートキットに対しては都合が良いのは確かで、誰も自由にいじって欲しくはないところであろうと思う。
 最近になってもファイルフォーマットのバッファオーバーフローのバグがあるのだが、可変長になって定義されているデータが毎回危ないということは経験則でわかっているはずなのに、もともと操作できる人が少なかったために自由に操作することは想定されておらず、先回りする対処はゆっくりにしかやってくれない。
 もしかしたらウイルスを使うことが軍事作戦上盛り込まれていて、内通者が転ばぬ先の杖としてバックドアを設定していた可能性もありえなくもないのだが、それを一般市民が発見したり、予想外のところにも欠陥があったりで評価を落とす結果になるのは湾岸戦争当時のコンピュータがほとんどない状況では意外だったと思うのだが現状ではまずい。
 ゆっくりの対処は苦労して設けた欠陥の名残を惜しんでいる可能性もなくはないが、そのうち自動検査ツールが出来て、秒速で大体の欠陥が見つかってくれるようになると思う。

 中国の人民解放軍がハッキングをしているとネット上のニュースが最近報じていたが、本当でなくともそうやってやるとアメリカの企業には利益が何かあるのかもしれない。
 言いがかりかもしれないそのことを信じている人がメジャーを占めているということが分かるだけで世界は怖いところだと感じる。


 

ソースコードの表示

<style type="text/css"> /* Source Code CSS */ pre.code { font-size: 12px; /* line-height:1.2em; */ border:1px solid #aaa; background:#f0f0f0; padding:0.5em; overflow: auto; } pre.code span.tag { color: #0000ff; } pre.code span.attr { color: #000; } pre.code span.value { color: #900; } pre.code span.str { color: #009900; } pre.code span.num { color: #009900; } pre.code span.keyword { color: #0000ff; } pre.code span.rem { color: #909; } pre.code span.variable { color: #500050; } </style>