转自:百科
反汇编
汇编
代码的过程,也可说是把机器语言转为汇编语言代码,低级转高级的意思,常用于软件破解。
通常,编写
程序是利用高级语言如C,pascal等高级语言进行编程的,然后再经过编译程序生成可以被
计算机系统直接执行的文件(机器语言)。
反汇编即是指将这些执行文件
反编译
还原成
汇编语言
或其他高级语言。但通常反编译出来的程序与原程序会存在许多不同,虽然执行效果相同,但程序代码 会发生很大的变化,非编程高手很难读懂。
另外,有许多程序也可以 进行逆向操作即反编译以求修改,例如Flash的文件生成的SWF文件,也可以被反汇编成Flash原码,但会发现与原程序有很大变化。反汇编可以通过反汇编的一些
软件实现DEBUG也能反汇编的,DEBUG文件位置-u,这样就能实现了。
静态反汇编是从反汇编出来的程序清单上分析,从提示信息入手进行分析。目前,大多数软件在设计时,都采用了人机对话方式。所谓人机对话,即在软件运行过程中,需要由用户选择的地方,软件即显示相应的提示信息,并等待用户按键选择。而在执行完某一段程序之后,便显示一串提示信息,以反映该段程序运行后的状态,是正常运行,还是出现错误,或者提示用户进行下一步工作的帮助信息。为此,如果我们对静态反汇编出来的程序清单进行阅读,可了解软件的编程思路,以便顺利破解该软件,也就是我们常说的破解版即盗版。反汇编亦是外挂设计最重要的环节,可以说没有反汇编就没有外挂。 常用的静态分析工具是W32DASM、PEiD、FileInfo、 Hex Rays Ida和HIEW等。简单地讲,反汇编可以看到软件作者的编程思路,可以破解部分资源,可以将软件汉化等,例如找到它是如何注册的,从而解出它的注册码或者编写注册机。
反汇编:把目标代码转为