【破解作者】 落魄浪子
【作者邮箱】 zxy223_szb@21cn.net
【使用工具】 FlyOD1.1
【破解平台】 Win9x/NT/2000/XP
【软件名称】 骛一狂屏锁王V1.0
【下载地址】 HTTP://WWW.THTC.CN/KOPIC
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
软件没有注册时有30次的使用限制,输入错误的注册码时会显示“注册码不正确”,用OD查找这一字符串。找到后向上看看哪里跳来的,一步步找到算法地址。
我的机器码是:L0EE4C21?976
00404320 /. 55 push ebp 这里F2下断,点关于=》注册=》输入注册码=》点注册,OD断在这里
00404321 |. 8BEC mov ebp,esp
00404323 |. 83C4 A0 add esp,-60
00404326 |. B8 20FD4E00 mov eax,BcLock.004EFD20
0040432B |. 53 push ebx
0040432C |. 56 push esi
0040432D |. 57 push edi
0040432E |. E8 55B80C00 call BcLock.004CFB88
---------------略过代码------------------------------------------
004043CB |. 833B 00 cmp dword ptr ds:[ebx],0 检查机器码是否为空
004043CE |. 74 07 je short BcLock.004043D7
004043D0 |. 8B03 mov eax,dword ptr ds:[ebx] 机器码放入EAX
004043D2 |. 8B70 FC mov esi,dword ptr ds:[eax-4] 机器码长度放入ESI
004043D5 |. EB 02 jmp short BcLock.004043D9
004043D7 |> 33F6 xor esi,esi
004043D9 |> FF4D C4 dec dword ptr ss:[ebp-3C]
004043DC |. 8D45 EC lea eax,dword ptr ss:[ebp-14]
004043DF |. BA 02000000 mov edx,2
004043E4 |. E8 47590D00 call BcLock.004D9D30
004043E9 |. 66:C745 B8 >mov word ptr ss:[ebp-48],8
004043EF |. 33C9 xor ecx,ecx
004043F1 |. 8B45 A4 mov eax,dword ptr ss:[ebp-5C] 机器码放入EAX
004043F4 |. 8D4430 FF lea eax,dword ptr ds:[eax+esi-1]右取机器码一位的十六进制入EAX记为N1
004043F8 |. 8B55 A4 mov edx,dword ptr ss:[ebp-5C] 机器码放入EDX
004043FB |. EB 2C jmp short BcLock.00404429
004043FD |> BF 07000000 /mov edi,7 7入EDI
00404402 |. 8D59 01 |lea ebx,dword ptr ds:[ecx+1] 计数器+1入EBX记为N2
00404405 |. 2BF9 |sub edi,ecx 7-N3记为N4
00404407 |. 41 |inc ecx 计数器+1记为N3
00404408 |. 0FAFDF |imul ebx,edi N2*7记为N5
0040440B |. 001A |add byte ptr ds:[edx],bl N5+右取机器码的一位的十六进制记为N6
0040440D |. 8BDE |mov ebx,esi 注册码长度入EBX记为Y1
0040440F |. 03DB |add ebx,ebx Y1+Y1记为N7
00404411 |. 4E |dec esi 注册码长度减一
00404412 |. 0218 |add bl,byte ptr ds:[eax] N7+左取机器码的一位的十六进制结果记为N8
00404414 |. 80C3 02 |add bl,2 N8+2结果记为N9
00404417 |. 8818 |mov byte ptr ds:[eax],bl N9入EAX的内存地址
00404419 |. 8A1A |mov bl,byte ptr ds:[edx] N6入BL
0040441B |. 885D A3 |mov byte ptr ss:[ebp-5D],bl
0040441E |. 8A18 |mov bl,byte ptr ds:[eax] N9入BL
00404420 |. 881A |mov byte ptr ds:[edx],bl N9入EDX的内存地址
00404422 |. 42 |inc edx
00404423 |. 8A5D A3 |mov bl,byte ptr ss:[ebp-5D] N6入BL
00404426 |. 8818 |mov byte ptr ds:[eax],bl N6入EAX的内存地址,
00404428 |. 48 |dec eax
00404429 |> 8D5E FF lea ebx,dword ptr ds:[esi-1] 机器码长度减一入EBX
0040442C |. 3BCB |cmp ecx,ebx
0040442E |.^ 7C CD \jl short BcLock.004043FD 是否取完,没有则继续。
00404430 |. 66:C745 B8 >mov word ptr ss:[ebp-48],38
00404436 |. 8D45 F8 lea eax,dword ptr ss:[ebp-8]
00404439 |. 8B55 A4 mov edx,dword ptr ss:[ebp-5C]
0040443C |. E8 8F570D00 call BcLock.004D9BD0
00404441 |. FF45 C4 inc dword ptr ss:[ebp-3C]
00404444 |. 33C9 xor ecx,ecx
00404446 |. 66:C745 B8 >mov word ptr ss:[ebp-48],8
0040444C |. 66:C745 B8 >mov word ptr ss:[ebp-48],44
00404452 |. 894D E8 mov dword ptr ss:[ebp-18],ecx
00404455 |. A1 4C7D4F00 mov eax,dword ptr ds:[_Form5]
0040445A |. FF45 C4 inc dword ptr ss:[ebp-3C]
0040445D |. 8D55 E8 lea edx,dword ptr ss:[ebp-18]
00404460 |. 8B80 0C0300>mov eax,dword ptr ds:[eax+30C]
00404466 |. E8 35460A00 call BcLock.004A8AA0
0040446B |. 8D45 E8 lea eax,dword ptr ss:[ebp-18]
0040446E |. 8D55 F8 lea edx,dword ptr ss:[ebp-8]
00404471 |. E8 9E590D00 call BcLock.004D9E14
00404476 |. 50 push eax ; /Arg1
00404477 |. FF4D C4 dec dword ptr ss:[ebp-3C] ; |
0040447A |. 8D45 E8 lea eax,dword ptr ss:[ebp-18] ; |
0040447D |. BA 02000000 mov edx,2 ; |
00404482 |. E8 A9580D00 call BcLock.004D9D30 ; \BcLock.004D9D30 注册验证CALL
00404487 |. 59 pop ecx
00404488 |. 84C9 test cl,cl
0040448A |. 0F84 650100>je BcLock.004045F5 这里不跳则注册成功,但不是爆破点。向上看看
00404490 |. B2 01 mov dl,1
00404492 |. A1 D42D4500 mov eax,dword ptr ds:[452DD4]
00404497 |. E8 38EA0400 call BcLock.00452ED4
0040449C |. 66:C745 B8 >mov word ptr ss:[ebp-48],8
004044A2 |. 8BD8 mov ebx,eax
004044A4 |. BA 02000080 mov edx,80000002
004044A9 |. 8BC3 mov eax,ebx
004044AB |. E8 94560D00 call BcLock.004D9B44
004044B0 |. 66:C745 B8 >mov word ptr ss:[ebp-48],50
004044B6 |. BA BEFA4E00 mov edx,BcLock.004EFABE ; ASCII "Software\Microsoft\Windows\Maqinuo" 写入注册表值
004044BB |. 8D45 E4 lea eax,dword ptr ss:[ebp-1C]
004044BE |. E8 0D570D00 call BcLock.004D9BD0
004044C3 |. FF45 C4 inc dword ptr ss:[ebp-3C]
004044C6 |. 8B10 mov edx,dword ptr ds:[eax]
004044C8 |. B1 01 mov cl,1
004044CA |. 8BC3 mov eax,ebx
004044CC |. E8 07EB0400 call BcLock.00452FD8
004044D1 |. FF4D C4 dec dword ptr ss:[ebp-3C]
004044D4 |. 8D45 E4 lea eax,dword ptr ss:[ebp-1C]
004044D7 |. BA 02000000 mov edx,2
004044DC |. E8 4F580D00 call BcLock.004D9D30
004044E1 |. 33C9 xor ecx,ecx
004044E3 |. A1 4C7D4F00 mov eax,dword ptr ds:[_Form5]
004044E8 |. 894D DC mov dword ptr ss:[ebp-24],ecx
004044EB |. 8D55 DC lea edx,dword ptr ss:[ebp-24]
004044EE |. FF45 C4 inc dword ptr ss:[ebp-3C]
004044F1 |. 8B80 0C0300>mov eax,dword ptr ds:[eax+30C]
004044F7 |. E8 A4450A00 call BcLock.004A8AA0
004044FC |. 8D55 DC lea edx,dword ptr ss:[ebp-24]
004044FF |. 8D45 E0 lea eax,dword ptr ss:[ebp-20]
00404502 |. 8B0A mov ecx,dword ptr ds:[edx]
00404504 |. BA E1FA4E00 mov edx,BcLock.004EFAE1 ; ASCII "Registry"
00404509 |. 51 push ecx
0040450A |. 66:C745 B8 >mov word ptr ss:[ebp-48],5C
00404510 |. E8 BB560D00 call BcLock.004D9BD0
00404515 |. FF45 C4 inc dword ptr ss:[ebp-3C]
00404518 |. 8B10 mov edx,dword ptr ds:[eax]
0040451A |. 8BC3 mov eax,ebx
0040451C |. 59 pop ecx
0040451D |. E8 52EC0400 call BcLock.00453174
00404522 |. FF4D C4 dec dword ptr ss:[ebp-3C]
00404525 |. 8D45 DC lea eax,dword ptr ss:[ebp-24]
00404528 |. BA 02000000 mov edx,2
0040452D |. E8 FE570D00 call BcLock.004D9D30
00404532 |. FF4D C4 dec dword ptr ss:[ebp-3C]
00404535 |. 8D45 E0 lea eax,dword ptr ss:[ebp-20]
00404538 |. BA 02000000 mov edx,2
0040453D |. E8 EE570D00 call BcLock.004D9D30
00404542 |. 8B0D 30784F>mov ecx,dword ptr ds:[4F7830] ; BcLock._Form1
00404548 |. B2 01 mov dl,1
0040454A |. 8B01 mov eax,dword ptr ds:[ecx]
0040454C |. 8B80 0C0300>mov eax,dword ptr ds:[eax+30C]
00404552 |. E8 01460700 call BcLock.00478B58
00404557 |. 8B0D 30784F>mov ecx,dword ptr ds:[4F7830] ; BcLock._Form1
0040455D |. B2 01 mov dl,1
0040455F |. 8B01 mov eax,dword ptr ds:[ecx]
00404561 |. 8B80 F80200>mov eax,dword ptr ds:[eax+2F8]
00404567 |. E8 EC450700 call BcLock.00478B58
0040456C |. 66:C745 B8 >mov word ptr ss:[ebp-48],68
00404572 |. BA EAFA4E00 mov edx,BcLock.004EFAEA
00404577 |. 8D45 D8 lea eax,dword ptr ss:[ebp-28]
0040457A |. E8 51560D00 call BcLock.004D9BD0
0040457F |. FF45 C4 inc dword ptr ss:[ebp-3C]
00404582 |. 8B10 mov edx,dword ptr ds:[eax]
00404584 |. A1 30784F00 mov eax,dword ptr ds:[4F7830]
00404589 |. 8B08 mov ecx,dword ptr ds:[eax]
0040458B |. 8B81 000300>mov eax,dword ptr ds:[ecx+300]
00404591 |. E8 FE440700 call BcLock.00478A94
00404596 |. FF4D C4 dec dword ptr ss:[ebp-3C]
00404599 |. 8D45 D8 lea eax,dword ptr ss:[ebp-28]
0040459C |. BA 02000000 mov edx,2
004045A1 |. E8 8A570D00 call BcLock.004D9D30
004045A6 |. 8B0D 30784F>mov ecx,dword ptr ds:[4F7830] ; BcLock._Form1
004045AC |. 33D2 xor edx,edx
004045AE |. 8B01 mov eax,dword ptr ds:[ecx]
004045B0 |. 8B80 000300>mov eax,dword ptr ds:[eax+300]
004045B6 |. E8 9D450700 call BcLock.00478B58
004045BB |. 8BC3 mov eax,ebx
004045BD |. E8 82E90400 call BcLock.00452F44
004045C2 |. 8BF3 mov esi,ebx
004045C4 |. 8975 D0 mov dword ptr ss:[ebp-30],esi
004045C7 |. 85F6 test esi,esi
004045C9 |. 74 1E je short BcLock.004045E9
004045CB |. 8B06 mov eax,dword ptr ds:[esi]
004045CD |. 8945 D4 mov dword ptr ss:[ebp-2C],eax
004045D0 |. 66:C745 B8 >mov word ptr ss:[ebp-48],80
004045D6 |. BA 03000000 mov edx,3
004045DB |. 8B45 D0 mov eax,dword ptr ss:[ebp-30]
004045DE |. 8B08 mov ecx,dword ptr ds:[eax]
004045E0 |. FF51 FC call dword ptr ds:[ecx-4]
004045E3 |. 66:C745 B8 >mov word ptr ss:[ebp-48],74
004045E9 |> A1 4C7D4F00 mov eax,dword ptr ds:[_Form5]
004045EE |. E8 39680900 call BcLock.0049AE2C
004045F3 |. EB 39 jmp short BcLock.0040462E
004045F5 |> 66:C745 B8 >mov word ptr ss:[ebp-48],8C
004045FB |. BA F1FA4E00 mov edx,BcLock.004EFAF1 ; 注册码不正确! 向上看看
00404600 |. 8D45 CC lea eax,dword ptr ss:[ebp-34]
00404603 |. E8 C8550D00 call BcLock.004D9BD0
【破解总结】
注册算法是这样的:注册码是一机一码,根据机器码算出注册码。
机器码L0EE4C21?976的十六进制4C304545344332313F393736
机器码的长度=C
1*7+4C=53=S 第十二位注册码
((C+C)+36)+2=50=P 第一位注册码
2*(7-1)+30=3C=< 第十一位注册码
(((C-1)+(C-1))+37)+2=4F=O 第二位注册码
3*(7-2)+45=54=T 第十位注册码
(((C-2)+(C-2))+39)+2=4F=O 第三位注册码
4*(7-3)+45=55=U 第九位注册码
(((C-3)+(C-3))+3F)+2=53=S 第四位注册码
5*(7-4)+34=43=C 第八位注册码
(((C-4)+(C-4))+31)+2=43=C 第五位注册码
6*(7-5)+43=4F=O 第七位注册码
(((C-5)+(C-5))+32)+2=B 第六位注册码
我的机器码是:L0EE4C21?976
我的注册码是:POOSCBOCUT<S
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Maqinuo]
"time"=dword:0000000c 使用次数
"paswd"=""
"Lock"="0"
"Registry"="POOSCBOCUT<S"
下面让她自已填上正确的注册码:
004045FB BA F1FA4E00 mov edx,BcLock.004EFAF1 ; 注册码不正确!
因为注册码不对时,在注册输入框会显示“ 注册码不正确!”。好了把这替换为真注册码。这时[ebp-5C]的内存地址保存的是真注册码,这里也可做内存注册机。
004045FB 8B55 A4 mov edx,dword ptr ss:[ebp-5C] ; POOSCBOCUT<S
这样她就自已帮你把注册码填上了。
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)