原文地址

原本这篇文章可以更早一星期写出来与大家分享,由于某方面的原因耽搁到现在,心里竟有那么一点好像对不住大家的感觉。这当然与神器有关,因为我发现利用这四大神器我似乎觉得几乎所有的NET程序破解都不在话下了。而我竟然在发现这神器组合后推迟了一周才分享与大家!
       在开始分享之前,还是要说明一点,说是神器到目前为止也仅仅是对我自己而言,至于这四大神器会不会成为对各位而言的神器就不得而言了,因此当有哪位亲拿到这四大神器后仍然感到破解NET程序存在很大困难,请拍砖。
       先介绍一下我眼中的四大神器:De4Dot、Reflector、Reflexil以及DILE.其中
       De4Dot是一个开源的脱壳/反混淆工具,结识到神器工具我要感谢论坛里的朋友wan,他在我的处女新手贴” [原创]新手破解.NET程序”中提到了这个工具,而这款工具被我奉为了神器级工具。因为它的脱壳能力的确很强,使用它我成功地脱掉了Dotfuscator、MaxToCode处理过的程序,至于其它的加壳/反混淆工具比如说Xenocode、ThemIDA等我还没有进行过实验,之后我将计划研究各类加壳/反混淆工具的脱壳方法,我深信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的四大神器(转)的更多相关文章

  1. [.NET逆向] 破解NET的四大神器

     原本这篇文章可以更早一星期写出来与大家分享,由于某方面的原因耽搁到现在,心里竟有那么一点好像对不住大家的感觉.这当然与神器有关,因为我发现利用这四大神器我似乎觉得几乎所有的NET程序破解都不在话下了 ...

  2. 破解NET的四大神器

     原本这篇文章可以更早一星期写出来与大家分享,由于某方面的原因耽搁到现在,心里竟有那么一点好像对不住大家的感觉.这当然与神器有关,因为我发现利用这四大神器我似乎觉得几乎所有的NET程序破解都不在话下了 ...

  3. 破解NET的四大神器[转]

     原本这篇文章可以更早一星期写出来与大家分享,由于某方面的原因耽搁到现在,心里竟有那么一点好像对不住大家的感觉.这当然与神器有关,因为我发现利用这四大神器我似乎觉得几乎所有的NET程序破解都不在话下了 ...

  4. 视频下载四大神器—如何下载优酷/爱奇艺/腾讯/B站超清无水印视频

      视频下载四大神器—如何下载优酷/爱奇艺/腾讯/B站超清无水印视频  2018-07-11 |  标签»下载, 下载工具, 视频 又是视频下载,老生常谈的话题.阿刚同学已在乐软博客多次与大家分享推荐 ...

  5. IT生涯, 我的常用软件清单

    IT生涯, 我的常用软件清单 SkySeraph Jan. 26th 2017 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点:www.skysera ...

  6. 跨平台的神器RAD XE5 来啦!!!! XE5破解

    什么叫真正的跨平台,DELPHI经过这么长时间的洗礼,如今走上了夸平台的开发之路.希望RAD加油! 先去下一个XE5 再去下一个破解神器 一个破解BDS.exe的神器 开始吧.为了成功破解,请先将电脑 ...

  7. SWF READER 破解日志。

    网上传闻swf reader是破解最厉害的神器,可以内存抓取+doSWF反编译.所以去官网下了一个: SWF_Reader_2.3 不出所料,demo版本没有反编译的功能.网上搜到一个哥们尝试了下: ...

  8. SpringBoot四大神器之Actuator

    介绍 Spring Boot有四大神器,分别是auto-configuration.starters.cli.actuator,本文主要讲actuator.actuator是spring boot提供 ...

  9. Springboot监控之一:SpringBoot四大神器之Actuator

    介绍 Spring Boot有四大神器,分别是auto-configuration.starters.cli.actuator,本文主要讲actuator.actuator是spring boot提供 ...

随机推荐

  1. Python 插件安装

    0.下载Python包文件后,解压缩: 1.cd 到 插件解压缩目录,里面有setup.py的文件: 2.定位到当前目录: 3.执行:python setup.py install; 4.结束安装. ...

  2. python2.0_s12_day19_前端模版使用

    Django中引用bootstrap实现在前端可以创建客户信息,可以修改客户信息我们需要设计一个前端用户交互系统.我们在设计之前,讨论一些需求:前端实现:1. 不同角色的用户,看到的东西是不一样的 销 ...

  3. osgEarth2.8加载矢量数据描边效果

    通过修改osgearth自带的agglite插件,实现矢量描边效果,可以自定义描边的颜色和宽度(单位像素) 测试文件osgearth_features.cpp #include <osg/Not ...

  4. UITableView划动删除的实现

    对于app应用来说,使用列表的形式展现数据非UITableView莫属.在熟练掌握了用UITableView展示数据以后,是不是也遇到了需要删除数据的需求?是不是觉得在一行数据上划动一下,然后出现一个 ...

  5. RegisterHotKey注册快捷键

    RegisterHotKey的具体使用方使用方法如下: BOOL   RegisterHotKey( HWND   hWnd,         //响应该热键的窗口句柄 Int   id,       ...

  6. Android 使用线性布局LinearLayout和Button实现一个点红块游戏

    这个游戏的功能类似打地鼠. 项目地址:https://github.com/moonlightpoet/RedBlock 程序下载试玩地址:https://github.com/moonlightpo ...

  7. java基础---->Reference的使用(一)

    这里记录一些java中关于引用的知识. java中的引用 一.java中关于引用的测试 public class ReferenceTest { public static void main(Str ...

  8. centos 7 搭建ntp 服务器

    第一步 安装ntp yum install ntp 第二步,查找最近的时间同步服务器 http://www.pool.ntp.org/zone/asia 第三部编辑 /etc/ntp.conf ser ...

  9. vue-学习笔记(更新中...)

    vue学习笔记 2017-08-23  11:10:28 Vue实例: var vm = new Vue({ // 选项 }) 实例化Vue.Vue实例,构造函数Vue.创建一个Vue的根实例,Vue ...

  10. PHP中new static()与new self()的区别异同

    self - 就是这个类,是代码段里面的这个类. static - PHP 5.3加进来的只得是当前这个类,有点像$this的意思,从堆内存中提取出来,访问的是当前实例化的那个类,那么 static ...