原本这篇文章可以更早一星期写出来与大家分享,由于某方面的原因耽搁到现在,心里竟有那么一点好像对不住大家的感觉。这当然与神器有关,因为我发现利用这四大神器我似乎觉得几乎所有的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文件,看是否有混淆或者加壳。
<ignore_js_op>

青鸟QQ群发大师.exe:
<ignore_js_op>

青鸟qq群发大师陌生人群发.exe:
<ignore_js_op>

SoftPlatorm.exe:
<ignore_js_op>

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

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

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

啊哈哈,看,是不是很爽!所有的代码都被反编译为C#的代码了,而且可读性也很强,接下来就是去找这款软件相关的用户验证的地方了。
很容易找到,其验证的类为SoftLogin,但是在查看他的代码的时候出现了点小问题,无法查看到,这是因为SoftPlatform.exe所引用的dll中有许多个也是被加了壳的:(下图红色感叹号的)
<ignore_js_op>

这个也比较容易解决,De4Dot嘛,使用跟脱SoftPlatform同样的方法,可以非常顺利地脱掉它们的壳,这时再查看SoftLogin类会看到如下关键代码:(在SoftLogin.method_2方法中)
<ignore_js_op>

根据代码的含义很容易得知WebQQ.Key.KUserGrade表示用户的等级,WebQQ.Key.KExpireTime为过期时间,由于该软件的验证为网络验证所以整个验证过程也还有其他的处理,因为这里只是举个例子来说明一下工具的强大,因此我们只讲述一下把用户等级变为最高级别,过期时间延长的方法。
另外根据上面的那段代码可以看出在网络验证返回来的数据很大一部分都作为了GClass1的函数参数(实际上这些函数大部分都是些类似get/set方法),所以我们可以估计GClass1跟验证会有相当大的关系
继续阅读GClass1的代码可以找到如下两个方法:
<ignore_js_op>

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

