lmze2000 发表于 2017-4-17 20:25

xxx程序 V3.30 .net破解注册教程,全局爆点

本帖最后由 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"; 因为我们已经知道,当注册码计算完成的时
候,下面有这段字符串出现。





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;
                        left = array;
                        t.g = array;
                        t.h = array;
                        t.i = array;
                }
                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的那个过程,要怎么来操作呢,通过摸索,原来是这样子的,在t.b的过程名上鼠标
右键,在弹出的菜单中,选中"分析",在分析器页面,出现了一个"使用"、"被使用",按我们的想法,应该是到被使用
那里看看,看看t.b是被"谁"使用了。接着我们继续看图。





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


      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让程序跑起来,到
注册那里一看,我们成功了,嘿嘿。。。





3、Reflecto大法修改爆点


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





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



































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

学习啦!
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: xxx程序 V3.30 .net破解注册教程,全局爆点