反编译什么意思,具体该怎么用?

如题所述

反编译:高级语言源程序经过编译变成可执行文件,反编译就是逆过程。计算机软件逆向工程,又称计算机软件恢复工程,是指对其他软件的目标程序(如可执行程序)进行“逆向分析和研究”,从而推导出设计思想、原理、结构、算法、处理过程、操作方法等要素,等被其他软件产品使用,在某些特定情况下可能会衍生出源代码。反编译可以作为开发软件时的参考,也可以直接用于软件产品中。

扩展资料:

如果编译过程中发现源程序有错误,编译程序应报告错误的性质和错误的发生的地点,并且将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,有些编译程序还能自动纠正错误,这些工作由错误处理程序完成。需要注意的是,一般上编译器只做语法检查和最简单的语义检查,而不检查程序的逻辑。

参考资料来源:百度百科-编译

参考资料来源:百度百科-反编译

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-16
反编译做的就是编译的相反动作。举例来说,例如一个程序用C语言来写,写完之后要编译成CPU可以识别和运行的机器代码,也就是生成EXE程序。而反编译是反过来,把EXE反编译成编程源代码,也就是C程序,不过一般反编译大多数都是从机器码反编译为汇编。其他语言的情况基本也是这样的。至于具体要怎么用,这个就看你的目的了。但一般情况下是通过反编译主要是用于没有源码的程序的分析,例如破解别人的软件等。追问

能不能不这么书面化

追答

没什么办法,要说得尽量准确就只能这么说。不过如果你对这方面的了解为零的话,就算说得口语化估计也不能理解。

追问

我就是想问反编译需不需要学编程

追答

那是肯定需要的啊。我给你举两个实例吧。
一,比如说,你拿到人家的一个程序,是一个EXE文件,经过用工具分析,知道人家是用delphi写的,于是你用一个反编译工具把这个程序从EXE反编译为delphi源代码,这样你就可以对源代码进行修改和完善,然后再重新编译成EXE。
二,再比如你拿到一个程序,这程序需要注册,不注册不能用或者只能试用几次,注册后就能一直使用,因此你想对它进行破解。但EXE是CPU能识别的代码,在我们看起来是所谓的“乱码”,于是要找反编译工具,把它反编译成我们能看得懂的汇编语言,这样就能看到程序是怎么判断是否注册的,然后再根据找到的判断位置对其进行修改,就能做出破解版了。

对于上面这两种反编译的情况,不懂编程的人,第一种情况反编译出来的源代码,肯定看不懂,更别说对其进行完善了,根本就没意义,至于第二种情况,不但要有很深的编程水平还要非常有经验的人才能做到,反编译出来的汇编源码动辄上万行甚至几十万行,要从这么多行里面找出判断点,不是说学过一点编程的人就能做到的,更别说没学过编程的了。

你想问反编译需不需要学编程,你应该说出来啊,你说出来了人家才知道你想问什么,你在发问题的时候那样说,只说怎么用,没人知道你想问需不需要学编程啊。

本回答被提问者和网友采纳
相似回答