在现代 x86 桌面上运行遗留的 MIPS Windows 二进制文件
模拟 MIPS R4000 指令,同时加载本地 PE MIPS 二进制文件,映射系统调用并维护多线程应用的每线程 CPU 状态。WoWMIPS,由 x86matthew 创建,是一个 Windows 实用工具,使用动态 API 重定向和向量异常处理将 MIPS 回调路由到主机 API。主要功能包括考虑重定位的 PE 加载、线程本地 CPU 状态和轻量级的进程内执行。它适合需要在没有完整机器模拟器的情况下运行旧 Windows NT MIPS 代码的逆向工程师、复古计算爱好者和安全研究人员。
当您运行 MIPS 程序时 WoWMIPS 实际上做了什么
WoWMIPS 动态将 MIPS R4000 指令翻译为 x86,并加载具有重定位处理的 MIPS 格式可移植可执行文件,因此为 Windows NT 编译的二进制文件可以在主机进程中执行。加载器在加载时生成 API 存根,以将 MIPS 系统调用重定向到本机 Windows API,并且该工具为每个线程保持 CPU 寄存器和状态,因此多线程 MIPS 二进制文件保持独立的执行上下文。
它在执行期间如何影响主机系统
该项目在进程内运行以减少开销,为模拟代码提供直接内存访问,而不是运行单独的虚拟机。该设计与全系统模拟器相比降低了资源使用,向量异常处理在没有持久手动钩子的情况下拦截回调。由于执行发生在主机地址空间内,该工具通过设计在隔离和性能与简单性之间进行权衡。
安全性、兼容性限制以及谁应该使用它
WoWMIPS 作为概念验证运行,并具有明确的限制:它缺乏浮点单元支持,这限制了对依赖 FPU 的应用程序的兼容性,并且它针对最初为较旧的 Windows NT 版本构建的用户模式 MIPS-I/R4000 二进制文件。开发者提供源代码以供审查,这有助于需要了解指令映射和 API 重定向机制的研究人员和逆向工程师。
适用于专家的实用工具,具有明确的兼容性权衡
WoWMIPS 是一个实用实验,适用于需要在现代桌面上以进程方式运行简单的 MIPS 时代 Windows 二进制文件的研究人员和复古计算用户。它的低开销、无 thunk 的 API 重定向和基于 VEH 的回调是其优势,而缺乏 FPU 支持是一个单一的技术限制,阻碍了广泛的应用兼容性。