萌えハッカーニュースリーダー

2025/09/09 15:09 Unauthorized Windows/386

出典: https://virtuallyfun.com/2025/09/06/unauthorized-windows-386/
hakase
博士

ロボ子、今日はWindows/386について話すのじゃ!

roboko
ロボ子

Windows/386ですか。初期の32ビットプログラムで、Windows 3.0や3.1、9xの基礎になったものですね。

hakase
博士

そうそう!内部構造が長らく謎だったけど、最近解析が進んでいるらしいぞ。今回はその辺りを深掘りするのじゃ。

roboko
ロボ子

楽しみです!まずはWIN386.EXEから見ていきましょう。MZ EXEファイルで、実行環境のチェックを行うと。

hakase
博士

メモリ容量とか、DOSのバージョン、プロセッサの種類とかをチェックするのじゃ。初期のバグがある386ステッピングのチェックがWindows 8.1まで残ってたってのが面白いぞ。

roboko
ロボ子

そんな昔のチェックが!そして、WIN386.386というVDMM(Virtual DOS Machine Manager)をメモリにロードするんですね。

hakase
博士

そう!VDMMと仮想デバイスドライバが一緒に入ってるのじゃ。32ビットのx.out実行形式を使っているのが特徴的だぞ。Xenix-386由来らしい。

roboko
ロボ子

Xenixですか。なんだか懐かしい響きです。長いシンボルテーブルが含まれているおかげで、リバースエンジニアリングがしやすいんですね。

hakase
博士

その通り!リアルモードで起動して、プロテクトモードに切り替えるのもポイントじゃ。WIN86.COMをロードして、System VMでWindowsを起動するのじゃ。

roboko
ロボ子

コード解析には、MEMM(Microsoft Expanded Memory Manager)のソースコードが参考になるとのことですね。EMM386の一部がWindows/386に流用されていると。

hakase
博士

そうじゃ!EMM386の一部はCで書かれてるらしいぞ。Windows 3.0 DDKも参考になるけど、APIは変更されているから注意が必要じゃ。

roboko
ロボ子

メモリマップもWindows 3.0とほぼ同じなんですね。最初の4MBがVMごとのプライベート領域で、VDMMは20MBにロードされると。

hakase
博士

System VMの中では、標準的なリアルモードのWindows 2.xxが動いているのじゃ。WINOLDAPはMS-DOSアプリケーションの実行を担当するけど、Windows/386では大きく違うらしいぞ。

roboko
ロボ子

WINOLDAPはVDA APIを使って他の仮想マシンを制御するんですね。専用のAPIがあるとは。

hakase
博士

Windows/386 DDKは発見されてないのが残念じゃ。でも、Windows 3.0のDDKにWindows/386との違いが書かれているらしいぞ。

roboko
ロボ子

独自のデバッガを開発して、Windows/386内部を覗くというアプローチもあるんですね。INT 69Hをフックして、割り込みベクタを書き換えると。

hakase
博士

そう!拡張メモリを使って、DOSプログラムによる破壊を防ぐのも重要じゃ。なかなかハードコアなハッキングなのじゃ。

roboko
ロボ子

Windows 3.0への移行では、WIN386.386ファイルがWIN386.EXEに統合されたんですね。VMMの形式も変わったと。

hakase
博士

DOSのバージョンチェックも追加されたのじゃ。DPMI(DOS Protected Mode Interface)は、Windows/386のINT 2FH上に存在していたらしいぞ。

roboko
ロボ子

Windows DOS ExtenderのAPIのサブセットが標準化されたんですね。今回のコードはGitHubで公開されているんですね。

hakase
博士

その通り![https://github.com/BHTY/WIN386](https://github.com/BHTY/WIN386) をチェックするのじゃ!

roboko
ロボ子

勉強になりました!

hakase
博士

ところでロボ子、Windows/386って、今のOSに例えると何だと思う?

roboko
ロボ子

うーん、そうですね…仮想環境を駆使してるところとか、Dockerコンテナみたいなものでしょうか?

hakase
博士

なるほど!でも、Dockerコンテナはもっと洗練されてるぞ!Windows/386は、言うなれば…手作りの豆腐みたいなOSじゃ!

roboko
ロボ子

手作り豆腐ですか?

hakase
博士

そう!粗削りだけど、愛情たっぷり!…って、ちょっと無理があったかのじゃ?

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search