下面这一段是从网上摘抄的:反汇编就是把可执行的二进制文件转为汇编代码,进而可以研究该程序
我们平时写程序用的都是这样那样的语言.但是计算机是不认这种语言的.所以在程序发布前就要进行汇编,把你的程序汇编成计算机能够识别的二进制代码后再交由计算机机执行.反汇编就是汇编的逆过程,将二进制代码转换成原来的程序语句.
作用:把软件的代码从EXE中解析出来.通常编写程序是利用高级语言如C,Pascal等语言进行编程的,后再经过编译程序生成可以被计算机系统直接执行的执行文件。反汇编即是指将这些执行文件反编译还原成汇编语言或其他高级语言。但通常反编译出来的程序与原程序会存在许多不同,虽然执行效果相同,但程序代码会发生很大的变化,非编程高手很难读懂。
另外,有许多程序也可以进行逆向操作即反编译以求修改,例如Flash的文件生成的SWF文件,也可以被反汇编成Flash原码,但会发现与原程序有很大变化。
下面这一段是我从ARM角度整理的:ADS自带的AXD调试工具中的disassembly mode即反汇编模式选择。反汇编程序所依据的是程序目标代码,即axf 或 bin ,把这些目标代码经过反汇编处理得到反汇编程序。如果目标代码来自链接器并带有调试信息(如AXF),那么调试器可以根据这些信息判断源程序是ARM还是Thumb,然后进行反汇编处理得到反汇编程序。但如果代码不是来自链接器(比如来自程序存储器ROM)或是不包含调试信息,则需要用户指定反汇编模式。系统默认ARM/Thumb混合模式。