吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6141|回复: 9
收起左侧

[原创] 初练160个CrakeMe程序之005

[复制链接]
海天一色001 发表于 2017-5-8 10:02
本帖最后由 海天一色001 于 2017-5-8 10:38 编辑

第五个程序,先运行看看情况:注册名是个什么鬼?不管,输入“52pojie.cn”,点击“注册”,没反应。
01.png
查壳,有UPX的壳:
02.png
这就是第一层的设防了!没说的,脱之!先用工具脱,很简单的UPX壳,很轻松就脱掉了。
03.png
打开,能正常运行,载入OD,熟悉的OEP特征出来了。
04.png
再试着自己手脱一下练练:载入OD中,用ESP定律,首先F8单步一下,此时寄存器窗口中ESP变红了!
05.png          06.png
此时右键点击,选择数据窗口跟随,再在数据窗口中右键下硬件访问Word断点,F9运行,程序断下来至此处:
07.png
观察00477B8F和0044768C,这两个地址距离相当远,跳过去应该就是OEP了:
08.png
然后用OD插件脱壳,保存为CKme002_1.exe,运行一下,可以正常使用;再查壳,已经没有壳了。显示是Delphi的程序。ckme002_1.exe导入OD中,习惯性地先查字符串,又找到了一堆相关的提示,
09.png
很熟悉的提示啊!有4个未成功提示,两个成功提示,先爆破,自然是看看成功提示了!双击“注册了”的地址,进入CPU窗口,
10.png
向上查找跳转指令,竟然有5个跳过了成功的指令! 3je2jnz,都跳到了0044747F 处:
11.png
层层设防可能就是这5个跳吧!加上壳,6层设防了!真令人头疼啊!每个跳前都有一个比较指令,问题是堆栈段的地址是个什么鬼?!又在什么地方给它赋的值?!在第五个跳转下面的指令又是干什么的?只能说是正确注册的相关参数计算吧。先爆破试试:将这五个跳逐一nop掉:先试第一个,在004473F1地址处下断,并将指令用nop填充,如下图所示:
12.png
F9运行,点击图片框,仍是失败!
13.png
再点击确定,还未有其他动作,程序又断在了这里!!继续F9,什么动作都没有,稍等一小会儿,程序又断在了004473F1处!猜测程序中可能有定时器,循环调用本地址,所以总断在这里。因为只nop掉这一句,下面还有4句跳过了成功,所以还是失败,那么将下面4句跳也改成nop试一试:
14.png
这次再F9运行,下面的注册按钮变成了“注册了”的字样,爆破成功了。
15.png
返回OD,保存成CKme002_NOP.exe,打开CKme002_NOP.exe,随意输入注册名,怎么还是“注册尚未成功”的提示?哪里又错了?点击确定,下面的“注册”变成了“注册了”!哦,忘了刚才猜想的可能有时间控件在起作用,需要等会才能看到结果。关闭程序,重新打开,这次不输入注册名,等了一小会儿,果然变成了“注册了”。OD中对上面nop掉的代码段仔细观察,发现这些指令不执行后,都到了00447429处开始执行,那么我可以在第一个跳处直接让它无条件跳至00447429,下面几个跳就不再执行了,试一下:
[Asm] 纯文本查看 复制代码
004473F1   /0F84 88000000   je CKme002_.0044747F                     ; 第一个跳过了成功,改为jmp CKme002_.00447429
004473F7   |81BB 08030000 0>cmp dword ptr ds:[ebx+0x308],0x230D
00447401   |74 7C           je short CKme002_.0044747F               ; 第二个跳过了成功
00447403   |81BB 10030000 9>cmp dword ptr ds:[ebx+0x310],0xF94
0044740D   |75 70           jnz short CKme002_.0044747F              ; 第三个跳过了成功
0044740F   |8B83 18030000   mov eax,dword ptr ds:[ebx+0x318]
00447415   |3B83 14030000   cmp eax,dword ptr ds:[ebx+0x314]
0044741B   |75 62           jnz short CKme002_.0044747F              ; 第四个跳过了成功
0044741D   |81BB 1C030000 E>cmp dword ptr ds:[ebx+0x31C],0x3E7
00447427   |74 56           je short CKme002_.0044747F               ; 第五个跳过了成功
00447429    33D2            xor edx,edx

