pentacle写的第二个CrackeMe破解说明
【破文标题】对pentacle作的CRACKME【破文作者】lfq168
【作者邮箱】[email protected]
【作者主页】
【破解工具】OD1.1,PEID0.94
【破解平台】WinXP SP2
【软件名称】CRACKME
【软件大小】201K
【原版下载】http://ocn.e5v.com/cgi-bin/bbs/ccb/topic_view.cgi?forum=4&article_id=0004051110230324&publishtime_id=0004051110230324&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:
004542CD|. 64:8920 mov dword ptr fs:,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:,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算法有BUG,经WCPUID测试证实,至于说写注册机基本不用写了,因为CPU的频率是按毫秒变动后几位的的就是说我的CPU1.7G取值在1717000到1717090间变动的而且最后二位00-90这数据还是按毫秒变动的,作者编写注册码就已经出现了取CPU频率值错误了,应该把这个CPU值取到M这范围不应该取到字节范围.不然就算是作者也注册不了的.除非爆破.
------------------------------------------------------------------------
【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢! 好的~支持 ESP定律轻松搞定~~ 真正的入口点0005477C
页:
[1]