吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 15990|回复: 24
上一主题 下一主题
收起左侧

[原创] [反汇编练习] 160个CrackMe之004(CKme)详细分析

[复制链接]
跳转到指定楼层
楼主
pk8900 发表于 2017-6-2 00:03 回帖奖励
本帖最后由 pk8900 于 2017-6-2 00:11 编辑

目标程序:[反汇编练习] 160个CrackMe之004
最近开始学习这160个CrackMe,今天晚上研究这个004,完成后搜了论坛以前发的贴子,没有完整的对这个CRACKME的解说,于是将的的分析过程分享一下,有不对的地方请指正。
下载地址:http://pan.baidu.com/share/link?shareid=541269&uk=4146939145
程序说明:没有按钮,只能两个文本框,一个用户名,一个注册码,作者提示:如果注册成功,程序中会出现"朱茵"小姐的一幅靓照。
程序运行后界面如下:

输入用户名和注册码后,程序没反应,下断点:GetDlgItemTextA,GetDlgItemTextW,GetWindowTextA,GetWindowTextW无效,TranslateMessage断点,设置条件按键事件可以成功断下,但跟踪了几回没发现有用的代码。
还是用DeDe反编译看一下吧。

程序调用的过程很少,有用的只有Edit2的事件(chkcode)和panel1的两个事件(单击事件和双击事件。)

按DeDe中的反编译事件地址,先对Edit2的事件(chkcode)代码下断点,跟踪后,代码有一个跳转为关键跳转。


00457D2C  |.  8B45 E0       mov eax,[local.8]                        ;  输入的序列号
00457D2F  |.  8B93 18030000 mov edx,dword ptr ds:[ebx+0x318]         ;  黑头Sun Bird11dseloffc-012-OK+用户名
00457D35  |.  E8 52BFFAFF   call CKme.00403C8C    这个CALL里对序列号进行对比,
00457D3A  |.  75 0A         jnz short CKme.00457D46                  ;  关键比较,这个地方会写入“正确”的标志
00457D3C  |.  C783 0C030000>mov dword ptr ds:[ebx+0x30C],0x3E
这些代码已经可以看出,程序的正确注册码就是: 黑头Sun Bird11dseloffc-012-OK+用户名,输入正确后,把[ebx+0x30C]变量值改为0x3E,但接下来并没有显示图片。


接下来对panel1的两个事件(单击事件和双击事件。)代码分别下好断点,点击panel1触发:

00458031  |.  81BE 0C030000>cmp dword ptr ds:[esi+0x30C],0x85        ;  比较注册标志,正确则调用显示图片代码
0045803B  |.  75 76         jnz short CKme.004580B3
0045803D  |.  33DB          xor ebx,ebx
这里比较[esi+0x30C]是否为0x85 ,而之前chkcode中的值是0x3E,所以程序没有什么反应。接下来,取消单击事件的断点,对panel1双击,断了下来。

00457EF5  |.  83BE 0C030000>cmp dword ptr ds:[esi+0x30C],0x3E        ;  检查注册标志,如果是3E则不跳转,改为85
00457EFC  |.  75 0A         jnz short CKme.00457F08                                   
00457EFE  |.  C786 0C030000>mov dword ptr ds:[esi+0x30C],0x85        ;  改为85
这回看明白了,在双击事件中若[esi+0x30C]地址值为0x3E则改为0x85刚好满足单击事件中对[esi+0x30C]地址值的检查。接下来,继续进行程序,对panel1单击,图片显示出来了。


至些程序破解完成,注册码是:黑头Sun Bird11dseloffc-012-OK+你输入的用户名,输入注码必须触发键盘事件(粘贴无效),后对图片框双击,此时如果在OD中对单击事件下了断点,则无法触发双击事件,也就不能把注册标志改为0x85,也就不能至达注册的最后步骤,也许这里就是作者说的“另外这个CKme还作了一点别的手脚”,只有双击事件触发成功后,再点击图片框才能完成最后的注册效果,本程序的重点不在于注册码的算法,而是注册的过程。

免费评分

参与人数 8威望 +1 吾爱币 +16 热心值 +8 收起 理由
610100 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lxf + 1 我很赞同!
aipanpann + 1 + 1 热心回复!
lumou + 1 + 1 用心讨论,共获提升!
WYWZ + 1 + 1 用心讨论,共获提升!
Hmily + 1 + 10 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
灰太狼大王 + 1 + 1 可不可以把001和002也发一下,001我差一个码没找到
海盗小K + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
海盗小K 发表于 2017-6-2 00:19
楼主的分析还有点瑕疵吧。算法没有完整分析出来。

Name随意

Serial = '黑头Sun Bird' + Name的长度加5 + 'dseloffc-012-OK' + Name本身


然后先双击那个Panel,再单击那个Panel,图片就会显示出来了。

提供一组Key:



Name : Kyle

Serial : 黑头Sun Bird9dseloffc-012-OKKyle

楼主再看看吧。祝好运。

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
610100 + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

推荐
 楼主| pk8900 发表于 2018-3-29 17:15 |楼主
preety110 发表于 2018-3-29 15:19
我用的OD1.1的哪个版本,好多东西和楼主显示的不一样,短点的位置也是不一样的。你的push ebp 在457C40,我 ...

不是OD的问题,457C40和4582D0是两个不同位置,4582D0是OEP,457C40是事件代码地址,push ebp 大多数子程序头部都是这句。Ctrl+G,可以转到指定代码位置。
3#
pwp 发表于 2017-6-2 00:27
看着楼主分析得好透彻,佩服得五体投地。我只想问楼主两个问题:1、您学破解多久了?2、您怎么知道汇编每句话的意思?3、汇编语言学了多久?想通过楼主的回复来解除心中的疑虑,进而学习破解技术
4#
灰太狼大王 发表于 2017-6-2 06:29
先收藏了,有空再仔细研究
5#
天隐 发表于 2017-6-2 08:03
很适合新手练习呢,呵呵,我也是新手
6#
 楼主| pk8900 发表于 2017-6-2 08:16 |楼主
算法部分还是真疏忽了,没太深入的分析,'黑头Sun Bird'  和 'dseloffc-012-OK是'两个字符串资源,二楼说的没错。,有时间再更新一下算法部分。
7#
byh3025 发表于 2017-6-2 08:25
楼主分析的好详细,代码分析的也很到位,,DEDE运用的也很纯熟,只是那两个事件地址是怎么知道 的呢?截图没看懂
8#
 楼主| pk8900 发表于 2017-6-2 08:36 |楼主
灰太狼大王 发表于 2017-6-2 06:29
先收藏了,有空再仔细研究

001的论坛已有人发贴,帖子地址:http://www.52pojie.cn/thread-264393-1-1.html
9#
 楼主| pk8900 发表于 2017-6-2 08:40 |楼主
byh3025 发表于 2017-6-2 08:25
楼主分析的好详细,代码分析的也很到位,,DEDE运用的也很纯熟,只是那两个事件地址是怎么知道 的呢?截图 ...


事件   RVA   提示
RVA就是事件代码的地址。
10#
byh3025 发表于 2017-6-2 09:07
pk8900 发表于 2017-6-2 08:40
事件   RVA   提示
RVA就是事件代码的地址。

嗯,谢谢你的解答
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-22 14:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表