反编译:高级语言源程序经过编译变成可执行文件,反编译就是逆过程。计算机软件逆向工程,又称计算机软件恢复工程,是指对其他软件的目标程序(如可执行程序)进行“逆向分析和研究”,从而推导出设计思想、原理、结构、算法、处理过程、操作方法等要素,等被其他软件产品使用,在某些特定情况下可能会衍生出源代码。反编译可以作为开发软件时的参考,也可以直接用于软件产品中。
扩展资料:
如果编译过程中发现源程序有错误,编译程序应报告错误的性质和错误的发生的地点,并且将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,有些编译程序还能自动纠正错误,这些工作由错误处理程序完成。需要注意的是,一般上编译器只做语法检查和最简单的语义检查,而不检查程序的逻辑。
参考资料来源:百度百科-编译
参考资料来源:百度百科-反编译
能不能不这么书面化
追答没什么办法,要说得尽量准确就只能这么说。不过如果你对这方面的了解为零的话,就算说得口语化估计也不能理解。
追问我就是想问反编译需不需要学编程
追答那是肯定需要的啊。我给你举两个实例吧。
一,比如说,你拿到人家的一个程序,是一个EXE文件,经过用工具分析,知道人家是用delphi写的,于是你用一个反编译工具把这个程序从EXE反编译为delphi源代码,这样你就可以对源代码进行修改和完善,然后再重新编译成EXE。
二,再比如你拿到一个程序,这程序需要注册,不注册不能用或者只能试用几次,注册后就能一直使用,因此你想对它进行破解。但EXE是CPU能识别的代码,在我们看起来是所谓的“乱码”,于是要找反编译工具,把它反编译成我们能看得懂的汇编语言,这样就能看到程序是怎么判断是否注册的,然后再根据找到的判断位置对其进行修改,就能做出破解版了。
对于上面这两种反编译的情况,不懂编程的人,第一种情况反编译出来的源代码,肯定看不懂,更别说对其进行完善了,根本就没意义,至于第二种情况,不但要有很深的编程水平还要非常有经验的人才能做到,反编译出来的汇编源码动辄上万行甚至几十万行,要从这么多行里面找出判断点,不是说学过一点编程的人就能做到的,更别说没学过编程的了。
你想问反编译需不需要学编程,你应该说出来啊,你说出来了人家才知道你想问什么,你在发问题的时候那样说,只说怎么用,没人知道你想问需不需要学编程啊。