破解


 原本这篇文章可以更早一星期写出来与大家分享,由于某方面的原因耽搁到现在,心里竟有那么一点好像对不住大家的感觉。这当然与神器有关,因为我发现利用这四大神器我似乎觉得几乎所有的NET程序 破解都不在话下了。而我竟然在发现这神器组合后推迟了一周才分享与大家!
       在开始分享之前,还是要说明一点,说是神器到目前为止也仅仅是对我自己而言,至于这四大神器会不会成为对各位而言的神器就不得而言了,因此当有哪位亲拿到这四大神器后仍然感到破解NET程序存在很大困难,请拍砖。
       先介绍一下我眼中的四大神器:De4Dot、Reflector、Reflexil以及DILE.其中
       De4Dot是一个开源的 脱壳/反混淆工具,结识到神器工具我要感谢论坛里的朋友wan,他在我的处女新手贴”  [原创]新手破解.NET程序”中提到了这个工具,而这款工具被我奉为了神器级工具。因为它的脱壳能力的确很强,使用它我成功地脱掉了Dotfuscator、MaxToCode处理过的程序,至于其它的 加壳/反混淆工具比如说Xenocode、Them IDA等我还没有进行过实验,之后我将计划研究各类加壳/反混淆工具的脱壳方法,我深信De4Dot能够给我带来巨大帮助。(由于De4Dot是开源的,我相信即便De4Dot暂时处理不了的壳通过扩展其功能必将能解决)
        Reflector这个功能强大的NET反编译工具相信大家都是很熟悉的,这个工具是我在没有开始学破解之前(大概6个月之前我才开始涉足破解 逆向领域)唯一熟知的破解方面的工具。而现在的Reflector的功能更加强大了,不仅仅其自身的功能在增强,而且其强大的插件系统也扩充了其功能,下面提到的Reflexil便是它其中的一个插件。
Reflexil是Reflector中的一个插件,也是开源的,它可以从IL和C#高级语言两个层次对目标程序的代码进行修改/注入。认识到这个工具无疑使我十分震惊,因为在我开始学NET破解的时候经常担心不能像在OD里那样直接修改汇编代码一样来通过修改IL或C#代码来改变NET程序的流程逻辑,如果是这样子那么我学习NET破解的方法将受到极大地限制。而Reflexil的存在完全消除了我这方面的担忧,即便在某些地方不能从C#对目标程序进行修改,那么我总可以在IL代码级别上来修改!
DILE则是一款 调试工具,全称Dotnet IL Editor,尽管现在它还没有完全开源但相信在不久的将来也将会在sf上开源。其实一开始我并不想把它放入我的神器之列。有两方面的原因:第一是我比较擅长也倾向于静态分析,能够静态分析完成的我几乎不会去用动态调试法,看过我的处女贴的朋友应该可以看出来我破解的第一款 软件中根本就没有用到调试工具;第二尽管静态分析是我的强项,但这并不意味着我不需要一款调试工具,如果大家百度或者Google一下会发现有很多文章在讲Reflexil与Deblector并称他们为神器,而Deblector就是Reflector下的一个调试工具,所以一开始我很希望将Deblector作为我调试方面的神器工具,但是我最终没能把这个工具使用起来,网上的文章都在讲Deblector启动开始调试之后会断在程序的入口处,但我下载了它的几个版本,都没有达到这个效果,它并没有在入口处断下来,而是嗖嗖地直接弹出了程序的主界面。
       光说不练,很难让人相信这可以作为神器工具的强大之处,下面就以我实际破解案例来展示一下这四大神器的威力。
       要破解的这款软件的是青鸟QQ群发大师,其软件组成如下截图:

首先,在Reflector里查看一下其中的exe文件,看是否有混淆或者加壳。
2.1
青鸟QQ群发大师.exe:
2.2

青鸟qq群发大师陌生人群发.exe:
2.3

SoftPlatorm.exe:
2.4

从上面的反编译结果可以得知前两个exe是没有加壳的,可以很清晰地看到他们的C#代码,并且可以得知他们只是两种不同功能的启动程序,用来启动SoftPlatform程序,因此这次破解的程序入口就可以直接放在了SoftPlatform里面了。
但SoftPlatform是加过壳的,因此需要脱壳,接下来De4Dot就上场了。
De4Dot是命令行工具,所以需要各位熟悉如何使用命令行。在命令行打开之后,对于一般的程序直接输入以下命令:  De4Dot  目标程序全路径 便可以脱壳完成,对SoftPlatform.exe我们也这样试一下:
2.5.JPG

嗯?好像没有奏效,尽管生成了一个SoftPlatform-cleaned.exe ,但是如果用Reflector 查看的话,这个程序仍然是加壳。再仔细查看提示,便会发现原来他加了2 层壳,根据他的提示可以将其一层一层的脱掉,如下所示:( 顺序不能错只能先-p mc, -p df)
2.6.JPG

将最终的文件命名回SoftPlatform.exe, 再用Reflector 反汇编一下看:
2.7.JPG


