苏飞论坛

标题: 来个破解【小米火警】的教程 [打印本页]

作者: ^陪妳ソ看日落    时间: 2014-4-21 16:08
标题: 来个破解【小米火警】的教程
现在小米的手机现在很火爆so 现在抢小米官网抢手机就很难
------现在出来很多抢小米的软件,今天就拿火警为例讲讲他的破解过程Let‘s Go-----





作者: ^陪妳ソ看日落    时间: 2014-4-21 16:09
不说废话了,开始
首先,不管那么多,拿
NETReflector  加载  小米火警.exe 再

作者: ^陪妳ソ看日落    时间: 2014-4-21 16:12
发现一堆乱七八糟的名字,这不科学啊undefined肯定是被混淆过了的,这就需要反混淆
还好 Blue 大教程里面的那个Reflexil 插件自带有反混淆的功能


作者: ^陪妳ソ看日落    时间: 2014-4-21 16:15
怎么图片不能一下全部发出来?一发出来就变成小的啦~
作者: ^陪妳ソ看日落    时间: 2014-4-21 16:16
果然发现了,这exe 用了 Dotfuscator 混淆过了,,戳死它,这会生成一个 小米火警.Cleaned.exe 的文件,再用Re来加载它
戳得爽吧,这下代码好看多了undefined
终于开始正真的破解了
1.最核心的问题授权破解
用Bule大的方法。。直接搜索   “授权” 相信大家都会找到这个地方


