吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 25878|回复: 93
收起左侧

[.NET逆向] xxx程序 V3.30 .net破解注册教程,全局爆点

  [复制链接]
lmze2000 发表于 2017-4-17 20:25
本帖最后由 H夜 于 2019-6-6 18:16 编辑

软件名称:南方起名程序 V3.30
下载地址:http://www.nfzhouyi.com/qita/Download.htm
起名程序爆破下载地址:链接:http://pan.baidu.com/s/1nuY35bj 密码:lfz4
解压密码:www.52pojie.cn


续昨天完成南方周易排八字的.net逆向练习之后,有朋友说把南方起名程序也破解了吧。于是就在来看看,
因为昨天爆破的排八字,没有找到全局的爆破点,导致大家下载回去,还需要输入一个假注册码。今天就
继续来分析,下载程序开工。


一、复习昨天的知识
工具还是昨天使用的Dnspy、Reflect和Reflecxi插件。


1、Let's Go Go,继续向.Net进军


由于是同一系列的软件,有了昨天的基础,今天就少了很多分析的过程,直接用昨天的套路就可以搞定,所以
今天直接在Dnspy里面搜索了这个字符串 "a@^*(^*ga$(&%io"; 因为我们已经知道,当注册码计算完成的时
候,下面有这段字符串出现。


搜索分析.png


