吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 66147|回复: 150
收起左侧

[.NET逆向] 新手破解.NET程序

    [复制链接]
Pnmker 发表于 2012-11-17 01:49
本帖最后由 Pnmker 于 2012-11-18 01:20 编辑

由于第一次发破文,写得不好请大家多见谅,另外由于其他方面的原因破文涉及到的程序也暂时不能上传与大家分享,请见谅。

废话不多说,直接开始讲破解过程,要破解的是一个医疗信息管理系统。

首先,安装程序,在安装程序发现提示要安装.NET 1.0, 所以推断程序的编写语言为C#,安装后的程序文件如下所示:

1.1

1.1
由于推断为C#编写,所以安装完成后立马用反编译工具Reflector查看,如下所示:

1.2

1.2
可以看到命名空间及类名等都被混淆过了,看来是不能直接反编译,但是从上图中我们也可以看到其混淆工具为XenoCode.(尽管反编译出来可能没有多大作用,但出于对其代码的好奇一开始我还是把它给反编译出来了,得到一大堆文件名乱七八糟,类中的函数体大都为空实现的东西,不过后来还是证明这些还是有些用处滴)

于是,上网查找XenoCode的反混淆方法,尽管没有找到具体的方法,但也有不少收获,其中最大的收获就是运用C#的反射机制来提取程序函数的MSIL代码。
找到了提取MSIL代码的方法之后,接下来事必要找与注册试用之类有关的提示信息去定位检测试用版的函数过程,但是程序已经被混淆了,查找字符串也不是那么容易,这时还是互联网帮了大忙啊,找了大半天找到了一个可以查看C#混淆程序中字符串的工具DoNetStringSearch,程序运行后如下图所示:

1.3

1.3
从这里我们找到了有关注册提示的字符串并且也可以知道是哪个类的哪个函数在做这些事情。
好了,竟然已经找到在哪里进行的注册信息检测的了,下面接下来的事情就是提取这个函数的MSIL代码了,互联网又一次帮了忙,找到了一个类库来帮助我做这件事情,这个类库名称叫SDILReader,由于下载地址没有保存,同志们可以到网上去找一下。

编程是偶的强项啊,接下来二话不说写了个破烂程序将MSIL给提取出来了啊,下面是那段破烂的程序代码(偶以提取MSIL代码的字符串为目的,没有关注代码的可读性之类的)

1.4

1.4
好了,OK,最后那个字符串msil中的内容就是我们要的程序代码了,这里贴一部分代码给大家看一下(实际的代码很长):

1.5

1.5

哈哈,看起来很吓人吧,实际上并不是很困难,只要你懂得MSIL代码这个就被你给破解了啊,尽管XenoCode对程序的流程逻辑进行了乱序混淆,但是并没有吓倒我,因为之前已经在网上了解到XenoCode的流程混淆只是使用了goto,只要按着goto的走向一直分析下去肯定是可以解决了。

接下来就是逐行翻译MSIL代码为伪C#代码了,从而将混淆的处理流程恢复出来,得到可以让人读得懂的代码,经过周末一个晚上的努力把MSIL翻译成了下面的成果:

1.6

1.6

当然除了这些代码之外,下面还有很多,但是那不影响我们分析程序已经注册的处理,因为到截图中的最后一个return返回时已经表示程序已经注册过了
分析上面代码我们可以得出,程序从注册表读出了四个加密值setting1,setting2,setting3,setting4并且解密之后分别将

1. setting1与x5016294158e82a1c.x1060241253fad742.x0607124d85f78745()返回的对象进比较,相等为true
2. setting2与x5016294158e82a1c.x1060241253fad742.x0607124d85f78745()返回的对象即setting1经过x5016294158e82a1c.x1060241253fad742::xfc163b673c29017d(str)处理后返回的对象进行比较,相等为true
3. setting3与”yes”进行比较,相等为true

如果以上三个比较都是相等的那么就表示注册成功。

到这里,我们已经很接近成功了,因为我们可以通过以上三个比较来得出
setting1,setting2,setting3三个的解密值,其中
setting1= x5016294158e82a1c.x1060241253fad742.x0607124d85f78745();
setting2=x5016294158e82a1c.x1060241253fad742::xfc163b673c29017d(setting1);
setting3=”yes”
那么剩下的如果我们能找到他们的加密方法,将他们三个加密后再存回注册表那么我们的
破解就最终完成了。
这时那些被我反编译出来的空壳子发挥作用了,因为根据我翻译出来的伪代码我们可以知道
解密函数在哪个类里,那么可以猜测加密的函数也一定会在那个类里,经过几次的函数调用
的尝试终于被我找到了加密函数:x5016294158e82a1c.x1060241253fad742.x75ab8ead4c62ab63

就这样一个破解程序就诞生了:

1.7

1.7
程序就此破解。


破解相关工具.rar (355.63 KB, 下载次数: 1643)

NET. Reflector下载地址:
http://dl.vmall.com/c0gnrsxfri

欲破解系统程序下载地址:
http://dl.vmall.com/c02m8cv13m

免费评分

参与人数 7吾爱币 +1 热心值 +7 收起 理由
大胖小炮 + 1 + 1 谢谢@Thanks!
晓寒歌 + 1 谢谢@Thanks!
wi5101 + 1 讲解得不错!学习了 +2
19nuclear91 + 1 我很赞同!
_snail + 1 我很赞同!
Chief + 1 欢迎分析讨论交流[吾爱破解论坛]有你更精彩.
莺歌燕语 + 1 去试试25楼

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

457636876 发表于 2012-11-17 02:22
本帖最后由 457636876 于 2012-11-17 02:26 编辑

哈哈 我们刚才也破解了一个软件!
boteli 发表于 2012-11-17 02:13
killerwy 发表于 2012-11-17 02:59
啊哦 软件发上来啊 偶也练练手 我一般都是分析算法 然后写注册机..不知道你这个用不用哦
誰是誰非 发表于 2012-11-17 02:57
boteli 发表于 2012-11-17 02:13
大牛就是大牛。。新手完全看不懂。

呵呵。。。我也看不懂
yi7503 发表于 2012-11-17 07:41
看不懂  貌似很强啊 楼主
小雨细无声 发表于 2012-11-17 07:55
很强大,看来还是掌握一门语言重要
a334715874 发表于 2012-11-17 08:52
MSIL代码完全看不懂``
shifeibao 发表于 2012-11-17 09:09
太震撼了,收我为徒吧~

点评

大家互相学习,我也是新手。学的OD破汇编,没想到接的第一任务就是与所学无关的,呵呵。  发表于 2012-11-17 09:16
 楼主| Pnmker 发表于 2012-11-17 09:14
killerwy 发表于 2012-11-17 02:59
啊哦 软件发上来啊 偶也练练手 我一般都是分析算法 然后写注册机..不知道你这个用不用哦

破文中最后一段代码编译为程序后放到任何一台机子上运行就可以将注册信息写入注册表了。
程序暂时还不能上传,才刚给朋友破了不久,不方便传啊,不好意思啊。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-23 00:13

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表