什么是反汇编呢?

什么是反汇编呢?,第1张

分类: 电脑/网络 >>程序设计 >>其他编程语言

解析:

反汇编就是把exe、dll文件中的机器代码翻译成为汇编语言。以便让人能够读懂exe和dll中的机器指令

汇编是把汇编语言程序翻译为exe,dll中的机器代码,反汇编是这个过程的逆过程。

在计算机专业里“汇编”有作为名词用的和作为动词用的两种意思。做名词时,是“汇编语言”的简称,它是一种把CPU可执行的指令用符号化表示出来的一种语言,是继“机器语言”后的第二代语言(现在常用的C、Basic、Java等属于第三代语言)。作为动词用的时候是指把第三代语言程序转变为汇编语言程序的过程。懂汇编语言的人可以通过修改高级语言汇编出来的程序修改,使它具有更高的运行效率。

“反汇编”是指把可执行程序(如*.exe或*.DLL)转化为汇编语言程序的过程。通过反汇编可以把你没有源代码的可执行程序变成可以阅读的汇编语言程序,你可以从中修改(如:破解密码)或找出它的运做过程(如:找出病毒的感染过程、藏身位置、发作条件等,用手工去除杀毒软件对付不了的病毒)。不过要小心的是不要因为破解人家的软件触犯了法律!

默认情况下隐藏只有在“选项”对话框中的“调试”节点下启用了地址级调试后,该功能才可用。

但对于脚本或 SQL 调试是不可用的。

“反汇编”窗口显示与编译器所创建的指令对应的汇编代码。

如果正在调试托管代码,则这些汇编指令对应于由实时 (JIT) 编译器创建的本机代码,而不是由 Visual Studio 编译器生成的 Microsoft 中间语言 (MSIL)。

除汇编指令外,

“反汇编”窗口还可显示如下可选信息:

每条指令所在的内存地址

对于本机应用程序,这是实际内存地址。

对于 Visual Basic、C# 或托管代码,这是距离函数开头的偏移量。

程序集代码派生于的源代码。

代码字节 — 实际计算机或 MSIL 指令的字节表示形式。

内存地址的符号名。

对应于源代码的行号。

汇编语言指令由助记符(指令名称的缩写)和代表变量、寄存器以及常量的符号所组成。

每一条机器语言指令由一个汇编语言助记符代表,通常其后还跟有一个或多个变量、寄存器或常量。

如果您无法阅读汇编语言但又想充分利用“反汇编”窗口,请参考有关汇编语言编程的好书。

汇编语言编程超出了我们对“反汇编”窗口进行简单介绍的讨论范围。

汇编语言代码在很大程度上依赖处理器的寄存器(对托管代码而言,依赖公共语言运行时寄存器),您将发现协同使用“反汇编”窗口和“寄存器”窗口将很有用,可以允许您检查寄存器内容。

您很可能愿意使用汇编语言,而从来不会愿意或需要查看原始的、数字形式的机器代码指令。

不过,如果愿意的话,可以利用“内存”窗口或从“反汇编”窗口的快捷菜单中选取“代码字节”来查看。

注意显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您现用的设置或版本。

若要更改设置,请在“工具”菜单上选择“导入和导出设置”。

有关更多信息,请参见使用设置。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11430949.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存