代码之家  ›  专栏  ›  技术社区  ›  AkThao

反汇编程序是如何工作的,它与反编译程序有何不同?

  •  0
  • AkThao  · 技术社区  · 9 年前

    我正在考虑在我的Linux Mint 17.3操作系统上安装反汇编程序(或反编译器),我想知道反汇编程序和反编译器之间的区别。我大致知道它们是什么(名称很容易解释),但它们仍然有点令人困惑。

    我曾读到反汇编程序将程序转换为汇编语言,但我不知道,所以对我来说这似乎有点没用。我还读到反编译程序将“二进制文件”转换为源代码。二进制文件到底是什么?

    显然,反编译器无法反编译到C,只能反编译到Python和其他类似语言。那么,如何将程序转换为其原始C源代码呢?

    1 回复  |  直到 9 年前
        1
  •  5
  •   tofro    9 年前

    反汇编程序是一个非常简单的应用程序,它可以 机器代码 进入 汇编语言语句 装配工 由于机器代码和汇编之间存在严格的一对一关系,所以程序确实如此,而且非常简单。反汇编程序针对特定的CPU。用于创建可执行文件的原始汇编程序只是次要的。

    反编译器旨在将编译好的高级语言程序从机器代码重新创建为原始格式,从而尝试C或Forth(反编译器适用的流行语言)编译器的反向操作。因为有这么多的高级语言,因此原始高级语言结构可以用机器代码表达的方式有这么多(甚至同一语言和结构有很多不同的策略,甚至在同一编译器中,甚至根据编译器模式和情况有不同的策略),这个操作要复杂得多,并且非常依赖于原始编译器(甚至可能是使用的命令行,它是选择的优化级别,也是使用的版本)。

    可能是原始程序的源代码版本 .