■■■BIOSの壊し方■■■

このエントリーをはてなブックマークに追加
46Socket774
>>45
MMUをつかってFlushROMをR/Wモードで論理メモリにMappingする。
適当にMappingした領域に書き込む。
これで終了。機械語だったら数行。

条件は、T-ZONE提供の環境とやらに
・リアルモードで動作するOSが入っている
・バイナリエディタが入っている

ここでコードを作成し、完成したコードを全員覚えて、当日参加する。
総時間2時間、持ち時間1回5分だから、協力すれば最低24台のPCのBIOSを
飛ばせる。

失敗は許されない。我々は挑戦されているのだから、失敗すなわち惨めな惨敗。
当然破壊するBIOSのターゲットはCrushFreeBIOS2の方。起動BIOSなど破壊しても
「CrushFreeBIOS2で復活できる、破ってみろ!」と挑戦されているので、何の意味も
ない。CrushFreeBIOS2を破壊して、ROMライタ等を使わないと修理できない状態にし、
我々に挑戦したことを後悔させ、CrushFreeBIOS2などのBIOSリカバリ機能が如何に
無力であるかを証明するのだ!
47Socket774:03/02/22 12:36 ID:pwCIEvYb
DieHard BIOSを破壊できない奴は素人。
48Socket774:03/02/22 12:38 ID:V3YBRllt
事前調査としては、CrushFreeBIOS2に対してどうすればWriteAccessできるか、
が必要。
MMUでMappingするだけでよいのか、I/Oなどを駆使しなければならないのか、
それとも更新不能なROMで提供されているのか。

Bootの順番としては、
CrushFreeBIOS2起動(この時点でROで論理空間にMappingされているはず)

BIOS空間をMapping

チェック

BIOS空間をRemappingしてBIOS起動

だと思うので、CrushFreeBIOS2をR/WでMappingさえできれば起動不能にできるはず。
49Socket774:03/02/22 12:48 ID:X2CEwvOe
>>46
フロッピー持参可能だから当然そこからのブートは可能でしょう。
だとすりゃOSは無問題だし、コードを覚えていく必要もナッシング。
まぁ肝心の部分はやっぱROMだと思うので、とりあえず壊したぞって
だけでこのコンテストの目的は達成できてると思うんだが。
50Socket774:03/02/22 12:53 ID:t8B6TmZE
まあ下位の連中はほとんど>>44のパターンだろうな。
上位は普通にブートシークエンスを理解していてマシン語コードの組める
連中同士の争いだね。(えらくハードルが低いような気もするが…)
51Socket774:03/02/22 13:00 ID:V3YBRllt
>>49
なるほど、フロッピーのブートレコードに仕込むだけでいいのか。
CrushFreeBIOS2はROMかなぁ。Updatableにしていると思うんだけど。

>>50
それでもBIOSファイルのCheckSUMとかは突破しないといけないので、ど素人が
破壊できるということはないだろうと思う。
52Socket774:03/02/22 13:06 ID:2u0GvUQt
コンテストに出る人は最悪の事も考えて
ディスアセンブラ位は用意していった方が
いいかも。
53Socket774:03/02/22 13:19 ID:JQmr6Ztw
1回目の報告
BIOS破壊成功者1人。
ベアボーンキットお持ち帰り。
壊した瞬間見てなかったのが残念。
54Socket774:03/02/22 16:29 ID:LXbsqSFO
2回目の報告もキボンヌ
55がっくす:03/02/22 19:36 ID:KloZLv8W
2回目,失敗しますた.見事に復活の実験台にされてやんの,ハズカシー…
FlashROMを全てnopで埋めたはずが,CrushFreeBIOS2は生きてヤンの.

BIOSファイル見ると,最初16KBが何も無いからCrushFreeBIOS2部分だろうと.
やっぱもう一回mappingして見えなくしているのか?コード書かねば駄目か.
ブートブロックが正しくカキコ出来たか確認し損ねたので,特定出来ん…
56Socket774:03/02/22 23:28 ID:NV2bfDoV
祭りに参加しようと、aflash.exeを逆汗してみたけど、in/out命令でI/Oアドレス0x21のビット1を
セット/リセットしている個所があった。多分これでFLASHにVppとして+12Vが加わって
書込可能になるんじゃないかな。
でもint15h ax=2500h or 2502hが何するものかわからなかったので参加は見送り。
int21h(DOS)やint10h(VGA)なら資料が有るからわかるんだけどなぁ。