เรียกใช้ไบนารี MIPS Windows รุ่นเก่าบนเดสก์ท็อป x86 สมัยใหม่
เลียนแบบคำสั่ง MIPS R4000 ขณะโหลดไบนารี PE MIPS ดั้งเดิม การแมพระบบเรียกใช้งาน และการรักษาสถานะ CPU ต่อเธรดสำหรับแอปพลิเคชันที่มีหลายเธรด WoWMIPS ซึ่งสร้างโดย x86matthew เป็นเครื่องมือยูทิลิตี้ของ Windows ที่ใช้การเปลี่ยนเส้นทาง API แบบไดนามิกและการจัดการข้อยกเว้นแบบเวกเตอร์เพื่อส่งเสริมการเรียกกลับ MIPS ไปยัง API ของโฮสต์ ความสามารถหลักรวมถึงการโหลด PE ที่รับรู้การย้ายที่อยู่ สถานะ CPU ต่อเธรด และการดำเนินการในกระบวนการที่เบา มันเหมาะสำหรับวิศวกรย้อนกลับ ผู้ที่ชื่นชอบการคอมพิวเตอร์ย้อนยุค และนักวิจัยด้านความปลอดภัยที่ต้องการใช้งานโค้ด MIPS ของ Windows NT เก่าโดยไม่ต้องใช้เครื่องจำลองทั้งหมด
WoWMIPS ทำอะไรเมื่อคุณรันโปรแกรม MIPS
WoWMIPS แปลคำสั่ง MIPS R4000 เป็น x86 แบบเรียลไทม์ และโหลดไฟล์ Portable Executable แบบ MIPS พร้อมการจัดการการย้ายที่อยู่ ดังนั้นไบนารีที่คอมไพล์สำหรับ Windows NT สามารถทำงานในกระบวนการโฮสต์ได้ ตัวโหลดสร้าง API stubs ขณะโหลดเพื่อเปลี่ยนเส้นทางการเรียกระบบ MIPS ไปยัง Windows APIs ที่เป็นธรรมชาติ และเครื่องมือจะเก็บรีจิสเตอร์ CPU และสถานะต่อเธรดเพื่อให้ไบนารี MIPS แบบหลายเธรดรักษาบริบทการทำงานแยกกัน
มันมีผลต่อระบบโฮสต์ในระหว่างการทำงานอย่างไร
โครงการทำงานในกระบวนการเพื่อลดภาระ โดยให้การเข้าถึงหน่วยความจำโดยตรงกับโค้ดที่จำลองแทนที่จะรันเครื่องเสมือนแยกต่างหาก การออกแบบนั้นลดการใช้ทรัพยากรเมื่อเปรียบเทียบกับเครื่องจำลองระบบเต็มรูปแบบ และการจัดการข้อยกเว้นแบบเวกเตอร์จะดักจับการเรียกกลับโดยไม่ต้องใช้การเชื่อมต่อด้วยตนเองอย่างถาวร เนื่องจากการดำเนินการเกิดขึ้นภายในพื้นที่ที่อยู่ของโฮสต์ เครื่องมือจึงแลกเปลี่ยนการแยกตัวเพื่อประสิทธิภาพและความเรียบง่ายตามการออกแบบ
ความปลอดภัย ขีดจำกัดความเข้ากันได้ และใครควรใช้มัน
WoWMIPS ทำงานเป็นการพิสูจน์แนวคิดที่มีข้อจำกัดที่ชัดเจน: มันขาดการสนับสนุนหน่วยประมวลผลเลขทศนิยม ซึ่งจำกัดความเข้ากันได้สำหรับแอปพลิเคชันที่ขึ้นอยู่กับ FPU และมันมุ่งเป้าไปที่ไบนารี MIPS-I/R4000 โหมดผู้ใช้ที่สร้างขึ้นในตอนแรกสำหรับ Windows NT รุ่นเก่า นักพัฒนาจัดเตรียมซอร์สโค้ดสำหรับการตรวจสอบ ซึ่งช่วยนักวิจัยและวิศวกรย้อนกลับที่ต้องการมองเห็นการแมพคำสั่งและกลไกการเปลี่ยนเส้นทาง API
เครื่องมือที่ใช้งานได้จริงสำหรับผู้เชี่ยวชาญ โดยมีการแลกเปลี่ยนความเข้ากันได้ที่ชัดเจน
WoWMIPS เป็นการทดลองที่ใช้งานได้จริงสำหรับนักวิจัยและผู้ใช้คอมพิวเตอร์ย้อนยุคที่ต้องการเรียกใช้ไบนารี Windows ในยุค MIPS ที่เรียบง่ายในกระบวนการบนเดสก์ท็อปสมัยใหม่ API การเปลี่ยนเส้นทางที่มีค่าใช้จ่ายต่ำและไม่มี thunk และการเรียกกลับที่ใช้ VEH เป็นจุดแข็ง ในขณะที่การขาดการสนับสนุน FPU เป็นข้อจำกัดทางเทคนิคเพียงอย่างเดียวที่ป้องกันความเข้ากันได้ของแอปพลิเคชันในวงกว้าง.