发表于 2015-10-28 10:56

申请会员ID:gsyifan【申请通过】

1、申 请 I D:gsyifan
2、个人邮箱:escms@qq.com
3、原创技术文章:


不脱壳破解某旅游系统5.2版(maxtocode壳)。

某系统是网上最常见也是目前最好用的旅游站系统之一,5.1版本之前采用的maxtocode加壳后可以用de4dot反混淆后破解。5.1版本以后用de4dot无法脱壳。本文仅限学习和讨论,请勿做侵权使用。在这里说一种不脱壳破解的办法,我们分析早期版本的授权验证方式,以5.0为例,我们看下install的验证方法:
1
2
3
4
5
6
7
8
9
if (!flag || step2.smethod_0(this.key, lower))
                        {
                            //此处为安装代码,省略...
                            this.Response.Redirect("step3.aspx");
                        }
                        else
                        {
                            this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script language='javascript'>alert('注册码错误!');</script>");
                        }






1
2
3
4
5
public static bool smethod_0(string string_0, string string_1)
       {
         string str = "髆@b驖b~!蘯鸛0&饕)";
         return ((string_0.Equals(Utils.MD5(string.Concat("ωāр", string_1, str), 32).ToLower()) || string_0.Equals(Utils.MD5(string.Concat(string_1, str), 32).ToLower()) ? true : false) ? true : false);
       }




可以看出使用了一个Key和域名MD5以后生成序列号进行验证。所以只要找到Key就可以算出序列号。在不脱壳的前提下,如何找到这个Key?我们再分析TourEx.Pages.Dll 找到 BasePage
1
2
3
4
5
6
7
8
9
private static void old_acctor_mc()
{
    __ENCList = new List<WeakReference>();
    LineOrderLock = RuntimeHelpers.GetObjectValue(new object());
    OrderLock = RuntimeHelpers.GetObjectValue(new object());
    WriteLock = RuntimeHelpers.GetObjectValue(new object());
    checkkey = "髆@b驖b~!蘯鸛0&饕)";
    includeWap = false;
}




当然这是分析旧版本脱壳后的代码,如果没有脱壳,就通过反射调用BasePage后输出checkkey,就可以得到。然后,我们悲催的发现5.1以后checkkey不见了,写在了方法内部,这样是没法通过反射读出来的。到这里,我们不得不介绍下dnSpy这款神器,这款神器是de4dot的作者开发,可以动态调试.net的EXE,非常强大。我们先分析BasePage中的验证方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// TourEx.Pages.BasePage
// Token: 0x0600005B RID: 91 RVA: 0x00007684 File Offset: 0x00005884
public static bool smethod_0()
{
    bool result;
    if (HttpContext.Current.Server.MapPath(HttpContext.Current.Request.Url.AbsolutePath).IndexOf("wap") != -1)
    {
      if (!(result = (Operators.CompareString(BaseConfig.WebKey, TourEx.Common.Utils.MD5("ωāр" + BaseConfig.WebDomain + BasePage.checkkey, 32).ToLower(), false) != 0)))
      {
            BasePage.includeWap = true;
      }
    }
    else if (result = (Operators.CompareString(BaseConfig.WebKey, TourEx.Common.Utils.MD5("ωāр" + BaseConfig.WebDomain + BasePage.checkkey, 32).ToLower(), false) != 0))
    {
      result = (Operators.CompareString(BaseConfig.WebKey, TourEx.Common.Utils.MD5(BaseConfig.WebDomain + BasePage.checkkey, 32).ToLower(), false) != 0);
    }
    else
    {
      BasePage.includeWap = true;
    }
    return result;
}




这个方法返回了验证结果和includeWap,我尝试用dnSpy写了IL代码http://images2015.cnblogs.com/blog/94836/201510/94836-20151027115420763-218871344.png
1
发现保存的时候失败了。




http://images2015.cnblogs.com/blog/94836/201510/94836-20151027115540622-329584172.png
1
<br>既然我们找对了地方,那就可以想别的办法,dnSpy有个很牛X的HEX编辑功能,可以找到方法对应的十六进制代码<br><br>




http://images2015.cnblogs.com/blog/94836/201510/94836-20151027115727294-1671229413.png
1
用旧的版本修改IL代码,找到相关的十六进制分复制过来保存后,发现代码成功修改了!




http://images2015.cnblogs.com/blog/94836/201510/94836-20151027115911357-293428391.png


http://images2015.cnblogs.com/blog/94836/201510/94836-20151027115859857-1224631652.png
测试成功打开网页,破解完成。<br>这个只是一个思路了,破解之道在于坚持不泄,找到洞洞,然后注入精华代码。。嗯,就是这么回事了~看起来是不是自然万物是不是都一样的道理?扯远了。。此文仅限学习和交流,所以破解版本就不发出来了。
原创软件破解:ApexSql Log 2014.04.1133破解版&补丁ApexSql Log是一款国外优秀的数据库恢复软件,支持SQL2005/2008/2012,能恢复Delete/Update等误操作的数据生成脚本。试用版有每10行导一行和14天限制,发的资源已完全破解。版本是 2014.04.1133目前官网最新版本,支持 SQL2008/2012 。补丁:http://pan.baidu.com/s/1kTs5TCb程序下载(非安装版直接解压就能用,有问题下载官方的安装再用上面的补丁覆盖):http://pan.baidu.com/s/1c0t0cSw

http://images2015.cnblogs.com/blog/94836/201510/94836-20151009223454393-299106328.png
http://images2015.cnblogs.com/blog/94836/201510/94836-20151009223504003-2067242794.png
http://images2015.cnblogs.com/blog/94836/201510/94836-20151009223511284-818913892.png

其它内容请查看我的博客园:http://www.cnblogs.com/gsyifan








Hmily 发表于 2015-11-2 18:15

ID:gsyifan
邮箱:escms@qq.com

申请通过,欢迎光临吾爱破解论坛,期待吾爱破解有你更加精彩,ID和密码自己通过邮件密码找回功能修改,请即时登陆并修改密码!
登陆后请在一周内在此帖报道,否则将删除ID信息。

ps:登录后可以把文章整理下发到移动安全区,谢谢。

gsyifan 发表于 2015-11-7 11:40

俺来报道鸟~
页: [1]
查看完整版本: 申请会员ID:gsyifan【申请通过】