情况:很久以前,我用 C 和 C++ 开发了一些编码,通过转换为 *.SO 文件 - 我删除了那些 C 和 C++ 文件。
问题:我想要将 *.SO 文件重新转换为 C 和 C++ 文件以进行代码升级,请指导该过程并发送任何重新转换的教程和程序。
答案1
这个问题之前曾在这里被问过:https://stackoverflow.com/questions/2306972/is-there-any-way-to-decompile-linux-so。
无论如何,你都无法找回你的原始代码,或者引用卡洛斯·古铁雷斯的话:“你可以用牛做汉堡包,但你不能用汉堡包做牛“。
*.so 文件是已编译的共享对象(大致相当于 Windows 中的 dll)。它包含机器可以理解的语言中某个函数的所有信息。这不一定是编写它的语言 - 如果原始代码不是纯汇编语言,则几乎肯定不是同一种语言。因此,虽然可以获取足够的信息来生成执行相同操作的函数,但无法返回原始源代码。