Запустите устаревшие MIPS Windows бинарные файлы на современных x86 настольных компьютерах
Эмулировать инструкции MIPS R4000 при загрузке нативных PE MIPS бинарников, сопоставляя системные вызовы и поддерживая состояние ЦП на поток за поток для многопоточных приложений. WoWMIPS, созданный x86matthew, является утилитой Windows, которая использует динамическую переадресацию API и обработку векторных исключений для маршрутизации вызовов MIPS в хост-API. Ключевые возможности включают загрузку PE с учетом перемещения, локальные состояния ЦП для потоков и легковесное выполнение в процессе. Это подходит для реверс-инженеров, любителей ретро-компьютеров и исследователей безопасности, которым нужно использовать старый код MIPS Windows NT без полного эмулятора машины.
Что на самом деле делает WoWMIPS, когда вы запускаете программу MIPS
WoWMIPS переводит инструкции MIPS R4000 в x86 на лету и загружает исполняемые файлы в формате MIPS Portable Executable с обработкой перемещений, так что бинарные файлы, скомпилированные для Windows NT, могут выполняться в процессе хоста. Загрузчик генерирует API-заглушки во время загрузки, чтобы перенаправить системные вызовы MIPS на нативные API Windows, и инструмент сохраняет регистры ЦП и состояние для каждого потока, так что многопоточные бинарные файлы MIPS поддерживают отдельные контексты выполнения.
Как это влияет на хост-систему во время выполнения
Проект работает в процессе, чтобы уменьшить накладные расходы, предоставляя прямой доступ к памяти для эмулируемого кода вместо запуска отдельной виртуальной машины. Эта конструкция снижает использование ресурсов по сравнению с эмуляторами полной системы, а Векторная Обработка Исключений перехватывает обратные вызовы без постоянных ручных хуков. Поскольку выполнение происходит внутри адресного пространства хоста, инструмент жертвует изоляцией ради производительности и простоты по замыслу.
Безопасность, ограничения совместимости и кто должен его использовать
WoWMIPS работает как доказательство концепции с явными ограничениями: ему не хватает поддержки блока с плавающей запятой, что ограничивает совместимость для приложений, зависящих от FPU, и он нацелен на бинарные файлы MIPS-I/R4000 в пользовательском режиме, изначально созданные для более старых версий Windows NT. Разработчик предоставляет исходный код для обзора, что помогает исследователям и реверс-инженерам, которым нужна видимость в механизмы сопоставления инструкций и перенаправления API.
Практический инструмент для специалистов с ясным компромиссом совместимости
WoWMIPS - это практический эксперимент для исследователей и пользователей ретро-компьютеров, которым необходимо запускать простые бинарные файлы Windows эпохи MIPS в процессе на современных настольных компьютерах. Его низкие накладные расходы, отсутствие промежуточного API перенаправления и обратные вызовы на основе VEH являются сильными сторонами, в то время как отсутствие поддержки FPU является единственным техническим ограничением, которое мешает широкой совместимости приложений.