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