如何进行反编程?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何进行反编程?相关的知识,希望对你有一定的参考价值。

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

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

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

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

反编译的处理过程,如果按功能区分,可以分为:前端、中端和后端三个部分。其实这种划分方式是将上述两种过程的阶段进行合并,也就是将几个反编译器阶段组合在一起。这样划分的好处是:通过设计不同的前端、中端和后端以实现针对多种源和目标的反编译器。
参考技术A 在百度上搜索下载反编译工具ILSpy,双击.exe文件打开解压工具
2.
选择file,点击“打开”,选择要反编译的文件,点击“打开”,就可以看到源码了!
3.
如果想把源码保存下来,自己在源码的基础上修改,点击"file"下的“Save code....
4.
如需用vs打开反编译后的源码,只需要打开这个.csproj文件即可 END
参考技术B 计算机软件反向工程(Reversepengineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,作为自己开发软件时的参考,或者直接用于自己的软件产品中。
不知道你到什么程度...目前java 可以去看下孙鑫的 不难懂。

以上是关于如何进行反编程?的主要内容,如果未能解决你的问题,请参考以下文章

将 EXE 反编译为 ASM

谁能帮我把一个hex文件反编译为c语言文件?

Android 将 apk 反编译为源码

Oolong工具:.class二进制文件反编译为.j汇编文件

如何将 .NET EXE 反编译为可读的 C# 源代码?

逆向工程:Python反编译工具的一点介绍(如何还原pyc文件)