啊哈哈,看,是不是很爽!所有的代码都被反编译为C#的代码了,而且可读性也很强,接下来就是去找这款软件相关的用户验证的地方了。
很容易找到,其验证的类为SoftLogin,但是在查看他的代码的时候出现了点小问题,无法查看到,这是因为SoftPlatform.exe所引用的dll中有许多个也是被加了壳的:(下图红色感叹号的)
2.8.JPG
这个也比较容易解决,De4Dot 嘛,使用跟脱SoftPlatform 同样的方法,可以非常顺利地脱掉它们的壳,这时再查看SoftLogin 类会看到如下关键代码:( SoftLogin.method_2 方法中)
2.9.JPG
根据代码的含义很容易得知WebQQ.Key.KUserGrade表示用户的等级,WebQQ.Key.KExpireTime为过期时间,由于该软件的验证为网络验证所以整个验证过程也还有其他的处理,因为这里只是举个例子来说明一下工具的强大,因此我们只讲述一下把用户等级变为最高级别,过期时间延长的方法。
        另外根据上面的那段代码可以看出在网络验证返回来的数据很大一部分都作为了GClass1 的函数参数( 实际上这些函数大部分都是些类似get/set 方法) ,所以我们可以估计GClass1 跟验证会有相当大的关系
继续阅读GClass1的代码可以找到如下两个方法:
2.10.JPG

呵呵,再一次的啊哈哈,极度明显地可以看出smethod_14 就是返回过期时间,而smethod_35 则返回的是用户级别!
        知道怎么做了吗,我问我知道怎么做了吗,哈哈,轮到Reflexil 上场了,使用它将这两个函数的返回值改掉!改之后的效果如下:( 如何使用Reflexil 修改IL 代码及C# 代码请大家百度搜索Reflexil 会出现一篇介绍神器Reflexil Deblector 的文章里面有讲,这里不再赘述)
2.11.JPG

哈哈,过期时间总是当前时间+10000 天也就是说永不过期,用户等级为2 是至尊vip 版,当然这个值代表至尊vip 还是要去分析其他的代码才能得知。


案例分析就到此结束吧,要最终破解这个程序仅靠改这两个地方远远不够的,还有许多其他地方也要修正,限于篇幅这里就不再赘述了。


案例是讲完了,但是DILE貌似并没有使用到,是的整个破解过程我没有使用它,经过脱壳之后使用Refletor都能看到源代码级别的东西了,而且我擅长C#编程,静态分析代码对我来讲不在话下,因此DILE没有使用到。那为什么我还要将它列入神器之列呢,这是因为不管是自己写程序还是学习别人的程序在某些情况下调试工具仍然必须要用到,因此选一款调试工具对我来讲也是十分必要的。尽管DILE破解中没有用到,但后来破解完成之后我还是试验了一下它是否可以被我使用起来,至于怎么使用这里不再论述,只作个截图展示一下,以后破解中需要用到调试技巧试再作讲解。

以上都是个人破解中的一些经验之谈,分享与大家,希望能对大家有所帮助,如果有什么不当之处望大家尽情拍砖。

附:
1.      我使用的四大神器工具下载地址
      http://dl.vmall.com/c0dyoafy3g
2.      青鸟QQ群发软件下载地址

           http://dl.dbank.com/c0r9ar155j
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Net 脱壳 反混淆神器De4dot-3.1.41592最新版,De4Dot是一个开源的脱壳/反混淆工具,这款工具可以奉为神器级工具。因为它的脱壳能力的确很强,使用它可以成功地脱掉了Dotfuscator、MaxToCode处理过的程序,至于其它的加壳/反混淆工具比如说Xenocode、ThemIDA等我还没有进行过实验,之后我将计划研究各类加壳/反混淆工具的脱壳方法,我深信De4Dot能够给我带来巨大帮助。(由于De4Dot是开源的,我相信即便De4Dot暂时处理不了的壳通过扩展其功能必将能解决) 支持以下几种反混淆: CliSecure Crypto Obfuscator Dotfuscator .NET Reactor 4.x Eazfuscator.NET SmartAssembly 4.x-6.x Xenocode 用法说明: 开始-运行-cmd 输入以下命令: de4dot工具解压路径\de4dot --dont-rename -f 你要反混淆的程序集dll 例如: C:\Users\Administrator\Desktop\de4dot\de4dot --dont-rename -f C:\Users\Administrator\Desktop\zkcms.dll 特点: 伪随机列表会做的事情,它取决于什么混淆混淆组装: 内联方法。有些混淆器移动到另一个静态方法的方法,并调用它的一小部分。 解密字符串的静态或动态 解密等常量。有些混淆器也可以加密其他常数,如整数,双打等 解密方法静态或动态 删除代理方法。许多混淆器取代大多数/所有调用指令调用委托。此委托依次调用真正的方法。 重命名符号。尽管大多数符号不能恢复,将它们重命名为人类可读的字符串。有时,一些原来的名称可以被恢复,虽然。 Devirtualize虚拟化代码 解密资源。许多混淆器有一个选项来加密.NET资源。 解密嵌入的文件。许多混淆器有一个嵌入,可能加密/压缩其他组件的选项。 删除篡改检测代码 删除反调试代码 控制流反混淆。许多混淆器修改IL代码,所以它看起来像意大利面条式的代码很难理解代码。 还原类字段。有些混淆器可以移动领域从一个类来创建类其他一些混淆。 PE EXE转换.NET exe文件。有些模糊处理一个Win32 PE等包装.NET程序集里面的.NET反编译器无法读取该文件。 移除大多数/所有的垃圾类添加混淆。 修复了一些的peverify错误。许多混淆器是马车和创建无法验证的代码错误。 还原类型的方法的参数和字段

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值