- UID
- 4148
注册时间2005-11-1
阅读权限20
最后登录1970-1-1
以武会友
该用户从未签到
|
【破文标题】对pentacle[PYG]作的CRACKME
【破文作者】lfq168
【作者邮箱】[email protected]
【作者主页】
【破解工具】OD1.1,PEID0.94
【破解平台】WinXP SP2
【软件名称】CRACKME
【软件大小】201K
【原版下载】http://ocn.e5v.com/cgi-bin/bbs/c ... 0230324&page=30
【保护方式】FSG1.33加壳
【软件简介】
------------------------------------------------------------------------
【破解过程】1.用PEID0.94查壳FSG 1.33 -> dulek/xt,脱壳我就不说了,太容易了我花了5秒.直脱
2.脱壳查到软件是用Borland Delphi 6.0 - 7.0,用DEDE3.5反汇编,我晕,没东西的,只能建文档,很容易知道进入口
yCrackeMe2_1
TForm1.FormCreate 00454134
TForm1.Button1Click 004542B0
TForm1.Button2Click 0045449C
就看TForm1.Button1Click 004542B0用OD载入BP 4542B0就可以中断了
3.重点分析:
004542B0 /. 55 push ebp
004542B1 |. 8BEC mov ebp,esp
004542B3 |. B9 06000000 mov ecx,6
004542B8 |> 6A 00 /push 0
004542BA |. 6A 00 |push 0
004542BC |. 49 |dec ecx
004542BD |.^ 75 F9 \jnz short W_MyCrac.00454>
004542BF |. 53 push ebx
004542C0 |. 8BD8 mov ebx,eax
004542C2 |. 33C0 xor eax,eax
004542C4 |. 55 push ebp
004542C5 |. 68 8D444500 push W_MyCrac.0045448D
004542CA |. 64:FF30 push dword ptr fs:[eax]
004542CD |. 64:8920 mov dword ptr fs:[eax],es>
004542D0 |. 8D55 FC lea edx,dword ptr ss:[ebp>
004542D3 |. 8B83 F8020000 mov eax,dword ptr ds:[ebx>
004542D9 |. E8 82EEFDFF call W_MyCrac.00433160 ; 取第一个框的假码
004542DE |. 8B45 FC mov eax,dword ptr ss:[ebp>
004542E1 |. 50 push eax ; 假码进盏
004542E2 |. 8D55 F4 lea edx,dword ptr ss:[ebp>
004542E5 |. 8B83 14030000 mov eax,dword ptr ds:[ebx>
004542EB |. E8 70EEFDFF call W_MyCrac.00433160 ; 这里是取CPU的即时速度
004542F0 |. 8B45 F4 mov eax,dword ptr ss:[ebp>
004542F3 |. E8 4840FBFF call W_MyCrac.00408340
004542F8 |. 35 39300000 xor eax,3039 ; 把CPU即时速度的十进制与3039异或
004542FD |. 8D55 F8 lea edx,dword ptr ss:[ebp>
00454300 |. E8 FF3EFBFF call W_MyCrac.00408204 ; 这里是把求到的CPU即时速度的十六进制转成十进制
00454305 |. 8B55 F8 mov edx,dword ptr ss:[ebp>
00454308 |. 58 pop eax
00454309 |. E8 3A03FBFF call W_MyCrac.00404648 ; 这里是比较第一框的假码和CPU即时速度和3039异或后的值是否相等
0045430E 0F85 E0000000 jnz W_MyCrac.004543F4 ; <--第一框的爆破点
00454314 |. 8D55 F0 lea edx,dword ptr ss:[ebp>
00454317 |. 8B83 FC020000 mov eax,dword ptr ds:[ebx>
0045431D |. E8 3EEEFDFF call W_MyCrac.00433160
00454322 |. 8B45 F0 mov eax,dword ptr ss:[ebp>; 取第二框的值
00454325 |. 50 push eax
00454326 |. 8D55 E8 lea edx,dword ptr ss:[ebp>
00454329 |. 8B83 14030000 mov eax,dword ptr ds:[ebx>
0045432F |. E8 2CEEFDFF call W_MyCrac.00433160 ; 我晕,也是取CPU即时速度
00454334 |. 8B45 E8 mov eax,dword ptr ss:[ebp>
00454337 |. E8 0440FBFF call W_MyCrac.00408340
0045433C |. 35 32090100 xor eax,10932 ; 把取到的即时值与10932相异或
00454341 |. 8D55 EC lea edx,dword ptr ss:[ebp>
00454344 |. E8 BB3EFBFF call W_MyCrac.00408204 ; 把异或出来的值转十进制
00454349 |. 8B55 EC mov edx,dword ptr ss:[ebp>
0045434C |. 58 pop eax
0045434D |. E8 F602FBFF call W_MyCrac.00404648
00454352 0F85 9C000000 jnz W_MyCrac.004543F4 ; <--第二框的爆破点
00454358 |. 8D55 E4 lea edx,dword ptr ss:[ebp>
0045435B |. 8B83 00030000 mov eax,dword ptr ds:[ebx>
00454361 |. E8 FAEDFDFF call W_MyCrac.00433160
00454366 |. 8B45 E4 mov eax,dword ptr ss:[ebp>; 取第三个框的假码
00454369 |. 50 push eax
0045436A |. 8D55 DC lea edx,dword ptr ss:[ebp>
0045436D |. 8B83 14030000 mov eax,dword ptr ds:[ebx>
00454373 |. E8 E8EDFDFF call W_MyCrac.00433160 ; 取CPU即时速度
00454378 |. 8B45 DC mov eax,dword ptr ss:[ebp>
0045437B |. E8 C03FFBFF call W_MyCrac.00408340
00454380 |. 35 52E70000 xor eax,0E752 ; 和0E752异或
00454385 |. 8D55 E0 lea edx,dword ptr ss:[ebp>
00454388 |. E8 773EFBFF call W_MyCrac.00408204
0045438D |. 8B55 E0 mov edx,dword ptr ss:[ebp>
00454390 |. 58 pop eax
00454391 |. E8 B202FBFF call W_MyCrac.00404648
00454396 75 5C jnz short W_MyCrac.004543>; <---第三个框的爆破点
00454398 |. 8D55 D8 lea edx,dword ptr ss:[ebp>
0045439B |. 8B83 04030000 mov eax,dword ptr ds:[ebx>
004543A1 |. E8 BAEDFDFF call W_MyCrac.00433160
004543A6 |. 8B45 D8 mov eax,dword ptr ss:[ebp>; 取第四个框的假码
004543A9 |. 50 push eax
004543AA |. 8D55 D0 lea edx,dword ptr ss:[ebp>
004543AD |. 8B83 14030000 mov eax,dword ptr ds:[ebx>
004543B3 |. E8 A8EDFDFF call W_MyCrac.00433160 ; 取CPU即时速度
004543B8 |. 8B45 D0 mov eax,dword ptr ss:[ebp>
004543BB |. E8 803FFBFF call W_MyCrac.00408340
004543C0 |. 35 83CF0000 xor eax,0CF83 ; 把值与cf83异或
004543C5 |. 8D55 D4 lea edx,dword ptr ss:[ebp>
004543C8 |. E8 373EFBFF call W_MyCrac.00408204
004543CD |. 8B55 D4 mov edx,dword ptr ss:[ebp>
004543D0 |. 58 pop eax
004543D1 |. E8 7202FBFF call W_MyCrac.00404648
004543D6 75 1C jnz short W_MyCrac.004543>; <---第四个框的爆破点
004543D8 |. 33D2 xor edx,edx ; 只要把4个改成JMP或者把第一个JNZ改JMP 4543e5就OK了
004543DA |. 8B83 08030000 mov eax,dword ptr ds:[ebx>
004543E0 |. E8 9BECFDFF call W_MyCrac.00433080
004543E5 |. B2 01 mov dl,1
004543E7 |. 8B83 18030000 mov eax,dword ptr ds:[ebx>
004543ED |. E8 8EECFDFF call W_MyCrac.00433080
004543F2 |. EB 34 jmp short W_MyCrac.004544>
004543F4 |> 33D2 xor edx,edx
004543F6 |. 8B83 F8020000 mov eax,dword ptr ds:[ebx>
004543FC |. E8 8FEDFDFF call W_MyCrac.00433190
00454401 |. 33D2 xor edx,edx
00454403 |. 8B83 FC020000 mov eax,dword ptr ds:[ebx>
00454409 |. E8 82EDFDFF call W_MyCrac.00433190
0045440E |. 33D2 xor edx,edx
00454410 |. 8B83 00030000 mov eax,dword ptr ds:[ebx>
00454416 |. E8 75EDFDFF call W_MyCrac.00433190
0045441B |. 33D2 xor edx,edx
0045441D |. 8B83 04030000 mov eax,dword ptr ds:[ebx>
00454423 |. E8 68EDFDFF call W_MyCrac.00433190
00454428 |> 33C0 xor eax,eax
0045442A |. 5A pop edx
0045442B |. 59 pop ecx
0045442C |. 59 pop ecx
0045442D |. 64:8910 mov dword ptr fs:[eax],ed>
00454430 |. 68 94444500 push W_MyCrac.00454494
00454435 |> 8D45 D0 lea eax,dword ptr ss:[ebp>
00454438 |. E8 FFFDFAFF call W_MyCrac.0040423C
0045443D |. 8D45 D4 lea eax,dword ptr ss:[ebp>
00454440 |. E8 F7FDFAFF call W_MyCrac.0040423C
00454445 |. 8D45 D8 lea eax,dword ptr ss:[ebp>
00454448 |. BA 02000000 mov edx,2
0045444D |. E8 0EFEFAFF call W_MyCrac.00404260
00454452 |. 8D45 E0 lea eax,dword ptr ss:[ebp>
00454455 |. E8 E2FDFAFF call W_MyCrac.0040423C
0045445A |. 8D45 E4 lea eax,dword ptr ss:[ebp>
0045445D |. BA 02000000 mov edx,2
00454462 |. E8 F9FDFAFF call W_MyCrac.00404260
00454467 |. 8D45 EC lea eax,dword ptr ss:[ebp>
0045446A |. E8 CDFDFAFF call W_MyCrac.0040423C
0045446F |. 8D45 F0 lea eax,dword ptr ss:[ebp>
00454472 |. BA 02000000 mov edx,2
00454477 |. E8 E4FDFAFF call W_MyCrac.00404260
0045447C |. 8D45 F8 lea eax,dword ptr ss:[ebp>
0045447F |. E8 B8FDFAFF call W_MyCrac.0040423C
00454484 |. 8D45 FC lea eax,dword ptr ss:[ebp>
00454487 |. E8 B0FDFAFF call W_MyCrac.0040423C
0045448C \. C3 retn
------------------------------------------------------------------------
【破解总结】1.其实算法很简单就是取CPU的即时速度和3039异或作第一的注册码.(3039是十六进制哦,别说十进制,不然打PP
2.再与10932异或为第二个框的注册码
3.与0E752异或为第三个框的注册码
4.与0CF83异或为第四个框的注册码
因为pentacle[PYG]算法有BUG,经WCPUID测试证实,至于说写注册机基本不用写了,因为CPU的频率是按毫秒变动后几位的的就是说我的CPU1.7G取值在1717000到1717090间变动的而且最后二位00-90这数据还是按毫秒变动的,作者编写注册码就已经出现了取CPU频率值错误了,应该把这个CPU值取到M这范围不应该取到字节范围.不然就算是作者也注册不了的.除非爆破.
------------------------------------------------------------------------
【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢! |
|