Modern x86 masaüstlerinde eski MIPS Windows ikili dosyalarını çalıştırmak
Yerel PE MIPS ikili dosyalarını yüklerken MIPS R4000 talimatlarını taklit edin, sistem çağrılarını haritalayın ve çoklu iş parçacıklı uygulamalar için her iş parçacığına özgü CPU durumunu koruyun. x86matthew tarafından oluşturulan WoWMIPS, MIPS geri çağrılarını ana API'lere yönlendirmek için dinamik API yönlendirmesi ve Vektörlü İstisna Yönetimi kullanan bir Windows yardımcı program aracıdır. Anahtar yetenekler arasında yer değiştirmeye duyarlı PE yükleme, iş parçacığına özel CPU durumları ve hafif, işlem içi yürütme bulunmaktadır. Eski Windows NT MIPS kodunu tam bir makine emülatörü olmadan çalıştırması gereken ters mühendisler, retro bilgisayar meraklıları ve güvenlik araştırmacıları için uygundur.
WoWMIPS'in bir MIPS programı çalıştırıldığında gerçekten ne yaptığı
WoWMIPS, MIPS R4000 talimatlarını x86'ya anında çevirir ve taşınabilir yürütülebilir dosyaları yeniden konumlandırma işlemleri ile yükler, böylece Windows NT için derlenmiş ikili dosyalar ana süreçte çalışabilir. Yükleyici, MIPS sistem çağrılarını yerel Windows API'lerine yönlendirmek için yükleme zamanında API stub'ları oluşturur ve araç, çok iş parçacıklı MIPS ikilileri için ayrı yürütme bağlamlarını korumak üzere her iş parçacığı başına CPU kayıtlarını ve durumunu saklar.
Yürütme sırasında ana sistemi nasıl etkiler
Proje, aşırı yükü azaltmak için işlem içinde çalışır, emüle edilen koda doğrudan bellek erişimi vererek ayrı bir sanal makine çalıştırmak yerine. Bu tasarım, tam sistem emülatörleri ile karşılaştırıldığında kaynak kullanımını azaltır ve Vektörlenmiş İstisna Yönetimi, kalıcı manuel kancalar olmadan geri çağırmaları keser. Yürütme ana adres alanı içinde gerçekleştiği için, araç tasarım gereği izolasyonu performans ve basitlik için değiş tokuş eder.
Güvenlik, uyumluluk sınırları ve kimlerin kullanması gerektiği
WoWMIPS, açık sınırlamalarla bir kanıt konsepti olarak çalışır: FPU'ya bağımlı uygulamalar için uyumluluğu kısıtlayan Floating Point Unit desteği yoktur ve başlangıçta daha eski Windows NT sürümleri için oluşturulmuş kullanıcı modu MIPS-I/R4000 ikililerine yöneliktir. Geliştirici, talimat eşlemesi ve API yönlendirme mekanikleri hakkında görünürlük ihtiyacı olan araştırmacılar ve ters mühendisler için inceleme amacıyla kaynak kodu sağlar.
Uzmanlar için pratik bir araç, net bir uyumluluk ticareti ile
WoWMIPS, modern masaüstlerinde basit MIPS dönemi Windows ikili dosyalarını işlem içinde çalıştırması gereken araştırmacılar ve retro bilgisayar kullanıcıları için pratik bir deneydir. Düşük yük, thunk olmadan API yönlendirmesi ve VEH tabanlı geri çağırmalar güçlü yönleridir, ancak FPU desteğinin olmaması, geniş uygulama uyumluluğunu engelleyen tek teknik sınırlamadır.