crackvip 发表于 2014-9-4 03:43:49

分析CrackMe2014#001写注册机【Delphi】

本帖最后由 crackvip 于 2014-9-4 09:35 编辑

PYG跨年度KeyGenMe001 -- 看谁更优雅 小伙伴们踊跃参加~~
https://www.chinapyg.com/thread-72325-1-1.html
(出处: 中国飘云阁(PYG官方论坛) )


此CrackMe 总分 100

特此声明:
A.不得利用CM自身任何BUG绕过注册机制--允许绕过NAG
B.若直接修改主程序(算法部分不得修改),视修改字节多少评分
C.分析好的文章评优秀、精华,奖励PYB


1.过第一关--20分
2.过第二关--10分
3.成功进入界面--10分
4.分析算法--30分
5.写出注册机--20分
6.不主动修改EXE任何字节完成所有要求--10分
7.若采用loader加载,只允许patch nag部分,其他部分一切视为无效!

对于第6点,各位可以充分采用猥琐的方法~~
过关要求,只要XP 32Bit能成功即可


=========第一关============
004561A1   .B9 E0624500   MOV   ECX, CrackMe.004562E0            ;中国飘云阁
004561A6   .BA F4624500   MOV   EDX, CrackMe.004562F4            ;请输入密码
004561AB   .B8 08634500   MOV   EAX, CrackMe.00456308            ;第一关
004561B0   .E8 776FFDFF   CALL    CrackMe.0042D12C               ;弹出第一关注册提示
004561B5   .8D55 E4       LEA   EDX, DWORD PTR SS:
004561B8   .8B45 FC       MOV   EAX, DWORD PTR SS:
004561BB   .E8 2421FBFF   CALL    CrackMe.004082E4
004561C0   .8B45 E4       MOV   EAX, DWORD PTR SS:
004561C3   .BA 18634500   MOV   EDX, CrackMe.00456318            ;-
004561C8   .E8 93FEFFFF   CALL    CrackMe.00456060               ;取最后一组
004561CD   .8BD8          MOV   EBX, EAX
004561CF   .33C0          XOR   EAX, EAX
004561D1   .55            PUSH    EBP
004561D2   .68 7A624500   PUSH    CrackMe.0045627A
004561D7   .64:FF30       PUSH    DWORD PTR FS:
004561DA   .64:8920       MOV   DWORD PTR FS:, ESP
004561DD   .8BC3          MOV   EAX, EBX
004561DF   .8B10          MOV   EDX, DWORD PTR DS:
004561E1   .FF52 14       CALL    NEAR DWORD PTR DS:
004561E4   .83F8 03       CMP   EAX, 0x3
004561E7   .0F8E 81000000 JLE   CrackMe.0045626E               ;-小于3则跳
004561ED   .8D4D E0       LEA   ECX, DWORD PTR SS:
004561F0   .33D2          XOR   EDX, EDX
004561F2   .8BC3          MOV   EAX, EBX
004561F4   .8B30          MOV   ESI, DWORD PTR DS:
004561F6   .FF56 0C       CALL    NEAR DWORD PTR DS:      ;取第一组
004561F9   .8B45 E0       MOV   EAX, DWORD PTR SS:
004561FC   .E8 1F23FBFF   CALL    CrackMe.00408520               ;转成十六进制放到EAX
00456201   .8945 F8       MOV   DWORD PTR SS:, EAX      ;放在EBP-8的位置
00456204   .8D4D DC       LEA   ECX, DWORD PTR SS:
00456207   .BA 01000000   MOV   EDX, 0x1
0045620C   .8BC3          MOV   EAX, EBX
0045620E   .8B30          MOV   ESI, DWORD PTR DS:
00456210   .FF56 0C       CALL    NEAR DWORD PTR DS:
00456213   .8B45 DC       MOV   EAX, DWORD PTR SS:   ;第二组
00456216   .E8 0523FBFF   CALL    CrackMe.00408520
0045621B   .8945 F4       MOV   DWORD PTR SS:, EAX      ;转成16进制放EAX
0045621E   .8D4D D8       LEA   ECX, DWORD PTR SS:
00456221   .BA 02000000   MOV   EDX, 0x2
00456226   .8BC3          MOV   EAX, EBX
00456228   .8B30          MOV   ESI, DWORD PTR DS:
0045622A   .FF56 0C       CALL    NEAR DWORD PTR DS:      ;第三组
0045622D   .8B45 D8       MOV   EAX, DWORD PTR SS:
00456230   .E8 EB22FBFF   CALL    CrackMe.00408520               ;转成16进制放EAX
00456235   .8945 F0       MOV   DWORD PTR SS:, EAX
00456238   .8D4D D4       LEA   ECX, DWORD PTR SS:
0045623B   .BA 03000000   MOV   EDX, 0x3
00456240   .8BC3          MOV   EAX, EBX
00456242   .8B30          MOV   ESI, DWORD PTR DS:
00456244   .FF56 0C       CALL    NEAR DWORD PTR DS:      ;第四组
00456247   .8B45 D4       MOV   EAX, DWORD PTR SS:
0045624A   .E8 D122FBFF   CALL    CrackMe.00408520
0045624F   .8945 E8       MOV   DWORD PTR SS:, EAX   ;最后一组放在EBP-18
00456252   .8BC3          MOV   EAX, EBX
00456254   .E8 3FD4FAFF   CALL    CrackMe.00403698
00456259   .8B45 F8       MOV   EAX, DWORD PTR SS:      ;第一组
0045625C   .0345 F4       ADD   EAX, DWORD PTR SS:      ;第二组,相加
0045625F   .F76D F0       IMUL    DWORD PTR SS:          ;*
00456262   .D1F8          SAR   EAX, 1                           ;右移
00456264   .79 03         JNS   SHORT CrackMe.00456269         ;这个是什么意思?如果正数则转移,如果不为负数则跳
00456266   .83D0 00       ADC   EAX, 0x0                         ;进位加法?进位加0
00456269   >8945 EC       MOV   DWORD PTR SS:, EAX   ;放在EBP-14的位置作为标志?
0045626C   .EB 02         JMP   SHORT CrackMe.00456270
0045626E   >01E4          ADD   ESP, ESP
00456270   >33C0          XOR   EAX, EAX                         ;清0
00456272   .5A            POP   EDX
00456273   .59            POP   ECX
00456274   .59            POP   ECX
00456275   .64:8910       MOV   DWORD PTR FS:, EDX
00456278   .EB 0C         JMP   SHORT CrackMe.00456286
0045627A   .^ E9 CDD8FAFF   JMP   CrackMe.00403B4C
0045627F   .01E4          ADD   ESP, ESP
00456281   .E8 2EDCFAFF   CALL    CrackMe.00403EB4
00456286   >837D F8 00    CMP   DWORD PTR SS:, 0x0      ;第一组,与0判断大小,看是否输入的都是0
0045628A   .7E 14         JLE   SHORT CrackMe.004562A0
0045628C   .837D F4 00    CMP   DWORD PTR SS:, 0x0      ;第2组,与0判断大小,看是否输入的都是0
00456290   .7E 0E         JLE   SHORT CrackMe.004562A0
00456292   .837D F0 00    CMP   DWORD PTR SS:, 0x0   ;第3组,与0判断大小,看是否输入的都是0
00456296   .7E 08         JLE   SHORT CrackMe.004562A0
00456298   .8B45 EC       MOV   EAX, DWORD PTR SS:   ;标志
0045629B   .3B45 E8       CMP   EAX, DWORD PTR SS:   ;第四组
0045629E   .74 02         JE      SHORT CrackMe.004562A2         ;第四组与标志是否相等,不相等则挂
004562A0   >01E4          ADD   ESP, ESP
**** Hidden Message *****





**** Hidden Message *****


DragonLoft 发表于 2014-9-4 04:37:43

大牛,这贴子设置的这么高级,有这个必要吗?

wanap571 发表于 2014-9-4 07:39:16

这贴子设置的这么高级,

vipcrack 发表于 2014-9-4 08:04:22

才6000分啊,不急, 我541分了。

heizihui 发表于 2014-9-4 08:26:35

heizihui,本帖隐藏的内容需要积分高于 6000 才可浏览,您当前积分为 561

theend 发表于 2014-9-4 08:38:08

heizihui 发表于 2014-9-4 08:26
heizihui,本帖隐藏的内容需要积分高于 6000 才可浏览,您当前积分为 561

只过了第一关,哈哈,后面就过不去了

tree_fly 发表于 2014-9-4 08:51:37

鼓励。恭喜。

pklong007 发表于 2014-9-4 09:57:21

有附件吗?我下来试试

逍遥枷锁 发表于 2014-9-4 12:22:21

默默来支持学习

qinccckencn 发表于 2014-9-4 20:54:55

设得也太高了吧,呵呵,纯支持了
页: [1] 2 3
查看完整版本: 分析CrackMe2014#001写注册机【Delphi】