16.png
OD自动变成了jmp short CKme002_00447429F9运行,仍是不断在004473F1处不断的暂停,F9运行,显示“注册了”,说明jmp爆破也成功了。保存成新文件! 接下来是找一找注册算法了。在数据窗口中看到一大堆这样的数据:Image3MouseDownImage4MouseDownTimer2Timer等事件(控件)名称,回想上一个ajjcrackme,对这一个明显有些害怕,太麻烦了!
17.png
OD中还是找不到该如何下手,还是利用专门的工具吧:DarkDe4
18.png
FormCreate是窗体创建事件,Timer1Timer是第一个时钟事件,共有12个事件!太多了!上一个程序好歹还有个chkcode,猜测是检查注册码的,这个倒好,完全是编程语言默认的事件名称,想有个参考都没有啊!没办法,挨着查看吧!分别双击这12个过程(事件)的名称,出现如下界面,记下每个过程(事件)的始终地址,在OD中找到相应位置,做好注释,在每个起始位置下上断点(防止自己找不到位置)!
19.png
从上图和OD中看出,那个注册按钮基本上没起什么用,只有一个赋值就进入了系统领空,不需要费劲去看;
接着看Timer2Timer事件,整个是5个跳过注册成功的代码呀!怪不得在爆破时还没动作呢就断下来了,原来是时间控件在起作用!
Image1MouseDownImage4MouseDown过程(事件),代码均一致,作用应该是点击图片框中4个不同的图片时判断未注册成功时就弹出注册失败的消息框;
FormMouseMove过程(事件)里,一大堆的各种条件的跳和call把我绕晕了!看不懂了!
Edit2DblClick又是干什么用的?从哪里来的Edit2???其他几个过程(事件)里面也是看不懂!!!
水平太差了!这才第5个,已经弄不明白了,下面的可能就更难了。
没办法,从论坛里搜一下,有好多关于这个CM的帖子,基本上都是爆破完事,跟我水平差不多啊(自我陶醉一下,鼓舞自己吧)!
认真地看了Pnmke大神之作《160CrackMe练手之005》,链接是:http://www.52pojie.cn/thread-366291-1-1.html,太牛了!里面有具体的注册流程分析,虽然我很多都看不明白,照着去做也时不时出错,找不到文中的地址(毕竟是新手),先收藏下来,待以后将编程语言及其他各种工具熟悉之后再来继续学习。
自己的005练习附件: 005.rar (576.2 KB, 下载次数: 16) ,包括ajj大神的原程序,我脱壳后的程序及爆破后的程序。
百度链接是: http://pan.baidu.com/s/1skMkJY9 密码: 86pm,个人学习过的crackme程序都在里面。

免费评分

参与人数 5吾爱币 +8 热心值 +4 收起 理由
orachard + 1 这个我也只会爆破,这注册程序写的优点操蛋,用时间来调试是否注册的,肯定.
Hmily + 4 + 1 用心讨论,共获提升!
and~~ + 1 + 1 我很赞同!
夏日miku + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
周天易 + 1 + 1 热心回复!

查看全部评分

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

兰陵笑笑生 发表于 2017-5-8 10:16
顶顶顶,支持楼主这样子的!
伸个大懒腰 发表于 2017-5-8 10:47
RunningMan 发表于 2017-5-8 10:55
夏雨微凉 发表于 2017-5-8 12:59
学习了!      
车只黑大炮啊 发表于 2017-5-8 14:49
好强,期待后面的crake
周天易 发表于 2017-5-8 17:30
谢谢分享
biscuitlx 发表于 2017-5-9 00:47
支持楼主
阿1 发表于 2017-6-2 16:25
为什么我脱壳了不可以运行呢
阿1 发表于 2017-6-2 16:25
楼主你QQ多少
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 07:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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