说一下我自己的理解。
(1)编译的过程和反编译的过程是相反的。
编译的过程一般是高级语言(如C语言)——》中间语言(只出现在编译过程中)——》汇编语言——》可执行的二进制代码
反编译就是从可执行的二进制代码开始,反着来。二进制代码反编译后一般也就是到汇编而已,通常情况下很难进一步往回反。
(2)分析一下几种语言的情况
①VC的程序
VC的程序反编译到汇编代码没有问题
②Java的程序
对于class文件可以反编译到java,也没有问题
③net的程序
net中的dll文件可以反编译到VBnet或者C#,也没有问题
反编译中用到的具体软件没有给出,可以比较容易地从网上搜索到。
反汇编只是按将010二进制码这样的目标码分析解释成Assembler ,所以我们叫DisAssembler,当然这与教科书上的汇编语言是不同的,这是由编译器优化生成的目标代码,而反汇编只是将通过如intel 指令手册就可以将之转换出来,而逆向编程是在反汇编的基础上,然后分析他的逻辑,从而用高级语言或是流式语言进行二次编程,比较常见的,就是使用嵌入asm(c语言),再则因为汇编的条件啥的其实基本都在goto,所以你用老一套的跟,只到你跟出自己的思路来了,那就真的就是逆向编程了,不过现在多是以上两种,当然高手我就没资格评论了
A汇编程序 B编译程序 不用解释了。 C解释程序 是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句。D反汇编程序可以用来将二进制机器语言程序返回到汇编语言程序,来查阅目标码程序的正确性,它也可作为一种“破译”程序
D反汇编程序 不属于言处理程序
以上就是关于反汇编就是将程序再转换成C语言吗全部的内容,包括:反汇编就是将程序再转换成C语言吗、反汇编与逆向编程的区别、选择:下列不属于语言处理程序的是等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)