本帖最后由 mcevilrock 于 2014-8-16 23:52 编辑
TOEFL Conqueror 破解手札 不用平时爆破的方式来破解这款软件,直接放在VS中修复它.并且写出注册机.修复的目的仅仅是给大家介绍一些常见的.net程序导出后的错误如何修复. 当然,你也可以直接使用RE看一遍流程就可以轻松的写出注册机..或者直接暴力. 直接导出程序. 可能是因为在录像的原因比较慢…. OK.在vs中加载. Re先别关,一会还要用到它. 在VS加载下 编译一下看看 没多少东西,先编译一下看看哪里有错 逐个修复
private void _Lambda$__3(objecta0, EventArgs a1) 明显的错.方法名携带了$字符,删掉即可 这种方法就得找一下了. 告诉大家一个比较方便的方法,用RE. 看下出错的类 直接点进去. 处于TOEFL_Conqueror.My 这个命名空间下. 修正这个. 没有这个类.自己建一个吧.快捷键shift+alt+c 展开方法 由于internal 的原因,删掉命名空间.然后using下my的命名空间,快捷键:shift+alt+f10 继续修剩下的 F12,跳转到声明的地方. this.ScanQuestionSetNumber(refnum2, ref num);
ref的标记不同于out 在使用时,必须要先初始化变量. 继续F5 错还比较多. $_ 直接替换它. 命名空间没有引入DLL. 继续修复没初始化的变量 (this.SpeakingTimerInfo.timeLimit* ((DownCountingSeconds) 10)); 乘法运算.明显强制转换出错了. 对于接口类型的IEnumerator直接初始个null [DllImport("winmm.dll",EntryPoint="mciSendStringA",CharSet=CharSet.Ansi, SetLastError=true, ExactSpelling=true)] public static extern intmciSendString([MarshalAs(UnmanagedType.VBByRefStr)] ref string lpstrCommand, [MarshalAs(UnmanagedType.VBByRefStr)]ref stringlpstrReturnString, int uReturnLength, int hwndCallback); 调用外部(非托管)DLL 按照提示修复下 还是一样的.强制类型转换 根据错误继续修复. 继续替换 参数放下面 增加from的命名空间 catch when (?) 这个比较特殊.没有when的语法.一般会写一个通用的异常(Exception)这里把下面的粘上去 继续F5 Virtual 直接删掉. 这种可以先初始化它.也可以直接return new Color() 就用Color color2=new Color(); 这种最好别批量替换.比较容易出问题 按住alt,直接全粘进去. OK.看起来没啥错了.. 编译是没错了.修复下窗体的错 转至代码 this.AutoScaleMode =AutoScaleMode.Font; 没啥好修的.直接注释了. 控件不用virtual修饰. 直接看代码准备写注册机吧 - - 直接看他的构造方法 -
验证授权的部分 如果爆破. MainModule.Registered 直接赋值个true; public static boolRegistered = false; 静态字段(全局有效) 就一个textbox.找找吧 看来授权码是用它生成的. MainModule.SeedStr 搜索他被调用的地方 public static string SeedStr= "10071992"; GenerateMachineId() 创建机器码的部分 private void buttonVerifyRegCode_Click(object sender, EventArgse) 通过错误信息搜索找到验证授权的按钮事件 看下授权算法. public static boolgenuine_SN(int n0, intn1, int n2, intn3, int n4) { int num2 = (n0 + n1) + n2; int num = n3 + n4; return ((num2 == KeyA) & (num== KeyB)); } 算法非常简单… 程序跑起来.咱看看断下来的地址 记录下初始值 public static string SeedStr= "10071992"; // 3111517791 机器码 public static int KeyA =0x7c6; //1111 num2 public static int KeyB =0x4b3; //5737 num 反算来验证下 看来正确了 1000,100,11 看来按钮事件掉了.. d:\Users\Administrator\Documents\TOEFLConqueror\Kernel.bin 还写了个文件… HKEY_CURRENT_USER\Software\AlienLaboratory\TOEFL Conqueror\ 设置注册表的值 程序和注册机就不放了.以免JS拿去卖钱...爱动手的同学你们可以自行尝试,遇见问题跟帖就行. OK,算法没问题. 我想我该换个键盘了…. HaveFun.. Mcevilrock 08-16/2014
由于调试的时候经常按F10按习惯了.导致录像停止,所以分为三段....
百度盘视频:
下载地址.txt
(48 Bytes, 下载次数: 182)
|