首页 » PHP教程 » 编译php反编译技巧_Net反编译技能详解及4个反编译对象介绍

编译php反编译技巧_Net反编译技能详解及4个反编译对象介绍

访客 2024-12-14 0

扫一扫用手机浏览

文章目录 [+]

什么是反编译?

高等措辞源程序经由编译变成可实行文件,反编译便是逆过程。
即通过技能手段将可实行文件还原成源代码。
此文讲解如何将.net(c#、F#、vb.net)编写的可实行文件还原成c#代码。

编译php反编译技巧_Net反编译技能详解及4个反编译对象介绍

理解.net(c#)的编译过程

编译php反编译技巧_Net反编译技能详解及4个反编译对象介绍
(图片来自网络侵删)

C#源代码经由编译器的编译之后,变成MSIL微软中间措辞。
实在也便是一个可实行文件,也可以叫做程序集(.exe文件)。

把稳:不是所有的exe文件都叫程序集,这个文件是由微软中间措辞组成的才叫程序集。

当程序被实行时,微软中间措辞(程序集)将被CLR翻译成平台对应的CPU指令,然后交给CPU实行。

把稳:CPU的指令并不是相同的,不同平台的CPU指令可能有比较大的差异。
如:Intel和AMD在开机或者关机的时候Intel可能为111 而AMD可能为000。
不同型号的CPU指令也可能有差异。
如:四核和双核。

C#代码的编译过程如下图所示:

c#反编译过程:

反编译过程即将.net 程序集转换成IL中间措辞,然后再将IL转为c#代码。
还原率靠近90%。

反编译工具先容:

说到.net 反编译工具,很多人第一反应都是Reflector这款神器。
但是我呢认为这是个垃圾软件,为什么呢,由于他收费啊,而且没有什么特殊出众的功能,以是本文不加以先容。
本文紧张先容ILSpy、dnSpy、JetBrains和Telerik JustDecompile以及可直接修处死式集的reflexil插件和脱壳反稠浊的de4Dot插件。

文本的示例程序:

特意用c#写了一个checkMe程序,用来展示解释以下各个工具的功能。
程序很大略,一个上岸框,输入对的密码即可显示主窗体,显示一个“今日头条很伟大”的字样.

checkMe

1、ILSpy:

ILSpy是一个开源免费的.Net反编译软件,基于MIT容许证发布。
作者在事情中利用最频繁的便是它。
,ILSpy 是为了完备替代收费的Reflector而生,它是由 iCSharpCode 团队出品,这个团队开拓了著名的 SharpDevelop 。
ILSpy的利用和上面的Reflector完备类似,可以直接把dll、exe拖放到左侧,然后在右侧查看反编译往后的代码。

ilSpy

其余ILSpy支持插件,比如利用 Debugger插件可以进行调试,利用reflexil插件可以直接修处死式集。
支持类、函数、变量、字符串等多种搜索。

以上的示例程序,利用ILSpy查找上岸密码如下:

ilSpy

2、dnSpy

dnSpy是近几年的新秀,功能远比ILSpy强大,甩Reflector几条街。
被汉化、破解、逆向方面的人才奉为神器。
软件自带调试和修处死式集的功能

dnSpy

dnsyp功能菜单

dnspy可直接调试修处死式集。
可添加修正类、方法、变量等。
可操作合并程序集、禁用内存映射。
可在16进制编辑器中直接定位方法体、字段。
也可以16进制编辑器中直接修正方法和字段。
更多强大的功能亲们自己下载dnspy摸索体验一下

下面我们利用dnspy来调试一下我们刚刚的checkMe程序。
选择checkme,点击转到入口点。

打一个断点:

然后点击启动,F10、F11可单步跟入

再测试下将主窗体显示的“今日头条很伟大”改成“dnspy很强大”。
首先定位到干系代码,并点击编辑方法:

点击编译,然后保存模块

看下效果

3、JetBrains dotPeek

JetBrains是捷克的一家软件开拓公司,出品了大量著名的开拓工具,包括:IntelliJ IDEA、PHPStorm、ReSharper、TeamCity、YouTrack等等,每一款产品都如雷贯耳。
dotPeek 是 JetBrains 开拓的一款.Net反编译工具,是.Net工具套件中的一个比较于前面几款工具来说,dotPeek算比较小众的一款,它天生的代码质量很高,它还会考试测验到源代码做事器上抓取代码。
DotPeek的导航功能和快捷键非常便捷。
它还能精确查找符号的利用,同时支持插件。
DotPeek不能与Visual Studio集成。
个人觉得它最大的特色便是Visual Studio风格,这对付那些长期在Visual Studio下进行开拓的人来说该当更亲切一点。

JetBrains dotPeek

4、Telerik JustDecompile

Telerik JustDecompile是一个免费的.NET反编译器,但是有商业化支持,和抢到的抓包软件Fiddler是一家公司的产品。
它天生的代码质量也很高。
它可以为反编译程序集得到的代码创建一个项目。
JustDecompile供应了健壮的查找功能,能够支持全文查找和符号利用查找。
它和ILSpy一样还有一个插件系统,目前在Telerik的网站上有两个可用的扩展。
JustDecompile不能与Visual Studio集成。

Telerik JustDecompile

5、de4Dot和reflexil插件

de4dot是一款.net脱壳反稠浊的软件,可独立运行,也可作为插件集成到ILSpy和JustDecompile中。
支持以下稠浊器种类:

Agile.NET (aka CliSecure)Babel.NETCodeFortCodeVeilCodeWallCryptoObfuscatorDeepSea ObfuscatorDotfuscator.NET ReactorEazfuscator.NETGoliath.NETILProtectorMaxtoCodeMPRESSRummageSkater.NETSmartAssemblySpices.NetXenocode

由于我的checkMe没有进行稠浊,这里无法直不雅观演示这个功能,只上一个图吧

JustDecompile的de4dot插件

reflexil是一款修处死式集的插件,支持修正IL代码和编辑函数。
它同样可以集成到ILSpy和JustDecompile中。

下图演示,利用JustDecompile的reflexil插件,讲我们的checkme程序主窗体的笔墨“ dstrdnSpy很强大”修正为“请关注技能囧途自媒体”

定位到干系代码,然后点击插件->reflexil

reflexil插件

找到笔墨,点击右键Edit

保存程序集

下面看下效果

希望大家能多多关注,有不懂的地方可以随时私信问我,都会耐心解答。
找不到软件下载链接的也可以私信和我要,文章里不能写链接。

标签:

相关文章

大数据时代,伤痛与反思

随着科技的飞速发展,大数据已经成为我们生活不可或缺的一部分。在享受大数据带来的便捷的我们也开始感受到了其带来的伤痛。本文将从大数据...

PHP教程 2024-12-16 阅读0 评论0

大数据智观,洞察未来,引领时代变革

随着信息技术的飞速发展,大数据已成为现代社会不可或缺的一部分。大数据智观作为一种新兴的思维方式,正逐渐改变着我们的生活方式、工作方...

PHP教程 2024-12-16 阅读0 评论0