我正在嘗試構建一個mac(可可)應用程序。我有一個框架,我試圖鏈接到已編譯爲iOS(armv7拱門)。不幸的是我不再擁有我用來編譯原始框架的源代碼。是否有可能改變框架的架構(可能通過反編譯然後重新編譯),以便它可以編譯到我的可可應用程序中?如何將armv7二進制文件轉換爲i386/x86_64
到目前爲止,我已經研究過lipo和fat二進制文件以及使用optool進行反編譯,但是沒有對轉換架構做任何直接的改進。
感謝您的幫助。
我正在嘗試構建一個mac(可可)應用程序。我有一個框架,我試圖鏈接到已編譯爲iOS(armv7拱門)。不幸的是我不再擁有我用來編譯原始框架的源代碼。是否有可能改變框架的架構(可能通過反編譯然後重新編譯),以便它可以編譯到我的可可應用程序中?如何將armv7二進制文件轉換爲i386/x86_64
到目前爲止,我已經研究過lipo和fat二進制文件以及使用optool進行反編譯,但是沒有對轉換架構做任何直接的改進。
感謝您的幫助。
不,沒有合理的方法來自動執行此轉換。大多數C反編譯器生成的代碼是程序集的一個非常直接的翻譯;它通常不適合編譯。
(一個好的反編譯器是0123A插件,但是它非常昂貴 - 許可證超過了2000美元,除非你的框架特別龐大和複雜,否則在沒有這個工作的情況下工作可能更具成本效益工具)。
如果你確實丟失了源代碼,你唯一真正的選擇就是重寫框架。您可以使用反彙編來指導您的工作,但您需要填寫一些細節。
從理論上講,如果代碼中不使用任何POSIX系統直接調用,有可能創建一個Frankensteinian憎惡
這就是說,在實踐中,除非框架非常複雜,否則重寫代碼會更快。實際上,即使它非常複雜,如果你知道有足夠的arm64 asm來解決這個問題,你也可以更快地從asm中重寫它。 :-)
不,請不要 – tbodt
聽起來非常困難,我會重寫它:p – user1320885
瘋狂。就像你要做的事情來證明這是可能的,但絕不會在一百萬年內出貨。 :-D – dgatwood