能力值:
( LV9,RANK:250 )
|
-
-
2 楼
这软件确实不好下API断点,我试了很久也没找到,不知谁有更好解决办法?
用EXESCOPE查看资源发现程序只有两个FORM,一个是ABOUT,一个是主窗口FORM1。仔细查看FORM1的各项资源,发现注册按钮对应的是Button2,响应事件是Button2Click。然后用WINHEX打开程序,查找Button2Click,在串字符前有44 14 40 00,明显反过来就是00401444,也就是说事件从00401444开始。
于是用OD载入程序,在00401444处下断点,程序果然断下。F8运行到下面:
004015F7 PUSH EAX ; /Arg1
004015F8 INC DWORD PTR SS:[EBP-64] ; |
004015FB LEA EAX,DWORD PTR SS:[EBP-8] ; |
004015FE MOV ECX,3 ; |注意数字3
00401603 XOR EDX,EDX ; |
00401605 CALL Crackme4.00410173 ; \取输入码前3位
0040160A LEA EAX,DWORD PTR SS:[EBP-2C]
0040160D LEA EDX,DWORD PTR SS:[EBP-14]
00401610 CALL Crackme4.0040F7D8 ; 比较前3位是否为CA-
00401615 PUSH EAX ; /Arg1
00401616 DEC DWORD PTR SS:[EBP-64] ; |
00401619 LEA EAX,DWORD PTR SS:[EBP-2C] ; |
0040161C MOV EDX,2 ; |
00401621 CALL Crackme4.0040F6F8 ; \Crackme4.0040F6F8
00401626 POP ECX
00401627 TEST CL,CL
00401629 JE Crackme4.00401955
0040162F MOV WORD PTR SS:[EBP-70],98
00401635 LEA EAX,DWORD PTR SS:[EBP-30]
00401638 CALL Crackme4.004019F8
0040163D PUSH EAX
0040163E INC DWORD PTR SS:[EBP-64]
00401641 LEA EAX,DWORD PTR SS:[EBP-8]
00401644 CALL Crackme4.0040F952
00401649 MOV EDX,EAX ; |
0040164B ADD EDX,-4 ; |
0040164E LEA EAX,DWORD PTR SS:[EBP-8] ; |
00401651 MOV ECX,5 ; |
00401656 CALL Crackme4.00410173 ; \取输入码后5位
0040165B LEA EAX,DWORD PTR SS:[EBP-30]
0040165E LEA EDX,DWORD PTR SS:[EBP-18]
00401661 CALL Crackme4.0040F7D8 ; 比较后5位是否为-3914
00401666 PUSH EAX ; /Arg1
00401667 DEC DWORD PTR SS:[EBP-64] ; |
0040166A LEA EAX,DWORD PTR SS:[EBP-30] ; |
0040166D MOV EDX,2 ; |
00401672 CALL Crackme4.0040F6F8 ; \Crackme4.0040F6F8
00401677 POP ECX
00401678 TEST CL,CL
0040167A JE Crackme4.00401955
00401680 XOR EAX,EAX
00401682 MOV DWORD PTR SS:[EBP-8C],EAX
00401688 MOV WORD PTR SS:[EBP-70],14
0040168E XOR EDX,EDX
00401690 MOV DWORD PTR SS:[EBP-90],EDX
00401696 JMP SHORT Crackme4.004016B6
00401698 /LEA EAX,DWORD PTR SS:[EBP-4]
0040169B |CALL Crackme4.00401A28
004016A0 |MOV EDX,DWORD PTR SS:[EBP-90]
004016A6 |MOVSX ECX,BYTE PTR DS:[EAX+EDX] ; 逐字取NAME
004016AA |ADD DWORD PTR SS:[EBP-8C],ECX ; 相加
004016B0 |INC DWORD PTR SS:[EBP-90]
004016B6 LEA EAX,DWORD PTR SS:[EBP-4]
004016B9 |CALL Crackme4.0040F952
004016BE |CMP EAX,DWORD PTR SS:[EBP-90]
004016C4 \JG SHORT Crackme4.00401698 ; 循环
004016C6 MOV EDX,DWORD PTR SS:[EBP-8C] ; 结果保存在EDX中
004016CC IMUL EDX,DWORD PTR SS:[EBP-8C] ; 平方
004016D3 ADD EDX,0AC ; 再加0AC
004016D9 MOV DWORD PTR SS:[EBP-8C],EDX ; 结果保存在[EBP-8C]中
004016DF MOV WORD PTR SS:[EBP-70],0A4
004016E5 LEA EAX,DWORD PTR SS:[EBP-34]
004016E8 MOV EDX,DWORD PTR SS:[EBP-8C]
004016EE CALL Crackme4.0040F625 ; 将计算结果转化为字符串
004016F3 INC DWORD PTR SS:[EBP-64]
004016F6 LEA EDX,DWORD PTR SS:[EBP-34]
004016F9 LEA EAX,DWORD PTR SS:[EBP-C]
004016FC CALL Crackme4.0040F727
00401701 DEC DWORD PTR SS:[EBP-64]
00401704 LEA EAX,DWORD PTR SS:[EBP-34]
00401707 MOV EDX,2
0040170C CALL Crackme4.0040F6F8
00401711 MOV WORD PTR SS:[EBP-70],0B0
00401717 LEA EAX,DWORD PTR SS:[EBP-38]
0040171A CALL Crackme4.004019F8
0040171F MOV ECX,EAX
00401721 INC DWORD PTR SS:[EBP-64]
00401724 LEA EDX,DWORD PTR SS:[EBP-C]
00401727 LEA EAX,DWORD PTR SS:[EBP-14]
0040172A CALL Crackme4.0040F74F
0040172F LEA EDX,DWORD PTR SS:[EBP-38]
00401732 PUSH EDX
00401733 LEA EAX,DWORD PTR SS:[EBP-3C]
00401736 CALL Crackme4.004019F8
0040173B MOV ECX,EAX
0040173D INC DWORD PTR SS:[EBP-64]
00401740 LEA EDX,DWORD PTR SS:[EBP-18]
00401743 POP EAX
00401744 CALL Crackme4.0040F74F
00401749 LEA EDX,DWORD PTR SS:[EBP-3C]
0040174C LEA EAX,DWORD PTR SS:[EBP-10]
0040174F CALL Crackme4.0040F727
00401754 DEC DWORD PTR SS:[EBP-64]
00401757 LEA EAX,DWORD PTR SS:[EBP-3C]
0040175A MOV EDX,2
0040175F CALL Crackme4.0040F6F8 ; 将NAME的计算结果与前后两段拼成正确注册码
00401764 DEC DWORD PTR SS:[EBP-64]
00401767 LEA EAX,DWORD PTR SS:[EBP-38]
0040176A MOV EDX,2
0040176F CALL Crackme4.0040F6F8
00401774 LEA EDX,DWORD PTR SS:[EBP-10]
00401777 LEA EAX,DWORD PTR SS:[EBP-8]
0040177A CALL Crackme4.0040F7D8 ; 完整比较输入码与正确注册码
0040177F TEST AL,AL
00401781 JE Crackme4.00401955 ; 相等则不跳
Name: lzqgj
SN:CA-304876-3914
不正确之处请指教。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
感谢lzqgj!
这个crackme 好象还对DeDe做了手脚.
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
仔细查看FORM1的各项资源,发现注册按钮对应的是Button2,响应事件是Button2Click。
怎么找到的。我怎么也找不到啊。我用6.41汉化版
|