(应一些园友建议,我把敏感字段去掉)

  其实当初我的目的是很纯洁的,只是想找一个简单的网站生成模板,由于对.net更熟悉一点,就去搜索了.net框架的CMS,看它的介绍挺强大的,符合最初的目的,但是下下来之后发现最新版本是要钱的,低一级的版本免费,但是免费的生成出来的东西会有他们公司的版权,这就让我不能忍了,免费就免费啊,搞个纯净点的不行啊,GOOGLE是强大的,所以我尝试的去搜索看有没有破解的版本,发现搜出来的一律都是免费版的去掉版权的版本,擦,去个版权就叫破解了么,而且还是低一级的版本,略微坑爹。.NET的东西理论上没有什么不可以破解的,之前由于项目需要,偶尔也会去破解一些商业的.NET软件,学习学习嘛,破解也不是什么罪大恶极的事,只要你不破坏别人的利益就行,所以我就抱着学习的心态去看了一下P*****的源代码,罪过罪过。只是学习。

  本人声明,下面的内容只是个人研究所用,不作为任何商业目的,如果有人看了本篇文章做出任何违法之事,本人不负任何责任责任。by Zengg

  破解所需软件:Reflector,ILSpy,de4dot

  Reflector和ILSpy其实是一个性质的,都是用来查看别人的源代码,由于有时我发现Reflector查看方法的时候会出现一些错误,所以就用ILSPY配合着用。

  de4dot,脱壳和反混搅的利器,一般商业软件都会加壳或者用了混搅代码,让一些人就算看到代码也不明白写的是什么,有了这个神器,妈妈再也不用担心我看到乱码了。。。当然有时也不是万能的,90%都能还原吧。

P******版本:V3.0

这是V3.0的基本样貌

 按照官网的说法,只要把域名和对应的注册码填到web.config里面就可以了。

Web.config

  可以看到Url是域名,License就是填写注册码的地方,由于域名是唯一的,我们不难想象出Url肯定是作为生成注册码的主要参照物,说个题外话,破解嘛,看你是要暴力破解还是文艺破解,暴力破解就是把代码注入他的DLL,从而绕过他的验证达到注册的目的,文艺嘛,就是大家有话好好说,不改动他的DLL,但是需要根据他提供的一些信息去推测软件作者的加密思想,只要你明白了加密核心思想,就能从源码中找出蛛丝马迹,由于软件里的源码肯定只存在解密的步骤,加密的步骤就需要大家反推出来了,有木有一种当侦探的赶脚。。。。。当然,本人只是业余人士,大牛们看到心里鄙视就好,不用说出来。。会打击人的.by Zengg

  言归正传,我们已经知道了URL是生成注册码的参照物,以后就按着这个线索去查找,其实上面还有一个重要的线索,”License”,由于注册码肯定是要从配置文件读取,读取之后就是验证的步骤,这验证的步骤就是我们需要去的地方,读取License的值,大家会想一下.NET的做法,是不是ConfigurationManager.AppSettings["License"],现在由于程序员的水平高低不齐,一般来说都会像上述那样去写,这样就暴露了获取验证码的地方,我们就可以定位到所有有”License”内容的代码段去,所以说,以后大家写核心解密代码的时候多留一个心眼,把敏感字段写入资源里面,至少给破解的人增加一点难度。

  Bin目录下有很多的DLL,其中一个肯定就是藏有解密的地方

  

  当然由于我已经破解过了,筛选DLL的过程就不描述了,P*******.web.dll,就是解密的地方,用de4dot先给DLL脱壳。

然后我们用ILSPY打开这个DLL

  

  会看到。。尼玛还是这么坑爹,所有东西基本都是乱码,让人不能直视,具体为什么我也没研究过,由于我们也不需要去明白这些乱码写的是神马,按照上面的思路我们要查找所有含有License字段的代码段,这步骤可以用软件实现。

  利用ILSPY,在SEARCH里填上License,就可以看到出来很多方法,当初很疑惑为什么有这么多地方用到验证注册码,验证的算法都是一样的,难道作者以为你各个角落都验证一遍就不能破解了么。。

仔细看了搜索出来的结果,他是一些重要的表操作时就会去验证一遍,挺谨慎的嘛,上面标蓝的地方就是登陆的时候主页验证,我们从这里开始。

点击进入该方法

  从上面代码可以看出,其实注册码分为两个部分,以’g’字符隔开,前面一部分是由MD5加密,后面一部分暂时不清楚,前面我们推论注册码是由URL来的,我们有理由怀疑

