我正在尝试构建一个mac(cocoa)应用程序。我有一个框架,我试图链接到已编译为iOS(armv7拱)。遗憾的是,我不再拥有用于编译原始框架的源代码。是否可以更改框架的体系结构(可能通过反编译然后重新编译),以便可以将其编译到我的cocoa应用程序中?
到目前为止,我已经研究过脂肪和脂肪二进制文件以及使用optool进行反编译,但在转换体系结构方面没有取得任何直接进展。
感谢您的帮助。
答案 0 :(得分:1)
不,没有合理的方法来自动化这种转换。大多数C反编译器生成的代码是程序集的非常直译的代码;它通常不适合编译。
(一个好的反编译器是IDA Pro的Hex-Rays插件。然而,它非常昂贵 - 许可证超过2000美元。除非你的框架特别大且复杂,否则它可能更具成本效益没有这个工具的工作。)
如果您确实丢失了源代码,那么您唯一真正的选择就是重写框架。您可以使用反汇编来指导您的工作,但您需要填写一些细节。
答案 1 :(得分:1)
理论上,如果代码不直接使用任何POSIX系统调用,则可能会创建一个Frankensteinian憎恶:
也就是说,实际上,除非框架非常复杂,否则重写代码会更快。而且实际上,即使它非常复杂,如果你知道足够的arm64 asm来关闭它,你可以更快地从asm重写它。 : - )