反编译一个开心网超级大亨外挂并写出注册机
今天逛论坛的时候看到有个新挂出来,开心网超级大亨外挂,作者是一个斑竹,用了一下软件,不咋会用。可能是我没玩过开心网的新组件超级大亨吧,但是这个组件早在几年前校内网就有了,那时上课还用手机挂机玩过。
软件界面:
玩了一会感觉不好玩,但是对他的独特商品价格数据提取方式很有兴趣,是从一个网页读取的:http://jailu.cn/goods.htm, 这个网页能实时读取到开心网超级大亨最新商品价格信息,确实够高级。用peid查了下,发现是用VB写的,于是拖到Reflector反编译,所有源码都看到了。很简单从窗体启动事件中找到注册码验证算法,如下:
反编译得到的注册码计算算法,VB写的
- ManagementObjectCollection instances = new ManagementClass("Win32_DiskDrive").GetInstances();
- this.HDid = "";
- foreach (ManagementObject obj2 in instances)
- {
- this.HDid = Conversions.ToString(obj2.Properties["Model"].Value);
- break;
- }
- 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";
- MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();
- byte[] bytes = Encoding.UTF8.GetBytes(this.HunHDid);
- byte[] buffer = provider.ComputeHash(bytes);
- this.strtexts = BitConverter.ToString(buffer);
- this.strtextsr = Strings.Replace(this.strtexts, "-", "", 1, -1, CompareMethod.Binary);
- int length = this.strtextsr.Length;
- int start = 0;
- int num7 = length;
- for (int i = 1; i <= num7; i++)
- {
- start++;
- this.Chrstrs = Strings.Mid(this.strtextsr, start, 1);
- this.ChrstrsAll = this.Chrstrs + this.ChrstrsAll;
- }
- this.gbt1 = Strings.Mid(this.ChrstrsAll, 1, 4);
- this.gbt2 = Strings.Mid(this.ChrstrsAll, 5, 4);
- this.gbt3 = Strings.Mid(this.ChrstrsAll, 9, 4);
- this.gbt4 = Strings.Mid(this.ChrstrsAll, 13, 4);
- this.gbt5 = Strings.Mid(this.ChrstrsAll, 0×11, 4);
- this.gbt6 = Strings.Mid(this.ChrstrsAll, 0×15, 4);
- this.gbt7 = Strings.Mid(this.ChrstrsAll, 0×19, 4);
- this.gbt8 = Strings.Mid(this.ChrstrsAll, 0x1d, 4);
- this.ChrstrsAlls = this.gbt7 + "-" + this.gbt3 + "-" + this.gbt8 + "-" + this.gbt5 + "-" + this.gbt2 + "-" + this.gbt6 + "-" + this.gbt1 + "-" + this.gbt4;
- provider.Clear();
于是,张筱祥打开vs2008,将提取的VB代码简单地转换成了C#代码,得到注册机,文末附上注册机的源码以及注册机程序。
简单地修改为C#代码
- ManagementObjectCollection instances = new ManagementClass("Win32_DiskDrive").GetInstances();
- this.HDid = "";
- foreach (ManagementObject obj2 in instances)
- {
- this.HDid = obj2.Properties["Model"].Value.ToString();
- break;
- }
- 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";
- MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();
- byte[] bytes = Encoding.UTF8.GetBytes(this.HunHDid);
- byte[] buffer = provider.ComputeHash(bytes);
- string strtexts = BitConverter.ToString(buffer);
- string strtextsr = strtexts.Replace("-", "");
- int length = strtextsr.Length;
- int start = 0;
- int num7 = length;
- for (int i = 0; i < num7; i++)
- {
- this.Chrstrs = strtextsr.Substring(start, 1);
- this.ChrstrsAll = this.Chrstrs + this.ChrstrsAll;
- start++;
- }
- this.gbt1 = ChrstrsAll.Substring(0, 4);
- this.gbt2 = ChrstrsAll.Substring(4, 4);
- this.gbt3 = ChrstrsAll.Substring(8, 4);
- this.gbt4 = ChrstrsAll.Substring(12, 4);
- this.gbt5 = ChrstrsAll.Substring(16, 4);
- this.gbt6 = ChrstrsAll.Substring(20, 4);
- this.gbt7 = ChrstrsAll.Substring(24, 4);
- this.gbt8 = ChrstrsAll.Substring(28, 4);
- string ChrstrsAlls = this.gbt7 + "-" + this.gbt3 + "-" + this.gbt8 + "-" + this.gbt5 + "-" + this.gbt2 + "-" + this.gbt6 + "-" + this.gbt1 + "-" + this.gbt4;
- provider.Clear();
注册码算号机源码以及程序下载:
Popularity: 8% [?]

文章收藏了。