this.j3G1XJp4Xe, this.EsQ1WjnrPD肯定有一个是URL字段,至于另一个是什么得去寻找,一般来说我们初始化的时候会在类的构造函数初始化,相信在构造函数里面,我们会知道这两个字段的意思,忘记了这是web,我们应该从Page_load页面加载里面去寻找:

protected void Page_Load(object sender, EventArgs e)
{
string connectionString;
int[] num;
while (true)
{
IL_24F:
this.Qi911iK25u = ":" + master_login.tDhwcmhvMr4nRqlEc9G(base.Request)["SERVER_PORT"];
while (true)
{
IL_232:
if (this.Qi911iK25u == ":80")
{
this.Qi911iK25u = "";
}
this.EsQ1WjnrPD = this.Jbr136aAXj(master_login.MpkoQbh7EvS0PEFh1B3(master_login.rEXTLBh8uXG8glkV91p(ConfigurationManager.AppSettings, "Url").ToString()));
master_login.xncn9GhN2hVekNKKcgK();
if (!master_login.DMFvcGhZ55jZPl06Jhl())
{
goto IL_FA;
}
goto IL_215;
IL_1CA:
bool flag;
while (!(flag = (base.Request.Form["username"] == null)))
{
this.NTR1li2VG4();
this.Yqx1ac8tvS = new Conn();
connectionString = master_login.lPkTddhObfF6vvZs9Ta(this.Yqx1ac8tvS);
num = new int[]
{
,
,
,
,
,
,
,
,
,
,
,
, };
while (true)
{
this.j3G1XJp4Xe = this.Yqx1ac8tvS.GetString(num);
num = new int[]
{
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
, };
this.DDU1A3AUYe = this.Yqx1ac8tvS.GetString(num);
int expr_AA = ;
if (master_login.xncn9GhN2hVekNKKcgK())
{
switch (expr_AA)
{
case :
goto IL_232;
case :
case :
goto IL_FA;
case :
case :
goto IL_215;
case :
goto IL_176;
case :
continue;
case :
goto IL_276;
case :
goto IL_2AE;
case :
goto IL_1CA;
case :
goto IL_24F;
case :
goto IL_2F5;
case :
return;
}
break;
}
break;
}
goto IL_187;
}
return;
IL_FA:
this.KpC1B5ZX4p = this.Jbr136aAXj(master_login.tDhwcmhvMr4nRqlEc9G(master_login.rnmK14hAjv0aZay85lt(this))["SERVER_NAME"].ToLower());
if (!master_login.MAaokyhM2irc0iduDgg(this.KpC1B5ZX4p, "localhost"))
{
goto IL_1CA;
}
int num2 = this.KpC1B5ZX4p.IndexOf(this.EsQ1WjnrPD);
string a;
if (num2 >= )
{
a = this.KpC1B5ZX4p.Substring(num2, this.KpC1B5ZX4p.Length - num2);
goto IL_176;
}
master_login.a6dZyFh3MrLLslJyyx5(this).Write("<script>location.href='http://" + this.EsQ1WjnrPD + this.Qi911iK25u + "/e/master/login.aspx';</script>");
goto IL_215;
IL_187:
if (!flag)
{
this.KpC1B5ZX4p = this.EsQ1WjnrPD;
goto IL_1CA;
}
master_login.a6dZyFh3MrLLslJyyx5(this).Write("<script>location.href='http://" + this.EsQ1WjnrPD + this.Qi911iK25u + "/e/master/login.aspx';</script>");
base.Response.End();
goto IL_1CA;
IL_215:
master_login.a6dZyFh3MrLLslJyyx5(this).End();
goto IL_1CA;
IL_176:
flag = !(a == this.EsQ1WjnrPD);
goto IL_187;
}
}
IL_276:
num = new int[]
{
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
, };
this.wht18BDAPc = this.Yqx1ac8tvS.GetString(num);
num = new int[]
{
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
, };
IL_2AE:
this.eA41Kphpj9 = this.Yqx1ac8tvS.GetString(num);
this.kwo1i4CnR3 = this.ne91erSgMV();
this.GqT1YHkWWq = new OleDbConnection(connectionString);
master_login.qOyjNXhFe7tECUDuWP7(this.GqT1YHkWWq);
this.gII1QQxT9S();
this.aK41NqyDHj();
this.Tov1vquSFP();
IL_2F5:
this.GqT1YHkWWq.Close();
}

Load

  仔细看上面的代码,我们会发现,this.EsQ1WjnrPD就是URL,但是经过了一些处理,即去掉了域名前面的“WWW.”,this.j3G1XJp4Xe是经过特殊算法得出字符串。by Zengg

