Uruchomienie starych binarnych plików MIPS Windows na nowoczesnych komputerach stacjonarnych x86
Emulować instrukcje MIPS R4000 podczas ładowania natywnych binarnych plików PE MIPS, mapując wywołania systemowe i utrzymując stan CPU dla każdego wątku w aplikacjach wielowątkowych. WoWMIPS, stworzony przez x86matthew, to narzędzie użytkowe dla Windows, które wykorzystuje dynamiczne przekierowanie API i obsługę wyjątków wektorowych, aby kierować wywołania MIPS do hostujących API. Kluczowe możliwości obejmują ładowanie PE z uwzględnieniem relocacji, stany CPU lokalne dla wątków oraz lekkie, wewnętrzne wykonanie. Odpowiada inżynierom odwrotnym, entuzjastom retro-komputingu oraz badaczom bezpieczeństwa, którzy muszą uruchamiać stary kod MIPS Windows NT bez pełnego emulatora maszyny.
Co właściwie robi WoWMIPS, gdy uruchamiasz program MIPS
WoWMIPS tłumaczy instrukcje MIPS R4000 na x86 w locie i ładuje pliki Portable Executable w formacie MIPS z obsługą relokacji, dzięki czemu binaria skompilowane dla Windows NT mogą być uruchamiane w procesie gospodarza. Loader generuje stuby API w czasie ładowania, aby przekierować wywołania systemowe MIPS do natywnych API Windows, a narzędzie utrzymuje rejestry CPU i stan na każdy wątek, dzięki czemu wielowątkowe binaria MIPS zachowują oddzielne konteksty wykonania.
Jak wpływa na system gospodarza podczas wykonywania
Projekt działa w procesie, aby zredukować narzut, dając bezpośredni dostęp do pamięci emulowanemu kodowi zamiast uruchamiać osobną maszynę wirtualną. Taki projekt zmniejsza zużycie zasobów w porównaniu do emulatorów pełnosystemowych, a Vectored Exception Handling przechwytuje wywołania zwrotne bez trwałych ręcznych haków. Ponieważ wykonanie odbywa się wewnątrz przestrzeni adresowej gospodarza, narzędzie wymienia izolację na wydajność i prostotę z założenia.
Bezpieczeństwo, ograniczenia kompatybilności i kto powinien z tego korzystać
WoWMIPS działa jako dowód koncepcji z wyraźnymi ograniczeniami: brakuje mu wsparcia dla jednostki zmiennoprzecinkowej, co ogranicza kompatybilność dla aplikacji zależnych od FPU, i celuje w binaria MIPS-I/R4000 w trybie użytkownika, które pierwotnie zostały zbudowane dla starszych wersji Windows NT. Programista udostępnia kod źródłowy do przeglądu, co pomaga badaczom i inżynierom odwrotnym, którzy potrzebują wglądu w mapowanie instrukcji i mechanikę przekierowywania API.
Praktyczne narzędzie dla specjalistów, z wyraźnym kompromisem w zakresie zgodności
WoWMIPS to praktyczny eksperyment dla badaczy i użytkowników retro-komputingowych, którzy muszą uruchamiać proste binaria Windows z epoki MIPS w procesie na nowoczesnych komputerach stacjonarnych. Jego niskie obciążenie, brak pośrednich wywołań API oraz oparte na VEH wywołania zwrotne są jego mocnymi stronami, podczas gdy brak wsparcia dla FPU jest jedynym ograniczeniem technicznym, które uniemożliwia szeroką zgodność aplikacji.





