当前位置:网站首页 > 云服务教程 > 正文

.exe反编译(exe反编译成源码详细教程)



易语⾔exe反编译成源码_“⿊客”深度学习之“反编译技术原理

实现”

反编译技术对于⿊客学习过程中,是 ⼀个初级到⾼级进阶过程的必学技术,前期我们熟悉基础知识,熟悉利⽤脚本或者⼯具只是初级阶

段学习, ⼩ ⽩到⼊门的过程,但是如果想成为⼀名真正意义的⿊客,⼀定要学习反编译技术 !为什么这么说?

因为⿊客技术就是对计算机系统和⽹络的缺陷和漏洞的发现,以及针对这些缺陷实施攻击的技术。这⾥说的缺陷,包括软件缺陷、硬件

陷、⽹络协议缺陷、管理缺陷和⼈为的失误。⽽这⾥的软件缺陷分析,或者漏洞的发掘就需要⽤到反编译技术和逆向分析技术,⽽ ⽬前⿊

客 事⽹络协议缺陷,硬件缺陷的研究相对成熟。⽽软件则不同,种类繁多,依托的系统架构⼜各不相同,软件⼜是直接与业务应⽤息息相

关,所以软件的缺陷、漏洞、优化、激活成功教程等需求,都需要⽤到反编译技术。所以如果你想成为⼀名真正意义的⿊客,这个技术⼀定要学

习!

今天就以本篇⽂章的内容详细给⼤家阐述⼀下反编译技术原理与实现 !

⼀⼀、、什什么么是是反反编编译译??

反编译,⼜称为逆向编译技术,是指将可执⾏⽂件变成⾼级语⾔源程序的过程。反编译技术依赖于编译技术,是编译过程的逆过程。

那什么是编译技术?

编译技术就是把⾼级语⾔变成可执⾏⽂件的过程。它的主要过程如下所⽰ :

编译程序把⼀个源程序翻译成 ⽬标程序的⼯作过程分为五个阶段 :词法分析 ;语法分析 ;语义检查和中间代码⽣成 ;代码优化 ;⽬标代码⽣

成。

词法分析的任务是对由字符组成的单词进⾏处理, 左⾄右逐个字符地对源程序进⾏扫描,产⽣⼀个个的单词符号,把作为字符串的源程序

改造成为单词符号串的中间程序。

语法分析以单词符号作为输⼊,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成⼀个符合要

求的程序。

语义分析是审查源程序有⽆语义错误,为代码⽣成阶段收集类型信息。中间代码是源程序的⼀种内部表⽰,或称中间语⾔。

中间代码的作⽤是可使编译程序的结构在逻辑上更为简单明确,特别是可使 ⽬标代码的优化⽐较容易实现。代码优化是指对程序进⾏多种等

价变换,使得 变换后的程序出发,能⽣成更有效的⽬标代码。

⽬标代码⽣成是编译的最后⼀个阶段。⽬标代码⽣成器把语法分析后或优化后的中间代码变换成 ⽬标代码。

对于反编译技术,我们上⽂提到,它是编译的逆过程。那是不是把上述的六个步骤倒置,就变成了反编译的过程了呢?显然是不对的。对于

反编译过程,我们可以这么去理解 :我们的源程序现在是⼆进制可执⾏⽂件或者汇编指令,我们的⽬标程序是某种特定的⾼级语⾔。那么现

在这个过程该如何转化呢?这其中的中间代码的⽣成是否和编译过程中的⼀样呢?

基于上述原理及其疑问,我们很容易便采⽤这种思想 :将特定的机器代码,即我们的源程序,先翻译为低级的中间代码,然后再根据特定

的⾼级语⾔将中间代码翻译为⾼级程序。没错,反编译的主要思想确实就是那样 :反编译器也有前端和后端。前端是⼀个机器依赖的模块,

句法分析⼆进制程序、分析其指令的语义、并且⽣成该程序的低级中间表⽰法和每⼀⼦程序的控制流向图。通⽤的反编译机器是⼀个与语⾔

和机器⽆关的模块,分析低级中间代码,将它转换成对任何⾼级语⾔都可接受的⾼级表⽰法,并且分析控制流向图的结构、把它们转换成⽤

⾼级控制结构表现的图。最后,后端是⼀个⽬标语⾔依赖的模块,⽣成 ⽬标语⾔代码。反编译的过程中要使⽤⼀些⼯具 :把⼆进制程序装⼊

内存,对这⼀程序做句法分析或反汇编,以及反编译或者分析该程序来⽣成⾼级语⾔程序。这个过程借助编译器和库的签名来识别特定的编

译器和库⼦程序。只要在⼆进制程序中识别出编译器签名,就不去反编译这些编译器启动代码(start-up)和库⼦程序 :对于前者, 最后的

⽬标程序去掉启动代码的那些例程,反编译器 主(main)程序⼊⼝点开始分析 ;对于后者,那些⼦程序⽤其库函数名代替。

所以我们可以采⽤下图来表⽰反编译的过程 :

上图是我们对于反编译过程的初级构想(按照我们的理解),⽽实际的更为详细的过程则如下所⽰ :

我们再对上述各个过程做⼀下更为详细的介绍 :

1语法分析 :语法分析程序或语法分析器把源程序的字节组织成源机器语⾔的语法短语(或语句)。这些短语⽤⼀个语法分析树表⽰。语法分

析器的主要问题是确定哪些是数据和哪些是指令。

2语义分析 :语义分析阶段检查源程序⼀组指令的语义含义,收集类型信息并且向整个⼦程序传递这个类型。对于任何⼀个编译器⽣成的⼆

进制程序,只要程序能运⾏,其机器语⾔的语义

到此这篇.exe反编译(exe反编译成源码详细教程)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • st7735s驱动教程(st7567驱动)2025-11-23 23:09:05
  • linuxyum怎么安装(linux如何安装软件教程)2025-11-23 23:09:05
  • keil的破解教程(keil软件破解教程)2025-11-23 23:09:05
  • m301h强刷固件下载(m301h刷机教程)2025-11-23 23:09:05
  • ip1180打印机(ip1180打印机使用教程)2025-11-23 23:09:05
  • 程序员入门教程百度网盘(程序员电子书籍百度云)2025-11-23 23:09:05
  • 批处理命令(批处理命令教程)2025-11-23 23:09:05
  • 虚拟机安装详细教程linux(虚拟机linux系统详细安装步骤)2025-11-23 23:09:05
  • spss27(spss27使用教程)2025-11-23 23:09:05
  • ad19铺铜教程(ad19如何铺铜)2025-11-23 23:09:05
  • 全屏图片