本帖最后由 苏紫方璇 于 2015-5-12 18:25 编辑
前几天有人给我留言,让我看看这个有思路么http://www.52pojie.cn/thread-336827-1-1.html
在他的帖子中他只是爆破了一部分,重启验证也没有动。
下边是教程啦。。。。。
--------------------------------------------------------------------------------
【文章标题】: 切割大师3.0破解
【文章作者】: 苏紫方璇
【下载地址】: 见下方网盘
【保护方式】: 无
【使用工具】: OD,PEID,KeyMaker,VC++
--------------------------------------------------------------------------------
【详细过程】
首先使用PEID进行查壳
Borland C++编写的程序 没有加壳
下面使用od载入,并且运行。
程序弹出注册框要求注册,随便填写邮箱和序列号,点击注册,程序提示“无效的序列号”
这时采用“f12暂停法”即不关闭提示框,在od上按f12断下程序
程序断下后,按下图上的K按钮,显示调用堆栈,主程序调用api的那一行,按鼠标右键,显示调用。
程序来到了这个位置
向上翻找一下,在00408563这个位置可以从上边跳到这里,而在这个上边有一个call和刚才的一样都是调用MessageBoxW显示提示框。
继续往上,找到函数头部,f2下断点。运行程序,在程序中点击确定,并再次点击注册程序断下。
单步F8往下找有用的信息。
看这一句
[Asm] 纯文本查看 复制代码 00408448 |. E8 A75B0000 call SmartCut.0040DFF4
这个call的参数调用规则可能是fastcall,即前两个参数使用ecx,edx寄存器处理,这里正好ecx是注册码,edx是邮箱。下一行,把al(一般是上一个call的返回值)放到一个变量中去。
往下看
[Asm] 纯文本查看 复制代码 00408476 |. 807D BB 00 cmp byte ptr ss:[ebp-0x45],0x0
把刚才放进去的al与0比较,如果相等就跳到刚才错误的提示框。由此可以推测一下00408448这个call就是一个算法比较的call。
F7进去看看。
进入之后 既然是算法call比较,如果存在重启验证的话应该也是走的是这个,所以先F2下一个断点。即便不是也为了以后好找这个地方。然后继续F8单步步过看看有用的信息。
[Asm] 纯文本查看 复制代码 0040E0A7 |. E8 CCFAFFFF call SmartCut.0040DB78 ; 算法么
这里和刚才一样,有一个call,一个参数是邮箱,一个参数是机器码。可能是算法,比较重要,先记下来这个位置。
然后继续F8,刚往下走了两步,就发现出现了一行形似注册码的东西(之后试了一下就是注册码)
[Asm] 纯文本查看 复制代码 0040E0AF |. 8B00 mov eax,dword ptr ds:[eax]
找到了注册码之后,下边的就不看了,估计就是比较之类的了。
下边说一下改法,
1、爆破,在算法比较call那个地方直接给al赋值1可以达到任意注册码注册成功的爆破效果。但如果程序有暗桩还要处理暗桩。
如图,改成这样,保存到可执行文件即可。
2、运用工具如“keymake”或者自己写程序在0040E0AF处获取注册码后,重新注册。
上图是运用keymake工具进行获取注册码。
上图是自己编写代码进行获取的注册码。
--------------------------------------------------------------------------------
注:注册机源代码及编译好的程序已打包好,编译好的可能会被各大杀毒软件报毒,不放心的请尽快删除,然后仔细检查源代码是否存在病毒后重新编译即可。
--------------------------------------------------------------------------------
网盘链接: http://pan.baidu.com/s/1nt7lcm9 密码: 3uja
以上仅是本人的一点愚见,如果有什么错误之处,还请各位大牛指出,谢谢。
最后依然是说了N遍的话,如果觉得好或者学到了什么,还请给我支持和评分,热心和CB就不用藏着掖着了,评分又不会扣自己的分对不
|