作者: ^陪妳ソ看日落    时间: 2014-4-21 16:17
[C#] 纯文本查看 复制代码
string[] strArray = u.b("AddShouquan:" + xiaomiId + "||" + str).Split(new string[] { "||" }, StringSplitOptions.None);
            if (strArray.Length == 2)
            {
                MessageBox.Show(strArray[1], "授权结果");
                if ("OK".Equals(strArray[0]))
                {
                    this._vm.i[selectedItem].a(ai.e);
                    selectedItem.Message = "";
                    this._vm.i[selectedItem].b(true);
                    this._vm.i[selectedItem].t();
                }
            }

作者: ^陪妳ソ看日落    时间: 2014-4-21 16:18
幸福来的太容易了,很像关键代码,我的思路是看它授权成功的时候做了什么操作,,我再把这写操作注入到对象的构造器上面
在这里搞了好久。事实证明,不行。。怎么办undefined
最后,在Re里面乱翻代码,可以说这里面每个方法都给我翻过了几遍。看哪个方法比较可疑
后来注意到一个方法 Class121里面的 method_0 方法,很明显一看就知道是登陆的方法, 登陆成功之后做了两个操作


作者: ^陪妳ソ看日落    时间: 2014-4-21 16:19
[C#] 纯文本查看 复制代码
this.Enum0_0 = Enum0.const_4;
            this.miSekillPanelVM_0.method_6(this).XiaomiId = str3.Split(new string[] { "userId=" }, StringSplitOptions.None)[1].Split(new char[] { ';' })[0].Split(new char[] { ',' })[0];

作者: ^陪妳ソ看日落    时间: 2014-4-21 16:19
给ID赋值当然不用说啦。。关键在于 赋值了个 this.Enum0_0 = Enum0.const_4; 然后就没后续操作了,也就是说后续操作是通过判断this.Enum0_0的状态来进行操作 const_4 代表着登陆成功的状态,大家都知道登陆成功之后就是开始验证授权了,那就是说授权失败的状态也是通过赋值 Enum0_0的
好啦。解析来查找 给 Enum0_0 赋值的地方了


作者: ^陪妳ソ看日落    时间: 2014-4-21 16:20
这么多引用不怕,老实的一个个看下去,
在  Class121的method_11() 看到。。方法内容是根据Enum状态的不同执行不同操作,仔细一看,这分明就是整个,从登陆到抢购的执行流程嘛,
刚才登陆的时候 赋值了个  Enum0.const_4  ,那么找到这个状态接下去要执行的方法 ,跑不掉了吧,戳进去

作者: ^陪妳ソ看日落    时间: 2014-4-21 16:21
[C#] 纯文本查看 复制代码
string str = Class0.smethod_0(Class1.smethod_0("awBoAHQAQwBoAHUAZQBBAgGAlBAVAMGA") + ":" + this.miSekillPanelVM_0.method_6(this).XiaomiId);
        this.miSekillPanelVM_0.method_5(str);
        if (str.StartsWith(Class1.smethod_0("ARw==AE4")))
        {
            this.Enum0_0 = Enum0.const_5;
            this.Boolean_1 = false;
            this.miSekillPanelVM_0.method_6(this).Message = Class1.smethod_0("C4ALpUuAC5R+1PzDXuuftA+d");
        }
        else if (str.StartsWith(Class1.smethod_0("ASw==AE8")))
        {
            this.Enum0_0 = Enum0.const_8;
            this.Boolean_1 = true;
        }
        else
        {
            this.Enum0_0 = Enum0.const_23;
            this.miSekillPanelVM_0.method_6(this).Message = Class1.smethod_0("++VGWdD/wFgb2OI+U49XXiTZ");
        }

作者: ^陪妳ソ看日落    时间: 2014-4-21 16:23
关键代码在这了,这就是验证授权的地方了。。那么到底哪个才是正确授权的逻辑呢
在上面的执行流程可以看到,Enum0.const_4  接下里的状态是 6 跟 8
很明显了,中间那个判断就是授权成功的逻辑了。。。找到了。。那么就修改IL改变方法逻辑就行啦
具体怎样改我就不多说了,大家自己动手,相信能够改出来的



------------------------------------------------------------------------------我是分割线---------------------------------------------------------------------------------------------

作者: ^陪妳ソ看日落    时间: 2014-4-21 16:24
授权搞定了,那么接下来就是臭名昭著的  后门
不用考虑,后门肯定要取自己的服务器数据。。最直接的,,抓包,我用的是 HTTP Analyzer
额。这个时候问题来了,我发现。我开着 HTTP Analyzer的时候。软件就到了  登陆中  就死都不动了,
我关掉它,又能跑下去了。。纠结啊
折腾好久才找到,居然在软件里面判断了现有进程的标题,对于特定的标题,软件就罢工真可恶
在 Class118 的 method_7()


作者: ^陪妳ソ看日落    时间: 2014-4-21 16:25
[C#] 纯文本查看 复制代码
foreach (Process process in enumerable)
                        {
                            string str = process.MainWindowTitle.ToLower();
                            if (!(((!str.Contains("http") && !str.Contains("sniffer")) && ((!str.Contains("wireshark") && !str.Contains("sock")) && !str.Contains("charles"))) || process.MainWindowTitle.ToLower().Contains("http://")))
                            {
                                Thread.Sleep(0x3e8);
                                this.method_7();
                            }
                        }

作者: ^陪妳ソ看日落    时间: 2014-4-21 16:26
戳爆它,继续抓包

抓到的包看到。。登陆完成之后还发了一个请求,指向 http://115.28.34.62:1986/CheckAuth.aspx
狐狸尾巴出来了,接下来就是 搜索字符串,找到 Class0 的 smethod_0(string)
[C#] 纯文本查看 复制代码
string str = "http://115.28.34.62:1986/CheckAuth.aspx";
        if (bool_0)
        {
            str = "http://wyh.hd.xiaomi.com:1986/CheckAuth.aspx";
        }
        string str2 = Class1.smethod_3(string_1);
        Class118 class2 = new Class118 {
            bool_1 = true
        };
        return Class1.smethod_4(class2.method_0(str, "data=" + HttpUtility.UrlEncode(str2)));

作者: ^陪妳ソ看日落    时间: 2014-4-21 16:27
查找引用


作者: ^陪妳ソ看日落    时间: 2014-4-21 16:29
[C#] 纯文本查看 复制代码
string[] strArray = Class0.smethod_0(Class1.smethod_0("UAcgBtAEkAbwBwAHQAcgAAcgBGAG0AbwBlAFM=gc2BGA") + ":" + int_0).Split(new char[] { '\n' });
        int num = 0;
        foreach (string str in strArray)
        {
            if (!string.IsNullOrEmpty(str))
            {
                string[] strArray2 = str.Split(new char[] { '\r' });
                UserSekillVM item = new UserSekillVM {
                    Account = strArray2[0].Trim(),
                    Password = strArray2[1].Trim(),
                    Status = "Imported"
                };
                list.Add(item);
                num++;
            }

作者: ^陪妳ソ看日落    时间: 2014-4-21 16:35
看来没错了。。这段代码存在明显的给用户名,密码赋值。。
当然还有其他判断依据 。。  UAcgBtAEkAbwBwAHQAcgAAcgBGAG0AbwBlAFM=gc2BGA  这个字符串解密出来的意思就是  ImportFromServer  怎么解出来的就不说了。
反正是找到了。。
好,接下来再找到哪个地方调用到这个该死的方法


怎么找就不用说了吧。。找到这。。这后门就出来啦。。
改IL,砸了它,自己动手丰衣足食哈。就不多说了。我是把他这个if逻辑里面的指令清空



------------------------------------------------------------------------------我是分割线--------------------------------------------------------------------------------------------------------------------
这上面也只是火警两个最主要的核心破解啦,当然,还有其他的,去更新,去账号限制,改标题之类的就不说了,这些不难找
这里面用到的东西大多都是  Blue大新手教程里面的。嘿,小白第一次破解。哪里不对的欢迎指出。。






作者: ^陪妳ソ看日落    时间: 2014-4-21 16:39
谢谢观赏!



作者: bor————    时间: 2014-4-21 22:25
受教了,学习中……
作者: cload    时间: 2014-4-21 22:38
我只是路过看看的。
作者: dyyyj    时间: 2014-4-22 11:23
这里可真是藏龙卧虎啊
作者: paywoll    时间: 2014-4-22 15:25
反混淆后无法运行呀
作者: xjwebs    时间: 2014-4-23 16:20
这么给力的教程,真希望有个简单的视频教程
作者: ss0075    时间: 2014-4-24 09:11
我擦 托管语言 太不安全了 混淆器都没用
作者: wllaoshu    时间: 2014-4-25 15:50
楼主工具给提供一个连接被。
作者: yyhapy    时间: 2014-4-27 00:28
强烈支持楼主ing……
作者: jiejieme    时间: 2014-5-3 20:12
新版用了DNGuard加壳了破解难度加大。
作者: h245289645    时间: 2014-5-4 22:12
是不是楼主自己破解过程还是转发别人的,这篇我在吾爱破解论坛看到过
作者: 风龙天泉    时间: 2014-5-13 17:14
真是难得给力的帖子啊,强烈支持楼主。
作者: zilo555    时间: 2014-6-14 16:03
C:\360高速下载\1.png

大师  这是什么情况
作者: zilo555    时间: 2014-6-14 16:04
求教大师
作者: ♂.Smile    时间: 2014-6-18 15:24
看到很窝火,你转载就转载吧。你tm还发帖。这个贴在52破解上。已经很久了。
强烈要求群主删帖。
作者: 小飞牛    时间: 2014-8-20 16:39
♂.Smile 发表于 2014-6-18 15:24
看到很窝火,你转载就转载吧。你tm还发帖。这个贴在52破解上。已经很久了。
强烈要求群主删帖。

额,我还正准备,给个赞呢。难道是那边发帖的人,又来这边发了。
作者: 席城的爱    时间: 2014-9-24 11:14
请问你说的 bule的教程在哪里?
作者: zdking    时间: 2016-5-5 23:17
碉堡了




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4