反编译汇编
Ⅰ 急急急 反编译软件把EXE文件反译成什么 是机器语言还是汇编语言 是哪个汇编语言
首先你得清楚,微软的exe可执行文件(即PE文件,有PE规范定义)的特征,才能使用不同的反编译软件对exe进行反编译。
如今,exe一般分托管代码和非托管代码两类(托管代码是由C#等语言生成的.NET运行时库支持运行的中间代码,不是CPU芯片可直接执行的二进制机器码;而非托管代码是CPU芯片看执行的机器码)
非托管代码反编译后,其实就是简单的将二进制机器码用汇编表示,所以是汇编语言。
托管代码反编译,好的反编译器直接将中间语言字节码反编译成高级语言代码,如C#
------------------------------------------------------
另外,在什么平台运行的exe正确反编译(需要选择正确的芯片结构)为同平台的汇编语言。
如嵌入式ARM芯片上运行的Win CE系统上的exe就应当正确反编译为ARM汇编
x86的就应当反编译为x86汇编。
Ⅱ 反编译exe文件就是把exe还原为汇编
首先了解一下概念,exe程序只是WIN下PE格式的可执行文件的一种,而所谓的计算机执行的代码只是一串二进制数,跟数据没区别,当CS,EIP指向哪,哪里就是程序,而汇编语言之所以叫最底层的语言,是因为, 汇编的每一个语法,都应对了一串二进制的指令,这也就是反汇编的原理,所以NO1.一、反编译exe程序 就是 把 exe 还原为汇编语言吗?,这句话,不能叫还原,应该叫解释,“解释”的东西,没还原的那么逼真,比如,在汇编源程序中所有的标号和注释,进行编译后,变成二进制可执行文件后,在反汇编,标号就变成数字了,而注释更是没了..... 二、除了 还原为 汇编语言,还能 反编译为 其他高级语言吗?不能,高级语言的语法是建立在大量的计算机二进制代码之上的,比如你C语言随便调用一个子函数,到了二进制中,他是先压栈,参数(编译后参数从右往左压,每个语言还不一样),然后就是call 子函数,子函数运行后,他还要清理堆栈,所以你一个句简单的高级语言,其实蕴含了大量的代码,而高级语言编译后的程序,就脱离了他的开发环境,楼上说的会引起你误会,Java的中间码,可以用他自带的反编译工具,因为Java不是编译器,而是解释器,所以他不编译,只是解释他的中间码NO2.所有的exe都可以反汇编,但是你要注意,不只exe这种pe格式,linux下可执行文件是elf,所以你在反汇编的时候,要注意可执行文件的文件的头,而早期的DOS只是纯二进制代码,没有头文件,这个很重要,你要反汇编什么格式,就要选择相应的工具NO3.exe反汇编,当然是OD,不过,我对OD不熟悉,好像他只支持WIN下的反汇编
Ⅲ 有哪个反编译器可以把一个exe程序反编译成汇编语言
你去看雪学院,
反汇编
软件
下载吧,有好多呢,
http://www.pediy.com/tools/Disassemblers.htm这里是
静态反汇编
的前三个都不错,对于加壳的软件不好用。最好用
动态
反汇编的
http://www.pediy.com/tools/Debuggers.htm这里的第一个。453147896我的qq还有问题qq聊
Ⅳ 反编译和反汇编有什么区别
反汇编是把机器码翻译成的汇编;
反编译是把机器码翻译成高级语言的过程,但通常要有其他线索辅助才能完成。
Ⅳ 反编译或汇编是什么回事
汇编是一种编程语言
反汇编是逆向工程