將 ELF 可執行檔 (Linux) 轉換為 PE.exe (Windows)

將 ELF 可執行檔 (Linux) 轉換為 PE.exe (Windows)

在使用機器碼檔案方面我是新手!

我需要將作為 ELF (Linux) 獲得的機器代碼可執行檔轉換為 Windows 的 exe 檔案。我嘗試過“objconv”,但是儘管格式建議使用“-fPE”,但當我使用它時,命令列顯示“錯誤 2004 未知命令行”和“錯誤 2103 無法讀取輸入檔”。我懷疑Linus和Windows平台之間存在一些不相容

答案1

儘管平台之間的底層目標程式碼可能相同,但重要的本機應用程式在 Windows 和 Linux 之間無法實現二進位相容。

如果您嘗試轉換的 Linux 執行檔是動態連結的,則需要存在 Windows 上不存在的程式庫(您可以透過ldd /path/to/program在 Linux 電腦上執行來查看此程式庫清單)。

即使您將所有庫轉換為 PE 可執行格式或靜態連結它們,系統也會調用NT內核Linux核心是完全不同的。它們之間不存在直接的一一對應關係。

如果可能的話,最好的選擇是找到原始應用程式的原始程式碼。如果程式以可移植的方式編寫,則它可以在 Windows 和 Linux 上編譯。儘管兩個平台之間的系統呼叫不同,但它們的 C 庫實現的子集具有標準化行為。

答案2

這幾乎肯定是行不通的。 Linux 和 Windows 無法很好地相容。您想要「轉換」的應用程式必須從 Windows 原始程式碼重新建置(這將需要 Windows 特定的修補程式)。幸運的話,您嘗試執行的應用程式已經有 Windows 連接埠。

答案3

相關內容