吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 32296|回复: 63
收起左侧

[原创] McMyAdmin 原创暴力破解

  [复制链接]
milkice 发表于 2015-6-24 10:06
嗯哼。。作为菜鸟好不容易破了一个软件,来这里分享一下~
这个帖子我原来是发布在这里的http://www.52pojie.cn/thread-375077-1-1.html
然后修改了一下发布在这里


先说一句
如果你是公益服腐竹(没有盈利性质)可以使用本款破解版软件
如果你是收费服腐竹或者服务器租赁商请勿使用本款破解版软件,若要测试请于下载后的24小时内删除


0x00.软件介绍


Minecraft腐竹们应该都知道McMyAdmin(以下简称MMA)这款网页管理服务器软件吧。。网页界面真心很赞

McMyAdmin网页界面

McMyAdmin网页界面

根据官方的说法,,MMA在安全方面也是卓越的(鬼知道呢)


然而MMA免费版仅仅允许服务器容纳<=10人,且还会在服务器运行期间不断发广告
/say "The server is running by McMyAdmin"
其实吧购买专业版也不是很贵(10欧元),但是相信很多童鞋都不会去买的对吧(比如我
而且官方很自豪滴称
“我们的产品是用c#编写,可以跨平台哦”←_←大家都懂滴

于是呐。就拿MMA练练手吧
0x01.分析
既然是c#,免不了用reflector或者ilspy一番狂轰乱炸
先用ilspy试试看

ilspy

ilspy

恩。还能打得开,就是这函数和变量名似乎都被混淆了。。(不知道是ilspy的问题还是真的混淆了。。如果有误请大神指正)
即便如此,主体部分还是能读得懂的(就是不能把代码全部复制到vs里重新构建了),于是乎我便开始找验证部分
/******************************************************************************************************
*******************************************************************************************************
******************************************************************************************************/
找了半天居然啥也没找到
什么鬼,tmd这软件是不会验证么!
后来再看看,发现有这么个东东
3.png
似乎打开了一个叫McMyAdmin.ebi的文件
也许这就是授权文件吧。。赶紧去文件夹目录看了一下,果然有
4.png
但是这授权文件也忒大了吧(700kb~),这也打消了我破解授权文件的念头
继续找找,发现在那行代码下面几行有个assembly加载dll的代码。。
也许这个ebi文件只是一个dll文件,只不过被改了后缀罢了。。
试试用ilspy看看
5.png
没戏。
既然要加载,同时这又不能被ilspy打开,那肯定经过特殊处理了咯
继续找找,找到了这部分代码
6.png
ok就是这段了,接下来就是把这个经过特殊处理的文件进行解包咯
我之前说过因为代码混淆的原因不能直接复制进去
直接复制进去&运行就和这张图上说的一样
7.png
RT,因为vs不知道你这里的a指的是变量还是函数,因此报错(歧义)
无奈之下也只能将源代码删删减减复制进去,前面没问题,后面却来了
8.1.png
这TM明显又实例化了一个类
你们可能会说,把这个ds类继续拉进来&自行修码咯
我当时也是这么想的,结果呢
8.2.png
又来了个fj
后来再fj找,fj又初始化了另外的三个类,,,,,
要是真修的话那还不如我自己编一个呢= =
也就这问题困扰了我好几个星期
/***************************************************************************/
但天无绝人之路,我在百般无聊地开fj的代码时找到这么一行
9.png
GZipStream?我顿时有了个大胆的猜测,这个fj类会不会就仅仅是一个压缩&解压GZip的类呢?
哪还不如先把这一段注释掉,等能够解包出文件后再用好压来解压呢
于是注释+写了一段写文件的代码
10.png
代码在介里
[C#] 纯文本查看 复制代码
private const string cta = "http://www.mcmyadmin.com/Downloads/MCMA2-Latest.zip";
        private const string ctb = "McMyAdmin.ebi";
        public static string ctc = "";
        private static bool ctd = false;
        private static bool cte = false;
        private static byte[] g = new byte[]
	    {
		    69,
		    66,
		    73,
		    1
	    };
         

        static void Main(string[] args)
        {

            byte[] array = File.ReadAllBytes("...."); //TODO:locate the McMyAdmin.ebi file by yourself
            for (int i = 0; i < g.Length; i++)
            {
                if (array[i] != g[i])
                {
                    Console.WriteLine("Unrecognised File Header");
                }
            }
            MemoryStream memoryStream = new MemoryStream(array, false);
            BinaryReader binaryReader = new BinaryReader(memoryStream);
            memoryStream.Seek(-12L, SeekOrigin.End);
            int num = binaryReader.ReadInt32() - 2;
            int num2 = binaryReader.ReadInt32();
            int num3 = binaryReader.ReadInt32();
            memoryStream.Seek((long)(-(long)(num + 20 - num3)), SeekOrigin.Current);
            int count = binaryReader.ReadInt32();
            int count2 = binaryReader.ReadInt32();
            memoryStream.Seek(0L, SeekOrigin.Begin);
            byte[] array2 = new byte[]
		{
			31,
			139
		};
            binaryReader.ReadBytes(4);
            byte[] signature = binaryReader.ReadBytes(count);
            byte[] keyBlob = binaryReader.ReadBytes(count2);
            memoryStream.Seek(8L, SeekOrigin.Current);
            byte[] array3 = binaryReader.ReadBytes(num);
            byte[] array4 = new byte[num + 2];
            array2.CopyTo(array4, 0);
            array3.CopyTo(array4, 2);
            byte[] array5 = new byte[num2];
            MemoryStream a_ = new MemoryStream(array4);
            FileStream fs = new FileStream("......", FileMode.Create); //TODO:Enter your own output file directory
            //将byte数组写入文件中
            fs.Write(array4, 0, array4.Length);
fs.Close();

运行完毕,果然
11.1.png
我创建的文件名就是array4.gz,用好压打开
11.2.png
excellent!格式果然就是GZip
PS:这还真的带有一点运气成分
打开那个解压出来的东东,没问题了
12.png
搞了半天那个exe只是个启动器,这个ebi文件才是真正的主程序
那么,继续找验证部分
/*******************/
找是找到了。。但是看不懂。。。不知道是因为ilspy的原因还是官方故意混淆的。。
13.png
如果有兴趣的话大家可以自己看看这段。。总觉得怪怪的(也有可能是我太菜
既然这条道路行不通,继续观察
依据官方的说法,只要购买,他们会给你一个licence key,复制到面板里去即可
说明这款软件已经包含全部功能。既然如此,在程序里肯定有个flag来记录用户的类型(Personal,Professional,Enterprise)
那就找找呗
/******************************************************************************************/
没找到flag,找到了这个
14.png
PS:这里是Professional = 2,ilspy的问题
既然找到这个,那么搜索Personal即可(毕竟最初软件肯定给flag赋的是权限最低的用户)
15.1.png
这里有一个(cq类里)
再找找有没有反盗版(就是那种检测用户是否为正版的函数)
不过貌似还真有(依旧cq类)
15.2.png
至此分析完毕
0x03.暴力
既然都找到了这些,开始修改咯~
这里呐我用的是DotNet Resolver(这款软件nop的时候可以大块大块的nop掉)当然之后呢我还会用Reflector的Reflexil还有JustDecompiler里的Reflexil(这三者各有优点&缺点,实际破解的时候只要取长补短即可)
先解决flag
16.png
好吧这明显是reflector
接下来解决反盗版(在cq类里的n())
16.2.png
这个倒是用的dotnet Resolver,大段nop特别爽
nop后效果图如下
16.3.png
=>等于啥都没做
PS:IL语句没学多少,如果有误还请指正
好了修改完毕,别忘了保存哦~
0x04. "结束"
改好了还不快替换掉原来的McMyAdmin.ebi试试看
然而打不开了。。。
0x05. "思考"
后来想想觉得自己傻x了,软件原本加载的就是经过特殊处理的文件,我这样直接丢进去,读得出来才怪!
那就把McMyAdmin.exe那段解包的代码nop掉了
0x06.继续分析&修改
这次用的还是DotNet Resolve,切换到IL语句里观察
17.2.png
进行修改
/*patch过后的McMyAdmin.exe和McMyAdmin.ebi在这里
MMA.zip (814.95 KB, 下载次数: 446)
*/
17.png
17.3.png
最后效果图
17.4.png
不作任何处理直接返回array1(就是读取文件的byte[]数组)
0x07. 成功?
试着运行了一下,可以加载ebi了,但是。。。。
18.2.png
18.png
为什么还是Personal?
0x08.再度修改ebi
脑残了一上午,找到这么段
public string bn = "Personal";
具体什么作用我不说你们都懂的吧,,,
开JustDecompile改了它。。(Reflector抽了)
0x09.成功!
再度打开,效果如图
19.2.png
19.3.png
至此结束~




PS:伸手党们如果你们正在找我发的破解版&看到这里没找到的话,请再看一遍,谢谢配合

免费评分

参与人数 17威望 +2 吾爱币 +2 热心值 +17 收起 理由
tianchao110 + 1 + 1 我很赞同!
#include + 1 + 1 我很赞同!
AJ233 + 1 求楼主更新破解版~~~
eason_chen + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
紫轩冰凌 + 1 谢谢@Thanks!
syy6542320 + 1 谢谢@Thanks!
Angelic47 + 1 全面推进
ShimakazeOwO + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
wangyiquanwm + 1 掉炸天,俺一句也没看不懂。
Hmily + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
tantanxin147 + 1 很牛逼 然而我一句也不懂
gzfsc + 1 谢谢@Thanks!
bai123tt + 1 谢谢@Thanks!
回家种地 + 1 今天的分加给你了
william2568 + 1 谢谢@Thanks!
aijie037 + 1 我很赞同!
Ps出来的小赵 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.

查看全部评分

本帖被以下淘专辑推荐:

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

 楼主| milkice 发表于 2015-8-24 13:05
Angelic47 发表于 2015-7-23 09:41
mcmyadmin被楼主爆破,multicraft被我山寨的同时也被另一个朋友爆破,minecraft面板要平民化咯~支持公益服 ...

你不也是么233破解mulitcraft的时候思路卡在了山寨服务器的验证算法问题上,原来这玩意是用pyhton写的,这样就容易了
 楼主| milkice 发表于 2015-8-24 13:03
tylikewa 发表于 2015-8-11 11:15
楼主我用了你的POJIE文件,版本和说明什么的都是注册版(PRO) 为什么还是修改不了人数?  配置文件改也是1 ...

在mcmyadmin配置文件里原来就是10人限制,把配置文件用记事本改一下就行
Ps出来的小赵 发表于 2015-6-24 10:08
支持原创 支持大神  鼠标一抖  经验到手  貌似快升级了………………
aijie037 发表于 2015-6-24 10:17
支持原创!!
emCupid 发表于 2015-6-24 10:26
mark一下,MC还是比较感兴趣的,有空抓来研究研究
一块两毛五 发表于 2015-6-24 10:32
额,不懂,留给有用的人
帝皇翼 发表于 2015-6-24 10:37
不错  支持原创
回家种地 发表于 2015-6-24 10:39
这是个好东西,果断的下了,谢谢撸主
A13256382 发表于 2015-6-24 10:47
不懂  感谢分享
niuniu919 发表于 2015-6-24 11:01
这是菜鸟吗,明显就是大神啊。好帖啊!!
3yu3 发表于 2015-6-24 11:08
佩服楼主的毅力。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-5-14 04:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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