首页 > 心情日志 > 反编译一个开心网超级大亨外挂并写出注册机

反编译一个开心网超级大亨外挂并写出注册机

2009年12月20日 张筱祥 发表评论 阅读评论

今天逛论坛的时候看到有个新挂出来,开心网超级大亨外挂,作者是一个斑竹,用了一下软件,不咋会用。可能是我没玩过开心网的新组件超级大亨吧,但是这个组件早在几年前校内网就有了,那时上课还用手机挂机玩过。

软件界面:

image

玩了一会感觉不好玩,但是对他的独特商品价格数据提取方式很有兴趣,是从一个网页读取的:http://jailu.cn/goods.htm, 这个网页能实时读取到开心网超级大亨最新商品价格信息,确实够高级。用peid查了下,发现是用VB写的,于是拖到Reflector反编译,所有源码都看到了。很简单从窗体启动事件中找到注册码验证算法,如下:

反编译得到的注册码计算算法,VB写的
  1. ManagementObjectCollection instances = new ManagementClass("Win32_DiskDrive").GetInstances();
  2.             this.HDid = "";
  3.             foreach (ManagementObject obj2 in instances)
  4.             {
  5.                 this.HDid = Conversions.ToString(obj2.Properties["Model"].Value);
  6.                 break;
  7.             }
  8.             this.HunHDid = this.HDid + " AS87sdj中华gidsadiuifgfuCKdUCHDSddeklilFEERRTRlnoFo9rm4.LabeREl8.Fore56Co78lor = Col78or.ReUId : FIOormP4.LabPIelI8.FoERERnt = NTR23e5w SyYTsteH5m.D5raw6ing.F6o7nt(FoRTrm4.Label8TY.Font, FontStyle.BTYTYD34old)rendskei83热匿名ddhsdadswwe821633034火车头体协15643yerters";
  9.             MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();
  10.             byte[] bytes = Encoding.UTF8.GetBytes(this.HunHDid);
  11.             byte[] buffer = provider.ComputeHash(bytes);
  12.             this.strtexts = BitConverter.ToString(buffer);
  13.             this.strtextsr = Strings.Replace(this.strtexts, "-", "", 1, -1, CompareMethod.Binary);
  14.             int length = this.strtextsr.Length;
  15.             int start = 0;
  16.             int num7 = length;
  17.             for (int i = 1; i <= num7; i++)
  18.             {
  19.                 start++;
  20.                 this.Chrstrs = Strings.Mid(this.strtextsr, start, 1);
  21.                 this.ChrstrsAll = this.Chrstrs + this.ChrstrsAll;
  22.             }
  23.             this.gbt1 = Strings.Mid(this.ChrstrsAll, 1, 4);
  24.             this.gbt2 = Strings.Mid(this.ChrstrsAll, 5, 4);
  25.             this.gbt3 = Strings.Mid(this.ChrstrsAll, 9, 4);
  26.             this.gbt4 = Strings.Mid(this.ChrstrsAll, 13, 4);
  27.             this.gbt5 = Strings.Mid(this.ChrstrsAll, 0×11, 4);
  28.             this.gbt6 = Strings.Mid(this.ChrstrsAll, 0×15, 4);
  29.             this.gbt7 = Strings.Mid(this.ChrstrsAll, 0×19, 4);
  30.             this.gbt8 = Strings.Mid(this.ChrstrsAll, 0x1d, 4);
  31.             this.ChrstrsAlls = this.gbt7 + "-" + this.gbt3 + "-" + this.gbt8 + "-" + this.gbt5 + "-" + this.gbt2 + "-" + this.gbt6 + "-" + this.gbt1 + "-" + this.gbt4;
  32.             provider.Clear();

 

于是,张筱祥打开vs2008,将提取的VB代码简单地转换成了C#代码,得到注册机,文末附上注册机的源码以及注册机程序。

简单地修改为C#代码
  1. ManagementObjectCollection instances = new ManagementClass("Win32_DiskDrive").GetInstances();
  2.             this.HDid = "";
  3.             foreach (ManagementObject obj2 in instances)
  4.             {
  5.                 this.HDid = obj2.Properties["Model"].Value.ToString();
  6.                 break;
  7.             }
  8.             this.HunHDid = this.HDid + " AS87sdj中华gidsadiuifgfuCKdUCHDSddeklilFEERRTRlnoFo9rm4.LabeREl8.Fore56Co78lor = Col78or.ReUId : FIOormP4.LabPIelI8.FoERERnt = NTR23e5w SyYTsteH5m.D5raw6ing.F6o7nt(FoRTrm4.Label8TY.Font, FontStyle.BTYTYD34old)rendskei83热匿名ddhsdadswwe821633034火车头体协15643yerters";
  9.             MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();
  10.             byte[] bytes = Encoding.UTF8.GetBytes(this.HunHDid);
  11.             byte[] buffer = provider.ComputeHash(bytes);
  12.             string strtexts = BitConverter.ToString(buffer);
  13.        
  14.             string strtextsr = strtexts.Replace("-", "");
  15.             int length = strtextsr.Length;
  16.             int start = 0;
  17.             int num7 = length;
  18.             for (int i = 0; i < num7; i++)
  19.             {
  20.                 this.Chrstrs = strtextsr.Substring(start, 1);
  21.                 this.ChrstrsAll = this.Chrstrs + this.ChrstrsAll;
  22.                 start++;
  23.             }            
  24.             this.gbt1 = ChrstrsAll.Substring(0, 4);
  25.             this.gbt2 = ChrstrsAll.Substring(4, 4);
  26.             this.gbt3 = ChrstrsAll.Substring(8, 4);
  27.             this.gbt4 = ChrstrsAll.Substring(12, 4);
  28.             this.gbt5 = ChrstrsAll.Substring(16, 4);
  29.             this.gbt6 = ChrstrsAll.Substring(20, 4);
  30.             this.gbt7 = ChrstrsAll.Substring(24, 4);
  31.             this.gbt8 = ChrstrsAll.Substring(28, 4);
  32.             string ChrstrsAlls = this.gbt7 + "-" + this.gbt3 + "-" + this.gbt8 + "-" + this.gbt5 + "-" + this.gbt2 + "-" + this.gbt6 + "-" + this.gbt1 + "-" + this.gbt4;
  33.             provider.Clear();

注册码算号机源码以及程序下载:

Popularity: 8% [?]

你可能对下面的内容也感兴趣

  1. 2009年12月21日15:59 | #1

    文章收藏了。

  1. 本文目前尚无任何 trackbacks 和 pingbacks.

3718150474633154929112424204136344840324513627301092612313516391742725322194423144338215828