苏紫方璇 发表于 2015-5-9 16:14

切割大师3.0破解(1)爆破+内存注册机编写

本帖最后由 苏紫方璇 于 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往下找有用的信息。
看这一句
00408448|.E8 A75B0000   call SmartCut.0040DFF4

这个call的参数调用规则可能是fastcall,即前两个参数使用ecx,edx寄存器处理,这里正好ecx是注册码,edx是邮箱。下一行,把al(一般是上一个call的返回值)放到一个变量中去。
往下看
00408476|.807D BB 00    cmp byte ptr ss:,0x0
把刚才放进去的al与0比较,如果相等就跳到刚才错误的提示框。由此可以推测一下00408448这个call就是一个算法比较的call。
F7进去看看。

进入之后 既然是算法call比较,如果存在重启验证的话应该也是走的是这个,所以先F2下一个断点。即便不是也为了以后好找这个地方。然后继续F8单步步过看看有用的信息。
0040E0A7|.E8 CCFAFFFF   call SmartCut.0040DB78                   ;算法么

这里和刚才一样,有一个call,一个参数是邮箱,一个参数是机器码。可能是算法,比较重要,先记下来这个位置。
然后继续F8,刚往下走了两步,就发现出现了一行形似注册码的东西(之后试了一下就是注册码)
0040E0AF|.8B00          mov eax,dword ptr ds:


找到了注册码之后,下边的就不看了,估计就是比较之类的了。
下边说一下改法,
1、爆破,在算法比较call那个地方直接给al赋值1可以达到任意注册码注册成功的爆破效果。但如果程序有暗桩还要处理暗桩。

如图,改成这样,保存到可执行文件即可。
2、运用工具如“keymake”或者自己写程序在0040E0AF处获取注册码后,重新注册。

上图是运用keymake工具进行获取注册码。

上图是自己编写代码进行获取的注册码。
   
--------------------------------------------------------------------------------
注:注册机源代码及编译好的程序已打包好,编译好的可能会被各大杀毒软件报毒,不放心的请尽快删除,然后仔细检查源代码是否存在病毒后重新编译即可。

--------------------------------------------------------------------------------

网盘链接: http://pan.baidu.com/s/1nt7lcm9 密码: 3uja

以上仅是本人的一点愚见,如果有什么错误之处,还请各位大牛指出,谢谢。
最后依然是说了N遍的话,如果觉得好或者学到了什么,还请给我支持和评分,热心和CB就不用藏着掖着了,评分又不会扣自己的分对不{:301_984:}

苏紫方璇 发表于 2015-5-9 16:36

忘了说一句了,源代码在win7 64位+VS2013下编译通过,理论上可在XP以上系统中运行(某些系统需右键管理员权限)

苏紫方璇 发表于 2015-5-13 19:05

soulovess 发表于 2015-5-13 15:12
请教楼主,在2、运用工具如“keymake”或者自己写程序在0040E0AF处获取注册码后,修改数据时:第一字节8B, ...

0040E0AF|.8B00          mov eax,dword ptr ds:
从这里推出来的
第一字节和指令长度没什么说的,宽字符串是指用的字符编码是unicode,地址指针一层是,从上面汇编中可以看出来,在eax中存放的是一个指向字符串地址的指针,所以要先从eax中获取这个地址,然后在从这个地址中获取字符串

soulovess 发表于 2015-5-13 15:12

请教楼主,在2、运用工具如“keymake”或者自己写程序在0040E0AF处获取注册码后,修改数据时:第一字节8B,指令长度2,宽字符串,地址指针1层,是怎么推算出来的。。

速皮尔 发表于 2015-5-9 16:24

看不懂这个教程,有点复杂

假面具 发表于 2015-5-9 16:59

我还是不学了

syy6542320 发表于 2015-5-9 17:22

很好的教程。谢谢分享{:301_996:}

凌飞 发表于 2015-5-9 17:27

http://www.52pojie.cn/thread-355717-1-1.html

有空帮忙把这2个讲下,已给分。

sgh2zlx 发表于 2015-5-9 18:03

好 适合新手

haoren 发表于 2015-5-9 20:45

楼主,我好崇拜你。

kingcloud 发表于 2015-5-9 21:16

楼主威武,学习了

苏紫方璇 发表于 2015-5-10 00:12

haoren 发表于 2015-5-9 20:45
楼主,我好崇拜你。

这个软件的算法我也没有逆出来,不过对于这个软件的破解来说,这样也就差不多了
页: [1] 2 3 4
查看完整版本: 切割大师3.0破解(1)爆破+内存注册机编写