加载中…
个人资料
代码小卒
代码小卒
  • 博客等级:
  • 博客积分:0
  • 博客访问:676,615
  • 关注人气:74
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

反汇编和反编译的区别

(2014-06-10 17:54:22)
分类: 汇编与逆向
反汇编得到的是汇编代码
反编译得到的是所用语言的源代码

比如,一个c语言写的程序
反汇编得到汇编代码
反编译得到c语言的源代码

///////

编译、汇编、反编译、反汇编、伪指令区别
        编译就是把高级语言变成计算机可以识别的二进制语言,利用编译程序从源语言编写的源程序产生目标程序的过程。
        汇编大多是指汇编语言,汇编程序。把汇编语言翻译成机器语言的过程称为汇编。在汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理的系统软件。
        反汇编:将可执行的文件中的二进制经过分析转变为汇编程序。
        反编译:将可执行的程序经过分析转变为高级语言的源代码格式,一般完全的转换不太可能,编译器的优化等因素在里面。
        伪指令(伪汇编指令),用于告诉汇编程序如何进行汇编的指令,它既不控制机器的操作也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行。 将相对于程序或相对于寄存器的地址载入寄存器中。
        预处理指令(伪编译指令),比如#define 和 #ifdef,一般被用来使源代码在不同的执行环境中被方便的修改或者编译。源代码中这些指令会告诉预处理器执行特定的操作。比如告诉预处理器在源代码中替换特定字符等。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有