今天要讲的内容加入了“壳”,在这里我推荐新手尽量使用脱壳机进行脱壳。
说到了使用脱壳机,很多人又要吐槽了。
在你们吐槽之前,我要提前解释一下为什么推荐使用脱壳机。
既然是新手,既然是菜鸟,就要利用工具的便利,手动脱壳确实需要学习,但不是现在,现在最重要的是“兴趣”!
有些人要说了“新手就要先学手动脱壳!”
那我想说“难道脱壳机是给高手用的?高手需要脱壳机吗?”
先知道了壳是怎么回事,知道有壳与无壳的区别后,慢慢的深入手动脱壳。
今天用到的工具是我写的,内容很简单,就是一个注册工具,用户名与注册码不匹配就会注册失败,如果匹配就会成功。
我们可以利用第一课与第二课的知识进行爆破与获取注册码。但这个程序有壳……
我们先介绍一下有壳的东西用dnSpy载入后是什么样的,
大家请看下图,入口点、命名空间和代码逻辑出现各种随机命名,大大降低了程序的可读性……这就是有壳的程序。
所以,我们要养成一个良好的习惯,就是在进行逆向之前,一定要先查壳。
我们利用DIE进行查壳,看看他是什么壳,将要查壳的软件拖入DIE即可。(正式逆向的第一步:查壳)
我们可以看到下图显示这个程序是 .NET Reactor(4.8-4.9)的壳。
针对这种壳我们推荐使用de4dot进行脱壳
加壳是为了增加逆向的难度,在不影响软件运行的情况下,混淆代码逻辑,降低了代码可读性
而de4dot则是一个开源的.Net反混淆脱壳工具,支持一键脱去Xenocode、.NET Reactor、MaxtoCode、Eazfuscator.NET、Agile.NET、Phoenix Protector、Manco Obfuscator 、CodeWall、NetZ .NET Packer 、Rpx .NET Packer、Mpress .NET Packer、ExePack .NET Packer、Sixxpack .NET Packer、Rummage Obfuscator、Obfusasm Obfuscator、Confuser 1.7、Agile.NET、Babel.NET、CodeFort、CodeVeil、CodeWall、CryptoObfuscator、DeepSea Obfuscator、Dotfuscator、 Goliath.NET、ILProtector、MPRESS、Rummage、SmartAssembly、Skater.NET、Spices.Net 等常见的壳。
按住鼠标左键,将我们要脱壳的程序直接拖到de4dot.exe上
如下图,脱壳后的软件和要脱壳的软件存放在同一个目录,de4dot对文件名增加上了-cleaned用来与原程序区分:
将脱壳后的软件用dnSpy打开,可以看到入口点等已经被解密出来了。
其他的似乎不用我多说了,这算个作业吧!
作业内容有两个:
1,爆破它,用户名与注册码不匹配也能注册成功!
2,获取注册码!
说明:基础逆向教程,不涉及強壳、非托管壳等。本案例中程序我仅使用.NET Reactor对Anti ILDASM和Obfuscation做了基础保护。
课件下载:https://articles.zsxq.com/id_5puxgjz9hmeb.html 作者:muruoxi https://www.bilibili.com/read/cv4161866/ 出处:bilibili
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2022-04-02 jsoncpp使用
2022-04-02 Jsoncpp 使用方法大全
2022-04-02 JsonCpp使用注意
2022-04-02 vscode 添加全局宏定义
2021-04-02 C++ 协程的近况、设计与实现中的细节和决策
2015-04-02 主流流媒体服务器
2015-04-02 Live555类结构