2009-10-24 92 views

回答

4

如果Windows EXE實際上是C#(或其他.net)字節碼,那麼您可以使用mono來運行它。您可以使用「文件」命令

$ file hello.exe 
hello.exe: PE32 executable for MS Windows (console) Intel 80386 32-bit Mono/.Net assembly 

除此之外檢查,它要麼葡萄酒或重寫應用程序,像別人在這裏建議。

+1

但是爲什麼不能讀取所有彙編命令(例如寫入控制檯的命令)並將它們放入精靈(也許是轉換地址和其他東西)? – 2014-11-04 15:47:49

0

不,沒有。很多原因之一:它們使用的庫和內核調用是不同的。

5

如果您有源代碼,您可以重新編譯它以使用不同的平臺。但是,這並不總是像編譯它一樣簡單。如果有任何依賴於平臺的調用(例如Windows API),它們將不得不完全重寫以適應新的平臺。

在短期內,模擬器是您最好的選擇。如果您無法訪問源代碼,那麼我沒有辦法知道要這樣做。

2

無法將爲一個平臺/體系結構編譯的可執行文件「轉換」爲另一個平臺/體系結構。 (即Windows到Linux,Windows到Mac OS X,Mac OS X到Linux等)

您可以選擇使用WINE或虛擬機環境。如果你有一個簡單的舊版Windows程序,WINE是非常棒的.Windows 2000和一些XP可以很好地工作,但是如果它複雜或者使用一些第三方庫或者沒有被移植過的微軟版本,它將無法正常工作或者無法正常工作。

我發現VM環境效果最好。我建議使用VirtualBox這是一個非常好的,免費的,用於x86架構的跨平臺可視化軟件。

+0

xen也不錯,但很難走。 – 2009-10-26 11:31:38