如何进行反编程?

如何进行反编程?,第1张

我们按照三种不同的分类,从多个角度阐述反编译的基本过程

如果按照反编译技术实施的顺序划分,则可以分为7个阶段,它们是:句法分析、语义分析、中间代码生成、控制流图生成、控制流分析、代码生成。

如果按照实践中的具体 *** 作划分,一般也可以分为7个不同的步骤,分别是:文件装载,指令解码,语义映射,相关图构造,过程分析,类型分析和结果输出等。

以逆向分析为目的,反编译的各个阶段并不是一个严格的一遍顺序,而是存在着一些并行的模块,并且也需要通过循环执行分析过程来针对某些特殊问题(例如非N分支代码产生的间接跳转指令)进行分析和恢复。

反编译的处理过程,如果按功能区分,可以分为:前端、中端和后端三个部分。其实这种划分方式是将上述两种过程的阶段进行合并,也就是将几个反编译器阶段组合在一起。这样划分的好处是:通过设计不同的前端、中端和后端以实现针对多种源和目标的反编译器。

这个是目前没有办法实现的。

反编译一般指反向编译指计算机软件反向工程(Reverse engineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中。反编译是一项艰巨而复杂的工作。

如果e语言反编译需要用到的技术过于繁杂,目前开源的资料中并没有可以准确反编译的软件。

自行尝试需要进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12131433.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存