反汇编器

编辑
本词条由“匿名用户” 建档。
反汇编器是一种计算机程序即翻译机器语言成汇编语言-the逆操作,一个的汇编。反汇编器与反编译器不同,反编译器针对的是高级语言而不是汇编语言。反汇编是反汇编器的输出,其格式通常是为了人类可读性而不是适合于汇编器的输入,因此主要是一种逆向工程工具。 汇编语言源代码通常允许使用常量和程序员注释。这些通常由汇编程序从组装的机器代码中删除。如果是这样,对机器代码进行操作的反汇编器将产生缺少这些常量...

什么是反汇编器

编辑

反汇编器是一种计算机程序即翻译机器语言汇编语言-the逆操作,一个的汇编。反汇编器与反编译器不同,反编译器针对的是高级语言而不是汇编语言。反汇编是反汇编器的输出,其格式通常是为了人类可读性而不是适合于汇编器的输入,因此主要是一种逆向工程工具

汇编语言源代码通常允许使用常量和程序员注释。这些通常由汇编程序从组装的机器代码中删除。如果是这样,对机器代码进行操作的反汇编器将产生缺少这些常量和注释的反汇编;与原始带注释的源代码相比,反汇编的输出对于人类来说更难以解释。一些反汇编程序提供了一个内置的代码注释功能,其中生成的输出通过关于被调用API函数或被调用函数的参数的注释来丰富。一些反汇编程序利用目标文件(如ELF)中存在的符号调试信息。例如,国际开发署允许人类用户在交互式会话中为代码的值或区域组成助记符:应用于反汇编过程的人类洞察力通常与代码编写过程中的人类创造力平行。

在具有可变宽度指令的CISC平台上,多个反汇编可能是有效的。反汇编器不处理在执行过程中变化的代码。

反汇编程序的例子

编辑

反汇编程序可以是独立的,也可以是交互式的。一个独立的反汇编器在执行时会生成一个可以检查的汇编语言文件;交互式显示用户立即进行的任何更改的效果。例如,反汇编器最初可能不知道程序的某个部分实际上是代码,而将其视为数据;如果用户指定它是代码,则立即显示生成的反汇编代码,允许用户检查它并在同一次运行期间采取进一步行动。

任何交互式调试器都将包含某种方式来查看被调试程序的反汇编。通常,同一个反汇编工具会打包为一个独立的反汇编程序,与调试器一起分发。例如,GNUBinutils的一部分objdump与交互式调试器gdb相关。

  • 二进制忍者
  • 调试
  • 交互式反汇编程序(IDA)
  • 指导
  • 料斗拆卸器
  • NetwideDisassembler(Ndisasm),NetwideAssembler(NASM)的伴侣。
  • OLIVER(CICS交互式测试/调试)包括Assembler、COBOL和PL/1的反汇编程序
  • OllyDbg是一个32位汇编级分析调试器
  • 雷达2
  • SIMON(批处理交互式测试/调试)包括汇编器、COBOL和PL/1的反汇编器
  • Sourcer,1990年代由VCommunications开发的用于DOS、OS/2和Windows的注释16位/32位反汇编程序

反汇编器

反汇编器和模拟器

编辑

动态反汇编器可以合并到仿真器或管理程序的输出中,以逐行“跟踪”任何已执行机器指令的实时执行情况。在这种情况下,除了包含反汇编机器代码的行之外,还可以显示每个单独指令导致的寄存器和/或数据更改(或“状态”的任何其他更改,例如条件代码)拆解说明的旁边或下方。这为最终的问题解决提供了极其强大的调试信息,尽管结果输出的大小有时可能非常大,尤其是如果对整个程序的执行处于活动状态。OLIVER从1970年代初期开始提供这些功能,作为其CICS的一部分调试产品提供,现在已被整合到Compuware的XPEDITER产品中。

长度分解器

编辑

长度反汇编器,也被称为长度拆装发动机(LDE),是一种工具,给定的字节(指令)序列,输出由解析的指令取出的字节数。x86架构的著名开源项目包括ldisasm、Tinyx86LengthDisassembler和用于x86-64的ExtendedLengthDisassemblerEngine。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/127533/

(4)
词条目录
  1. 什么是反汇编器
  2. 反汇编程序的例子
  3. 反汇编器和模拟器
  4. 长度分解器

轻触这里

关闭目录

目录