[C#] 纯文本查看 复制代码
public static bool b()
{
        string right = "";
        string left = "";
        bool flag = c.e().FileSystem.FileExists(t.m + "\\msqimchx330.dll");
        bool result;
        if (flag)
        {
                FileSystem.FileOpen(1, t.m + "\\msqimchx330.dll", OpenMode.Input, OpenAccess.Default, OpenShare.Default, -1);
                string text = FileSystem.LineInput(1);
                string text2 = FileSystem.LineInput(1);
                FileSystem.FileClose(new int[]
                {
                        1
                });
                text2 = r.b(text2);
                string[] array = Strings.Split(text2, "|", -1, CompareMethod.Binary);
                try
                {
                        right = array[0];
                        left = array[1];
                        t.g = array[2];
                        t.h = array[3];
                        t.i = array[4];
                }
                catch (Exception expr_B8)
                {
                        ProjectData.SetProjectError(expr_B8);
                        ProjectData.ClearProjectError();
                }
                bool flag2 = Operators.CompareString(r.b, right, false) != 0;
                if (flag2)
                {
                        result = false;
                }
                else
                {
                        r.a(ref right);
                        bool flag3 = Operators.CompareString(left, r.c, false) == 0;
                        if (flag3)
                        {
                                r.c = "a@^*(^*ga$(&%io";
                                result = true;
                        }
                        else
                        {
                                result = false;
                        }
                }
        }
        else
        {
                result = false;
        }
        return result;



截图上我做了注释,我们今天省略中间的过程,直接奔主题。通过搜索,知道t.a、t.b是2个关键过程,在每个
过程的头部加上断点,其中t.b是程序加载的时候,就会断下的,看来全局的标志和这个t.b有关。我们跟踪这
个t.b的过程,跟踪了一会,发现这段代码里面的Flag没有影响注册的过程,程序飞了。没有什么关键的flag
让我们来处理,仔细想想,那么唯一的可能就是在这个t.b的上面,还有一个调用。为了验证我们的想法,我
们要怎么来做呢。Follow Me

2、找到上层调用,发现全局爆点的老巢

查询调用t.b.png

为了验证我们的猜想,找到调用t.b的那个过程,要怎么来操作呢,通过摸索,原来是这样子的,在t.b的过程名上鼠标
右键,在弹出的菜单中,选中"分析",在分析器页面,出现了一个"使用"、"被使用",按我们的想法,应该是到被使用
那里看看,看看t.b是被"谁"使用了。接着我们继续看图。


t.c关键标志.png


点开"被使用",,然后是一个名叫t.c的过程调用了t.b,我们双击进去看看是什么情况。打开t.c过程,眼前一亮,非常简洁
的代码,


[Asm] 纯文本查看 复制代码
        public static void c()
        {
                global::t.g();
                global::t.f();
                bool flag = global::t.b() & Operators.CompareString(global::t.p, global::r.b, false) == 0 & !File.Exists(global::t.m + "\\sysqimin330.dll");
                if (flag)
                {
                        global::t.o = true;
                }
                else
                {
                        global::t.o = false;
                }
        }



看到这里,基本上大家都明白要如何来做了,这里有一个Global全局变量的Flag,在这里下断,然后重新加载程序,
程序按照我们的预期在这里断下来,然后选中那个Flag标志,按F2,手动把false改成true,然后F5让程序跑起来,到
注册那里一看,我们成功了,嘿嘿。。。


爆破点.png


3、Reflecto大法修改爆点


安全的按照我们的预期,找到了爆破点,并且是个全局的,相比于昨天,,我们又进步了一点点:)


Reflector修改.png


总结:
和昨天的破解相比,又掌握了Dnspy的一个用法,通过分析功能,可以知道一个函数或者过程的调用路径,
知道有谁调用了它,又知道它调用了谁。这对我们逆向很有帮助。看来每个工具都有好多的功能,让我们去了
解。希望这篇分析,能对刚入门的有所帮助。特别是要记得今天的关键学习点,要学会Dnspy的
分析功能。
谢谢大家的捧场。



































免费评分

参与人数 31威望 +1 吾爱币 +40 热心值 +27 收起 理由
KΟKΟ + 1 用心讨论,共获提升!
chsypj + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
空满水杯 + 1 谢谢@Thanks!
qwerttqqaz + 1 + 1 热心回复!
EddieZzz + 1 我很赞同!
nfa98 + 1 + 1 用心讨论,共获提升!
yue2363311 + 1 + 1 热心回复!
gqh + 1 + 1 我很赞同!
始终大碟 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
jgs + 1 + 1 谢谢@Thanks!
drw168 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Hmily + 1 + 10 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
无敌奶嘴 + 1 + 1 热心回复!
hyqsjj + 1 + 1 谢谢@Thanks!
rzhxw + 1 + 1 已答复!
qq157279830 + 1 + 1 用心讨论,共获提升!
outlook + 1 + 1 谢谢@Thanks!
xcuuwww + 1 + 1 谢谢@Thanks!
yanglinman + 1 鼓励转贴优秀软件安全工具和文档!
www.52pojie.cn + 1 + 1 牛人啊!
zhaoxishm + 1 + 1 W7 64位 软件无法运行
soyiC + 1 + 1 谢谢@Thanks!
kuan99118 + 2 + 1 谢谢@Thanks!
pyj521 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
rocky_zhou + 1 我很赞同!
你听我解释 + 1 + 1 谢谢@Thanks!
hcloveld + 1 + 1 谢谢@Thanks!
荒野汉尼拔 + 1 + 1 谢谢@Thanks!
haoren + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
ayoma + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
wycbs + 1 + 1 我很赞同!

查看全部评分

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

 楼主| lmze2000 发表于 2017-4-17 20:47
zhuzhili2261 发表于 2017-4-17 20:46
大佬 有没有这方面的基础教程啊 看起来很费劲

没有,都是自己摸索着来的,然后百度找一些相关的资料,你哪里有不明白 ,可以留言,如果我会的,会告诉你。一起学习。
 楼主| lmze2000 发表于 2017-4-17 21:10
平常心 发表于 2017-4-17 21:00
win10怎么打不开呢,提示自己关闭程序

不能呀,你们原程序下了吗,破解的那个不能直接运行。我的在win10下可以运行。
zhuzhili2261 发表于 2017-4-17 20:46
大佬 有没有这方面的基础教程啊 看起来很费劲
头像被屏蔽
wanghai123 发表于 2017-4-17 20:48
提示: 作者被禁止或删除 内容自动屏蔽
平常心 发表于 2017-4-17 21:00
win10怎么打不开呢,提示自己关闭程序
bmy01 发表于 2017-4-17 21:02
win10运行不了
wycbs 发表于 2017-4-17 21:13
支持你造福大家。最好把鹏飞象棋研究出来玩玩。
haoren 发表于 2017-4-17 21:18
感谢发布原创作品,吾爱破解论坛因你更精彩!
caleb110 发表于 2017-4-17 21:21
学习啦!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 01:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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