【破解作者】 落魄浪子
【作者邮箱】 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
这样她就自已帮你把注册码填上了。
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!