iOS 逆向编程(二十一)代码编译过程(以及什么阶段可反编译)

1,148 阅读1分钟
  • iOS 开发中,我们的代码是怎么编译成 Mach-O 文件的?

  • 从下面的图我们可以看出,它是从 OC -> 汇编 -> 机器语言 这么一个步骤编译过去的,那能不能进行反编译回来呢?因为我们是能拿到 Mach-O 文件的,答案是:能反编译到 汇编阶段,但是无法 100%汇编阶段OC

  • 因为从 OC汇编,不同的 OC 代码,编译出来的汇编代码可能是一样的,所以也就无法 100%汇编 反编译为 OC

  • 既然无法 100% 还原,但是大概 50%-60% 还是可以的,只能用来看看大概,下章会写到 Hopper Disassmbler 这个工具,它能够将 Mach-O 文件的 机器语言 代码反编译成 汇编代码OC伪代码 或者 Swift代码