現代のx86デスクトップでレガシーMIPS Windowsバイナリを実行する
ネイティブPE MIPSバイナリをロードし、システムコールをマッピングし、マルチスレッドアプリケーションのためにスレッドごとのCPU状態を維持しながら、MIPS R4000命令をエミュレートします。x86matthewによって作成されたWoWMIPSは、動的APIリダイレクションとベクトル例外処理を使用してMIPSコールバックをホストAPIにルーティングするWindowsユーティリティツールです。主な機能には、リロケーション対応のPEロード、スレッドローカルCPU状態、および軽量のプロセス内実行が含まれます。これは、完全なマシンエミュレーターなしで古いWindows NT MIPSコードを実行する必要があるリバースエンジニア、レトロコンピューティング愛好者、およびセキュリティ研究者に適しています。
WoWMIPSがMIPSプログラムを実行するときに実際に行うこと
WoWMIPSはMIPS R4000命令をx86にその場で変換します、およびリロケーション処理を伴うMIPS形式のポータブル実行可能ファイルをロードします。これにより、Windows NT用にコンパイルされたバイナリがホストプロセス内で実行できるようになります。ローダーは、MIPSシステムコールをネイティブWindows APIにリダイレクトするためのAPIスタブをロード時に生成し、ツールはスレッドごとにCPUレジスタと状態を保持するため、マルチスレッドMIPSバイナリは別々の実行コンテキストを維持します。
実行中のホストシステムへの影響
プロジェクトはオーバーヘッドを減らすためにプロセス内で実行されます。これにより、別の仮想マシンを実行するのではなく、エミュレートされたコードに直接メモリアクセスを提供します。この設計は、フルシステムエミュレーターと比較してリソース使用量を低下させ、ベクトル例外処理は永続的な手動フックなしでコールバックをインターセプトします。実行はホストアドレス空間内で行われるため、ツールは設計上、パフォーマンスとシンプルさのために隔離を取引します。
安全性、互換性の制限、および誰が使用すべきか
WoWMIPSは明示的な制限を持つ概念実証として機能します: 浮動小数点ユニットのサポートが欠如しており、FPU依存アプリケーションの互換性が制限され、元々古いWindows NTリリース用に構築されたユーザーモードMIPS-I/R4000バイナリを対象としています。開発者は、命令マッピングとAPIリダイレクションメカニクスを可視化する必要がある研究者やリバースエンジニアのために、レビュー用のソースコードを提供します。
専門家のための実用的なツール、明確な互換性のトレードオフ
WoWMIPSは、現代のデスクトップ上でシンプルなMIPS時代のWindowsバイナリをプロセス内で実行する必要がある研究者やレトロコンピューティングユーザーのための実用的な実験です。その低オーバーヘッド、ノーサンクAPIリダイレクション、VEHベースのコールバックは強みですが、FPUサポートの欠如は広範なアプリケーション互換性を妨げる単一の技術的制限です。