哈哈,过期时间总是当前时间+10000天也就是说永不过期,用户等级为2是至尊vip版,当然这个值代表至尊vip还是要去分析其他的代码才能得知。
案例分析就到此结束吧,要最终破解这个程序仅靠改这两个地方远远不够的,还有许多其他地方也要修正,限于篇幅这里就不再赘述了。
案例是讲完了,但是DILE貌似并没有使用到,是的整个破解过程我没有使用它,经过脱壳之后使用Refletor都能看到源代码级别的东西了,而且我擅长C#编程,静态分析代码对我来讲不在话下,因此DILE没有使用到。那为什么我还要将它列入神器之列呢,这是因为不管是自己写程序还是学习别人的程序在某些情况下调试工具仍然必须要用到,因此选一款调试工具对我来讲也是十分必要的。尽管DILE破解中没有用到,但后来破解完成之后我还是试验了一下它是否可以被我使用起来,至于怎么使用这里不再论述,只作个截图展示一下,以后破解中需要用到调试技巧试再作讲解。
以上都是个人破解中的一些经验之谈,分享与大家,希望能对大家有所帮助,如果有什么不当之处望大家尽情拍砖。
- [.NET逆向] 破解NET的四大神器
原本这篇文章可以更早一星期写出来与大家分享,由于某方面的原因耽搁到现在,心里竟有那么一点好像对不住大家的感觉.这当然与神器有关,因为我发现利用这四大神器我似乎觉得几乎所有的NET程序破解都不在话下了 ...
- 破解NET的四大神器
原本这篇文章可以更早一星期写出来与大家分享,由于某方面的原因耽搁到现在,心里竟有那么一点好像对不住大家的感觉.这当然与神器有关,因为我发现利用这四大神器我似乎觉得几乎所有的NET程序破解都不在话下了 ...
- 破解NET的四大神器(转)
原文地址 原本这篇文章可以更早一星期写出来与大家分享,由于某方面的原因耽搁到现在,心里竟有那么一点好像对不住大家的感觉.这当然与神器有关,因为我发现利用这四大神器我似乎觉得几乎所有的NET程序破解都不 ...
- 视频下载四大神器—如何下载优酷/爱奇艺/腾讯/B站超清无水印视频
视频下载四大神器—如何下载优酷/爱奇艺/腾讯/B站超清无水印视频 2018-07-11 | 标签»下载, 下载工具, 视频 又是视频下载,老生常谈的话题.阿刚同学已在乐软博客多次与大家分享推荐 ...
- IT生涯, 我的常用软件清单
IT生涯, 我的常用软件清单 SkySeraph Jan. 26th 2017 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点:www.skysera ...
- 跨平台的神器RAD XE5 来啦!!!! XE5破解
什么叫真正的跨平台,DELPHI经过这么长时间的洗礼,如今走上了夸平台的开发之路.希望RAD加油! 先去下一个XE5 再去下一个破解神器 一个破解BDS.exe的神器 开始吧.为了成功破解,请先将电脑 ...
- SWF READER 破解日志。
网上传闻swf reader是破解最厉害的神器,可以内存抓取+doSWF反编译.所以去官网下了一个: SWF_Reader_2.3 不出所料,demo版本没有反编译的功能.网上搜到一个哥们尝试了下: ...
- SpringBoot四大神器之Actuator
介绍 Spring Boot有四大神器,分别是auto-configuration.starters.cli.actuator,本文主要讲actuator.actuator是spring boot提供 ...
- Springboot监控之一:SpringBoot四大神器之Actuator
介绍 Spring Boot有四大神器,分别是auto-configuration.starters.cli.actuator,本文主要讲actuator.actuator是spring boot提供 ...
随机推荐
- java基础7 封装
面向对象的三大特征: 1.封装 (将一类属性封装起来,并提供set()和get()方法给其他对象设置和获取值.或者是将一个运算方法封装起来,其他对象需要此种做运算时,给此对象调用) 2.继承 ...
- setitimer()
setitimer()为Linux的API,并非C语言的Standard Library,setitimer()有两个功能,一是指定一段时间后,才执行某个function,二是每间格一段时间就执行某个 ...
- Linux命令之ip命令
linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者.使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务.ifconfig是net-tools中已被废弃使用的一个命 ...
- ECMA-Script5
严格模式 所谓严格模式,从字面上就很好理解,即更严格的模式 在这种模式下执行,浏览器会对JS的要求更苛刻. 举例: function m1(){ max = 100; } m1(); al ...
- Oracle 入门学习笔记
linux命令 查看linux系统版本号 uname -r 或 uname -a 查看linux发行版本号 cat /etc/redhat-release 查看linux具体版本号 cat /proc ...
- Gitlab基本管理(二)
一. Gitlab分支 1. 切换到项目位置. 2. 创建一个项目的一新分支. mike@win10-001 MINGW64 ~/cookbook/cookbook (master) $ git br ...
- CF986B Petr and Permutations [逆序对]
题目传送门 Petr and Permutations 格式难调,题面就不放了. 分析: 胡乱分析+猜测SP性质一波.然后被学长告知:“1~n的排列交换次数与逆序对的奇偶性相同.”然后就愉快地A了. ...
- javascript 中关于function中的prototype
在javascrpit中每个函数中都有一个prototype属性,在其创建的时候,无论是用var method = function(){}或者 var method = new Function() ...
- angular4 监听input框输入值的改变
angular中一般控件会有change事件,但是如果某些控件没有这个事件 我们如何监听值的变化呢? 对于双向绑定的值,当值改变后监听事件有如下写法: 1. 如果是ngModel可以用ngModelC ...
- spring配置多数据源——mybatis
这篇文章是配置mybatis多数据源文章,如果是hibernate的话也是没什么影响,配置都是差不多的. 在这家公司上班差不多一星期了,不小心点开配置文件一看这项目配置了两个数据源,蒙了. 之后上网查 ...