算法源码:

  {
int[] num = new int[]{
,
,
,
,
,
,
,
,
,
,
,
, };
this.j3G1XJp4Xe = GetString(num);
} public string GetString(int[] num)
{
string text = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~!@#$%^&*()_+-={}[]:\";'<>?,./\\| ";
StringBuilder stringBuilder = new StringBuilder();
string result;
if (num.Length > )
{
for (int i = ; i < num.Length; i++)
{
stringBuilder.Append(text[num[i]]);
}
result = stringBuilder.ToString();
}
else
{
result = "";
}
return result;
}

j3G1XJp4Xe

MD5算法:

public class Md5
{
public string Get_Md5(string s)
{
MD5 mD = new MD5CryptoServiceProvider();
Encoding encoding = Encoding.GetEncoding("UTF-8");
string s2 = "pageadmin cms";
byte[] array = mD.ComputeHash(encoding.GetBytes(s));
byte[] array2 = mD.ComputeHash(encoding.GetBytes(s2));
StringBuilder stringBuilder = new StringBuilder();
for (int i = ; i < array.Length; i++)
{
stringBuilder.Append(((int)(array[i] + array2[i])).ToString("x").PadLeft(, ''));
}
return stringBuilder.ToString();
}
public string Md5_Num(string s)
{
string text = "";
for (int i = ; i < s.Length; i++)
{
if (i == s.Length - )
{
text += this.GetNum(s[i].ToString()).ToString();
}
else
{
text = text + this.GetNum(s[i].ToString()).ToString() + ",";
}
}
return text;
}
private int GetNum(string C)
{
string text = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~!@#$%^&*()_+-={}[]:\";'<>?,./\\| ";
int num = text.IndexOf(C);
int result;
if (num < )
{
result = -;
}
else
{
result = num;
}
return result;
}
}

MD5

  第一部分的注册码其实已经得出来的,即this.j3G1XJp4Xe+this.EsQ1WjnrPD的字符串经过MD5加密就是第一部分的注册码,下面我们去寻找第二部分的线索,重新回到上次搜索"License"的列表,经过一个个的排查,发现了重要线索。

 

  进入这个方法

aaarticlea/png;base64,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" alt="" />

  从上面的代码可以推出,后部分注册码,其实就是URL的长度乘以2,到这里其实注册码差不多已经出来了,基本格式

MD5(this.j3G1XJp4Xe+this.EsQ1WjnrPD)+“g”+URL.Length*2+?....注册码例子:ef12a131357bb3e67396e01061141385da5149g143

剩余核心算法:

 private static bool g031FKBmaF(string A_1)
{
string[] array = new string[];
array[] = "^127[.]0[.]0[.]1$";
array[] = "^localhost$";
array[] = "^10[.]\\d{1,3}[.]\\d{1,3}[.]\\d{1,3}$";
array[] = "^172[.]((1[6-9])|(2\\d)|(3[01]))[.]\\d{1,3}[.]\\d{1,3}$";
array[] = "^192[.]168[.]\\d{1,3}[.]\\d{1,3}$";
string[] array2 = array;
int num = ;
IL_45:
if (num >= array2.Length)
{
bool result = false;
return result;
}
if (A_1 != null)
{
goto IL_64;
}
string arg_58_0 = "";
IL_55:
if (Regex.IsMatch(arg_58_0, array2[num]))
{
bool result = true;
return result;
}
num++;
goto IL_45;
IL_64:
arg_58_0 = A_1;
goto IL_55;
}
private static string Jbr136aAXj(string A_1)
{
bool arg_27_0; if (g031FKBmaF(A_1))
{
arg_27_0 = false;
goto IL_27;
}
arg_27_0 = (A_1.IndexOf(".") >= );
IL_27:
string result;
if (!arg_27_0)
{
result = "localhost";
}
else
{
result = A_1.Replace("www.", "");
}
return result;
}

  写了这么多也够了,最后一个数字3代表的是.net后缀的域名,这里就不提供完整的程序源码,可能会涉及一些侵权,我写的其实也够详细了,

核心算法也贴出来,大家自己去写一个注册机吧,如果有想要域名对应的注册码的,请邮电我说明正当理由,我会考虑是否给你。

如果您看了本篇博客,觉得对您有所收获,请点击右下角的 [推荐]

如果您想转载本博客,请注明出处

如果您对本文有意见或者建议,欢迎留言

感谢您的阅读,请关注我的后续博客 Zengg

作者:Zengg
出处:http://www.cnblogs.com/01codeworld/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

