分析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 *****
大牛,这贴子设置的这么高级,有这个必要吗? 这贴子设置的这么高级, 才6000分啊,不急, 我541分了。 heizihui,本帖隐藏的内容需要积分高于 6000 才可浏览,您当前积分为 561 heizihui 发表于 2014-9-4 08:26
heizihui,本帖隐藏的内容需要积分高于 6000 才可浏览,您当前积分为 561
只过了第一关,哈哈,后面就过不去了
鼓励。恭喜。
有附件吗?我下来试试
默默来支持学习
设得也太高了吧,呵呵,纯支持了