milkice 发表于 2015-6-24 10:06

McMyAdmin 原创暴力破解

嗯哼。。作为菜鸟好不容易破了一个软件,来这里分享一下~
这个帖子我原来是发布在这里的http://www.52pojie.cn/thread-375077-1-1.html
然后修改了一下发布在这里


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


0x00.软件介绍


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

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


然而MMA免费版仅仅允许服务器容纳<=10人,且还会在服务器运行期间不断发广告
/say "The server is running by McMyAdmin"
其实吧购买专业版也不是很贵(10欧元),但是相信很多童鞋都不会去买的对吧(比如我{:301_1004:}哈)
而且官方很自豪滴称
“我们的产品是用c#编写,可以跨平台哦”←_←大家都懂滴
于是呐。就拿MMA练练手吧
0x01.分析
既然是c#,免不了用reflector或者ilspy一番狂轰乱炸
先用ilspy试试看

恩。还能打得开,就是这函数和变量名似乎都被混淆了。。(不知道是ilspy的问题还是真的混淆了。。如果有误请大神指正)
即便如此,主体部分还是能读得懂的(就是不能把代码全部复制到vs里重新构建了),于是乎我便开始找验证部分
/******************************************************************************************************
*******************************************************************************************************
******************************************************************************************************/
找了半天居然啥也没找到{:301_1008:}
什么鬼,tmd这软件是不会验证么!
后来再看看,发现有这么个东东

似乎打开了一个叫McMyAdmin.ebi的文件
也许这就是授权文件吧。。赶紧去文件夹目录看了一下,果然有

但是这授权文件也忒大了吧(700kb~),这也打消了我破解授权文件的念头
继续找找,发现在那行代码下面几行有个assembly加载dll的代码。。
也许这个ebi文件只是一个dll文件,只不过被改了后缀罢了。。
试试用ilspy看看

没戏。
既然要加载,同时这又不能被ilspy打开,那肯定经过特殊处理了咯
继续找找,找到了这部分代码

ok就是这段了,接下来就是把这个经过特殊处理的文件进行解包咯
我之前说过因为代码混淆的原因不能直接复制进去
直接复制进去&运行就和这张图上说的一样

RT,因为vs不知道你这里的a指的是变量还是函数,因此报错(歧义)
无奈之下也只能将源代码删删减减复制进去,前面没问题,后面却来了

这TM明显又实例化了一个类
你们可能会说,把这个ds类继续拉进来&自行修码咯
我当时也是这么想的,结果呢

又来了个fj
后来再fj找,fj又初始化了另外的三个类,,,,,
要是真修的话那还不如我自己编一个呢= =
也就这问题困扰了我好几个星期
/***************************************************************************/
但天无绝人之路,我在百般无聊地开fj的代码时找到这么一行

GZipStream?我顿时有了个大胆的猜测,这个fj类会不会就仅仅是一个压缩&解压GZip的类呢?
哪还不如先把这一段注释掉,等能够解包出文件后再用好压来解压呢
于是注释+写了一段写文件的代码

代码在介里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 != g)
                {
                  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;
            array2.CopyTo(array4, 0);
            array3.CopyTo(array4, 2);
            byte[] array5 = new byte;
            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();
运行完毕,果然

我创建的文件名就是array4.gz,用好压打开

excellent!格式果然就是GZip
PS:这还真的带有一点运气成分
打开那个解压出来的东东,没问题了

搞了半天那个exe只是个启动器,这个ebi文件才是真正的主程序
那么,继续找验证部分
/*******************/
找是找到了。。但是看不懂。。。不知道是因为ilspy的原因还是官方故意混淆的。。

如果有兴趣的话大家可以自己看看这段。。总觉得怪怪的(也有可能是我太菜{:301_1010:})
既然这条道路行不通,继续观察
依据官方的说法,只要购买,他们会给你一个licence key,复制到面板里去即可
说明这款软件已经包含全部功能。既然如此,在程序里肯定有个flag来记录用户的类型(Personal,Professional,Enterprise)
那就找找呗
/******************************************************************************************/
没找到flag,找到了这个

PS:这里是Professional = 2,ilspy的问题
既然找到这个,那么搜索Personal即可(毕竟最初软件肯定给flag赋的是权限最低的用户)

这里有一个(cq类里)
再找找有没有反盗版(就是那种检测用户是否为正版的函数)
不过貌似还真有(依旧cq类)

至此分析完毕
0x03.暴力
既然都找到了这些,开始修改咯~
这里呐我用的是DotNet Resolver(这款软件nop的时候可以大块大块的nop掉)当然之后呢我还会用Reflector的Reflexil还有JustDecompiler里的Reflexil(这三者各有优点&缺点,实际破解的时候只要取长补短即可)
先解决flag

好吧这明显是reflector
接下来解决反盗版(在cq类里的n())

这个倒是用的dotnet Resolver,大段nop特别爽
nop后效果图如下

=>等于啥都没做
PS:IL语句没学多少,如果有误还请指正
好了修改完毕,别忘了保存哦~
0x04. "结束"
改好了还不快替换掉原来的McMyAdmin.ebi试试看
然而打不开了。。。
0x05. "思考"
后来想想觉得自己傻x了,软件原本加载的就是经过特殊处理的文件,我这样直接丢进去,读得出来才怪!
那就把McMyAdmin.exe那段解包的代码nop掉了
0x06.继续分析&修改
这次用的还是DotNet Resolve,切换到IL语句里观察

进行修改
/*patch过后的McMyAdmin.exe和McMyAdmin.ebi在这里

*/


最后效果图

不作任何处理直接返回array1(就是读取文件的byte[]数组)
0x07. 成功?
试着运行了一下,可以加载ebi了,但是。。。。


为什么还是Personal?
0x08.再度修改ebi
脑残了一上午,找到这么段
public string bn = "Personal";
具体什么作用我不说你们都懂的吧,,,
开JustDecompile改了它。。(Reflector抽了)
0x09.成功!
再度打开,效果如图


至此结束~




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

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

佩服楼主的毅力。。。:lol
页: [1] 2 3 4 5 6 7
查看完整版本: McMyAdmin 原创暴力破解