.NET P****** CMS 逆向工程的更多相关文章

  1. .NET PageAdmin CMS

    .NET PageAdmin CMS 完全破解步骤(非简单去版权) 其实当初我的目的是很纯洁的,只是想找一个简单的网站生成模板,由于对.net更熟悉一点,就去搜索了.net框架的CMS,看它的介绍挺强 ...

  2. JAVAEE——宜立方商城05:前台系统搭建、首页展示、Cms系统的实现

    1. 学习计划 1.前台系统搭建 2.商城首页展示 3.Cms系统的实现 a) 内容分类管理 b) 内容管理 4.前台内容动态展示 2. 商城首页展示 系统架构: 页面位置: 2.1. 工程搭建 可以 ...

  3. 商城04——门户网站介绍&商城首页搭建&内容系统创建&CMS实现

    1.   课程计划 1.门户系统的搭建 2.显示商城首页 3.内容管理系统的实现 a)  内容分类管理 b) 内容管理 2.   门户系统的搭建 2.1. 什么是门户系统 从广义上来说,它将各种应用系 ...

  4. CMS模板应用调研问卷

    截止目前,已经有数十家网站与我们合作,进行了MIP化改造,在搜索结果页也能看到"闪电标"的出现.除了改造方面的问题,MIP项目组被问到最多的就是:我用了wordpress,我用了织 ...

  5. Kooboo CMS技术文档之五:站点配置管理

    站点关系 管理站点间的关系,站点可以有子站点,子站点继承父站点的部分配置数据,同时子站点还可以根据需要,本地化由父站点继承而来的数据.通过继承和本地化,可以让子站点在用最小的改动代价,来完成一个与父站 ...

  6. Kooboo CMS技术文档之二:Kooboo CMS的安装步骤

    在IIS上安装Kooboo CMS Kooboo CMS安装之后 安装的常见问题 1. 在IIS上安装Kooboo CMS Kooboo CMS部署到正式环境相当简单,安装过程是一个普通MVC站点在I ...

  7. Kooboo CMS技术文档之一:Kooboo CMS技术背景

    语言平台 依赖注入方案 存储模型 1. 语言平台 Kooboo CMS基于.NET Framework 4.x,.NET Framework 4.x的一些技术特性成为站点开发人员使用Kooboo CM ...

  8. Kooboo CMS技术文档之四:Kooboo CMS的站点组成部分

    Kooboo CMS本着功能独立分离的原则,将站点分为三部分组成:用户管理,站点管理和内容数据库管理.各个功能之间既可独立使用,也可以容易组成在一起形成一个完整的系统. 用户管理 管理整个系统内的用户 ...

  9. Kooboo CMS技术文档之三:切换数据存储方式

    切换数据存储方式包括以下几种: 将文本内容存储在SqlServer.MySQL.MongoDB等数据库中 将站点配置信息存储在数据库中 将后台用户信息存储在数据库中 将会员信息存储在数据库中 将图片. ...

随机推荐

  1. 导出excel——入门

    简单介绍 Jxl使用总结 样例 java使用jxl操作Excel文件总结

  2. TP复习12

    四.特殊标签 1.比较标签 eq或者 equal 等于 neq 或者notequal 不等于 gt 大于 egt 大于等于 lt 小于 elt 小于等于 heq 恒等于 nheq 不恒等于 2.范围标 ...

  3. [Angular2 Form] Style Validation in Angular 2 Forms

    Inputs using Angular 2’s ngModel automatically apply style classes of .ng-validand .ng-invalid each ...

  4. HDU 4876 ZCC loves cards(暴力剪枝)

    HDU 4876 ZCC loves cards 题目链接 题意:给定一些卡片,每一个卡片上有数字,如今选k个卡片,绕成一个环,每次能够再这个环上连续选1 - k张卡片,得到他们的异或和的数,给定一个 ...

  5. sublime添加ctags实现代码跳转

    本次操作是在sublime text 2下进行. 1.先到http://sublime.wbond.net/Package%20Control.sublime-package下载Package Con ...

  6. 好记心不如烂笔头之JQuery学习,第三章

    第三章中主要讲了几个对DOM进行操作的方法. 归纳如下: 属性的获取和设置: //属性的获取 $("li").attr("title"); //属性的设置 $( ...

  7. ubuntu 11.10 安装apache2 tomcat6

    ubuntu 11.10 安装apache2 tomcat6 导读 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目 ...

  8. 约瑟夫环问题及python与c++实现效率对比

    约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重 ...

  9. MySQL无视密码进入Server

    在[mysqld]的段中加上一句:skip-grant-tables 如下 [mysqld] skip-grant-tables 即可不输入密码就可以进入mysql server,然后就可以随便修改数 ...

  10. 使用C#实现读取/写入Excel表

    C#实现写入Excel表 using System; using System.Reflection; using System.IO; using Microsoft.Office.Interop. ...