Windows System Optimizer V3.1算法分析
作者:wzh123
软件大小:
1196 KB
软件语言: 英文
软件类别: 国外软件 / 共享版 / 系统设置
应用平台: Win9x/NT/2000/XP
软件介绍:
Windows System Optimizer是一个非常不错的系统优化软件,主要包含系统安全优化,文件系统优化,注册表优化,IE浏览器优化,网络优化,和一般优化六个部分,可以帮助你全面的为系统加速,程序界面简单清晰,分类明确,非常容易使用!
PJ工具:TRW20001.23注册版,W32Dasm8.93黄金版,FI2.5
作者申明:只是学习,无其他目的。
1、软件没有加壳,用vc++编的;
2、用TRW20001.23注册版,输入试验码:a12-b34567-c89(跟踪可知格式),下断点,确定,过程不多说了,大家跟一下就知道了,直接说核心吧。(其实这个软件是以前破的,现在手上只留下了关于算法的笔记,自己又不想再跟一次,所以只有算法分析这一块,请大家谅解。另一方面,我觉得光看教程是一方面,关键自己要亲自操练一下才能有更大的收获,本人也是刚刚学破解,第一次写这种东西,错误在所难免,写的也很乱,请各位包涵,也请各位高手指教)
:0040D7D0
52 push
edx
:0040D7D1 E8EAFEFFFF
call 0040D6C0
:0040D7D6 8B542443
mov edx, dword ptr [esp+43]
:0040D7DA 88442418
mov byte ptr [esp+18], al
:0040D7DE 52
push edx
:0040D7DF
E8DCFEFFFF call 0040D6C0
:0040D7E4
8AD8 mov
bl, al
:0040D7E6 8B44244C
mov eax, dword ptr [esp+4C]
:0040D7EA 50
push eax
:0040D7EB 885C245C
mov byte ptr [esp+5C],
bl
:0040D7EF E8CCFEFFFF call
0040D6C0
:0040D7F4 8A4C2420
mov cl, byte ptr [esp+20]
:0040D7F8 83C40C
add esp, 0000000C
:0040D7FB 3ACB
cmp cl, bl
:0040D7FD
88442410 mov byte ptr [esp+10],
al
:0040D801 0F841AFFFFFF je 0040D721
:0040D807
3AD8 cmp
bl, al
:0040D809 0F8412FFFFFF je 0040D721
:0040D80F
3AC1 cmp
al, cl
:0040D811 0F840AFFFFFF je 0040D721
第5、8、13位不能相等
:0040D817
8B742414 mov esi, dword
ptr [esp+14]
:0040D81B 8B6C2410
mov ebp, dword ptr [esp+10]
:0040D81F 8B7C2450
mov edi, dword ptr [esp+50]
:0040D823
81E6FF000000 and esi, 000000FF
第5位->esi
:0040D829 8BC6
mov eax, esi
:0040D82B
81E5FF000000 and ebp, 000000FF
第13位->ebp
:0040D831 F7D0
not eax
第5位取反->eax
:0040D833
81E7FF000000 and edi, 000000FF
第8位->edi
:0040D839 23C5
and eax, ebp
第5位取反and ebp->eax
:0040D83B 0BC7
or eax, edi
:0040D83D B93E000000
mov ecx, 0000003E 0x3e->ecx
:0040D842
0BC6 or eax,
esi
:0040D844 896C241C mov
dword ptr [esp+1C], ebp ebp->ss:[12f2fc]
:0040D848 33C6
xor eax, esi
:0040D84A 99
cdq
:0040D84B
F7F9 idiv
ecx
:0040D84D 8BDA
mov ebx, edx
余数->ebx
:0040D84F 8B542438
mov edx, dword ptr [esp+38] "a123"->edx
:0040D853 52
push edx
:0040D854
895C2428 mov dword ptr
[esp+28], ebx (余数)->ss:[12f304]
:0040D858 E863FEFFFF
call 0040D6C0
:0040D85D 83C404
add esp, 00000004
:0040D860
3AD8 cmp
bl, al 假码第1位与余数比较
:0040D862
0F85B9FEFFFF jne 0040D721
不等就死
:0040D868 8BDD
mov ebx, ebp
第13位->ebx
:0040D86A 8BEF
mov ebp, edi
第8位->ebp
:0040D86C F7D3
not ebx
第13位取反->ebx
:0040D86E
23EE and
ebp, esi 第8位 and 第5位->ebp
:0040D870
23DF and
ebx, edi ebx and 第8位->ebx
:0040D872
8BC5 mov
eax, ebp
:0040D874 B93E000000
mov ecx, 0000003E
:0040D879 0BC3
or eax, ebx
:0040D87B
99 cdq
:0040D87C
F7F9 idiv
ecx
:0040D87E 89542418 mov
dword ptr [esp+18], edx 余数->ss:[12f2f8]
:0040D882 8B542439
mov edx, dword ptr [esp+39]
"12-b"->edx
:0040D886 52
push edx
:0040D887 E834FEFFFF
call 0040D6C0 转换
:0040D88C 8A4C241C
mov cl, byte ptr [esp+1C]
ss:[12f2f8]余数->cl
:0040D890 83C404
add esp, 00000004
:0040D893 3AC8
cmp cl, al
假码第2位与余数比较
:0040D895
0F8586FEFFFF jne 0040D721
不等就死
:0040D89B 8A442410
mov al, byte ptr [esp+10]
ss:[12f2f0]第13位->al
:0040D89F 8A4C2450
mov cl, byte ptr [esp+50] ss:[12f330]第8位->cl
:0040D8A3
32C1 xor
al, cl 第13位
xor 第8位->al
:0040D8A5 8A4C2414
mov cl, byte ptr [esp+14] ss:[12f2f4]第5位->cl
:0040D8A9
32C1 xor
al, cl
:0040D8AB 0AC1
or al, cl
:0040D8AD 88442450
mov byte ptr [esp+50], al al->ss:[12f330]
:0040D8B1
8B44243A mov eax, dword
ptr [esp+3A] "2-b3"->eax
:0040D8B5 50
push eax
:0040D8B6
E805FEFFFF call 0040D6C0
:0040D8BB
8A4C2454 mov cl, byte ptr
[esp+54] ss:[12f330]->cl
:0040D8BF 83C404
add esp, 00000004
:0040D8C2
3AC8 cmp
cl, al 假码第3位与cl比较
:0040D8C4
0F8557FEFFFF jne 0040D721
不等就死
:0040D8CA 8A442410
mov al, byte ptr [esp+10]
ss:[12f2f0]第13位->al
:0040D8CE B93E000000
mov ecx, 0000003E
3e->ecx
:0040D8D3 F6D0
not al
al取反
:0040D8D5 25FF000000
and eax, 000000FF
eax and ff->eax
:0040D8DA 0BC6
or eax, esi
eax or 第5位->eax
:0040D8DC
33C7 xor
eax, edi eax or
第8位->eax
:0040D8DE 99
cdq
:0040D8DF F7F9
idiv ecx
:0040D8E1 89542420
mov dword ptr [esp+20], edx 余数->ss:[12f300]
:0040D8E5
8B54243D mov edx, dword
ptr [esp+3D] "3456"->edx
:0040D8E9 52
push edx
:0040D8EA
E8D1FDFFFF call 0040D6C0
:0040D8EF
8A4C2424 mov cl, byte ptr
[esp+24] ss:[12f300]余数->cl
:0040D8F3 83C404
add esp, 00000004
:0040D8F6
3AC8 cmp
cl, al 假码第6位与余数比较
:0040D8F8
0F8523FEFFFF jne 0040D721
不等就死
:0040D8FE 8B44241C
mov eax, dword ptr [esp+1C]
ss:[12f2fc]->eax
:0040D902 B93E000000
mov ecx, 0000003E
3e->ecx
:0040D907 33E8
xor ebp, eax
:0040D909 8D446D00
lea eax, dword ptr [ebp+2*ebp]
:0040D90D 8D448500
lea eax, dword ptr [ebp+4*eax] ebp*D->eax
:0040D911
99 cdq
:0040D912
F7F9 idiv
ecx
:0040D914 8954241C mov
dword ptr [esp+1C], edx 余数->ss:[12f2fc]
:0040D918 8B54243E
mov edx, dword ptr [esp+3E]
"4567"->edx
:0040D91C 52
push edx
:0040D91D E89EFDFFFF
call 0040D6C0
:0040D922 8A4C2420
mov cl, byte ptr [esp+20]
ss:[12f2fc]余数->cl
:0040D926 83C404
add esp, 00000004
:0040D929 3AC8
cmp cl, al
假码第7位与余数比较
:0040D92B
0F85F0FDFFFF jne 0040D721
不等就死
:0040D931 8A442424
mov al, byte ptr [esp+24]
ss:[12f304]即余数->al(见上)
:0040D935 8B4C2440
mov ecx, dword ptr [esp+40] "67-c"->ecx
:0040D939
88442424 mov byte ptr [esp+24],
al al->ss:[12f304]
:0040D93D 51
push ecx
:0040D93E 8B6C2428
mov ebp, dword ptr [esp+28]
ss:[12f304]即余数->ebp(见上)
:0040D942 81E5FF000000
and ebp, 000000FF
ebp and ff->ebp
:0040D948 E873FDFFFF
call 0040D6C0
:0040D94D 8AC8
mov cl, al
第9位->cl
:0040D94F 8BC5
mov eax, ebp
ebp->eax
:0040D951 F7D0
not eax
eax取反->eax
:0040D953
23C7 and
eax, edi eax and
edi->eax
:0040D955 83C404
add esp, 00000004
:0040D958 0BC5
or eax, ebp
eax or ebp->eax
:0040D95A 0BC6
or eax, esi
eax or esi->eax
:0040D95C
33C5 xor
eax, ebp eax xor
ebp->eax
:0040D95E BD3E000000
mov ebp, 0000003E 3e->ebp
:0040D963
99 cdq
:0040D964
F7FD idiv
ebp
:0040D966 3AD1
cmp dl, cl
余数与假码第9位比较
:0040D968 0F85B3FDFFFF
jne 0040D721
不等就死
:0040D96E 8B542441
mov edx, dword ptr [esp+41] "7-c8"->edx
:0040D972
52 push
edx
:0040D973 E848FDFFFF call
0040D6C0
:0040D978 8AC8
mov cl, al
第10位->cl
:0040D97A 8B44241C
mov eax, dword ptr [esp+1C] ss:[12f2f8]余数(见上)->eax
:0040D97E
25FF000000 and eax, 000000FF
第8位 and ff->eax
:0040D983 83C404
add esp, 00000004
:0040D986
23C7 and
eax, edi eax and
edi=第8位->eax
:0040D988 8BFD
mov edi, ebp
3e->edi
:0040D98A 0BC3
or eax, ebx
eax or ebx
:0040D98C 99
cdq
:0040D98D F7FF
idiv edi
:0040D98F 3AD1
cmp dl, cl
假码第10位与余数比较
:0040D991
0F858AFDFFFF jne 0040D721
不等就死
:0040D997 8B542443
mov edx, dword ptr [esp+43]
"c89E"->edx
:0040D99B 52
push edx
:0040D99C E81FFDFFFF
call 0040D6C0
:0040D9A1 8A4C2454
mov cl, byte ptr [esp+54] ss:[12f330]即第3位算码->cl(见上)
:0040D9A5
8A5C2414 mov bl, byte ptr
[esp+14] ss:[12f2f0]"8"->bl
:0040D9A9 8AD1
mov dl, cl
cl->dl
:0040D9AB
83C404 add esp,
00000004
:0040D9AE 32D3
xor dl, bl
dl xor bl->dl
:0040D9B0 8A5C2414
mov bl, byte ptr [esp+14] ss:[12f2f4]"b"->bl
:0040D9B4
32D3 xor
dl, bl dl xor bl->dl
:0040D9B6
0AD1 or dl,
cl dl or
cl->dl
:0040D9B8 3AD0
cmp dl, al
dl与假码第12位比较
:0040D9BA 0F8561FDFFFF
jne 0040D721 不等就死
:0040D9C0
8B442445 mov eax, dword
ptr [esp+45] "9E"->eax
:0040D9C4 50
push eax
:0040D9C5 E8F6FCFFFF
call 0040D6C0
:0040D9CA 8B4C2424
mov ecx, dword ptr [esp+24]
ss:[12f300]即第6位算码(见上)->ecx
:0040D9CE 8AD8
mov bl, al
第14位->bl
:0040D9D0 8A442420
mov al, byte ptr [esp+20] ss:[12f2fc]余数即第7位算码->al
:0040D9D4
81E1FF000000 and ecx, 000000FF
ecx and ff->ecx
:0040D9DA F6D0
not al
al取反->al
:0040D9DC
25FF000000 and eax, 000000FF
取al->eax
:0040D9E1 83C404
add esp, 00000004
:0040D9E4
0BC1 or eax,
ecx eax or ecx->eax
:0040D9E6
8BCD mov
ecx, ebp 3e->ecx
:0040D9E8
33C6 xor
eax, esi eax xor 第4位->eax
:0040D9EA
5F pop
edi
:0040D9EB 99
cdq
:0040D9EC F7F9
idiv ecx
:0040D9EE 33C0
xor eax, eax
:0040D9F0 5E
pop esi
:0040D9F1 5D
pop
ebp
:0040D9F2 3AD3
cmp dl, bl
余数与假码第14位比较
:0040D9F4 5B
pop ebx
:0040D9F5 0F94C0
sete al
不等则条件为假去死
:0040D9F8 83C43C
add esp, 0000003C
:0040D9FB
C3 ret
所以注册码与姓名无关,算法如下:
注册码为14位,格式:s1s2s3-s4s5s6s7s8s9-s10s11s12 s取值范围为:0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
s4、s7、s11位决定其他各位,且s4,s7,s11互不相等。
1、s1=((((~s4)&s11)|s7)^s4)%0x3E;
2、s2=(((~s11)&s7)|(s7&s4))%0x3E;
3、s3=((s11^s7)^s4)|s4;
4、s5=((((~s11)&0xFF)|s4)^s7)%0x3E;
5、s6=(((s4&s7)^s11)*)0xD)%0x3E;
6、s8=(((((~s1)&s7)|s1)|s4)^s1)%0x3E;
7、s9=((s2&s7)|((~s11)&s7))%0x3E;
8、s10=((s3|s11)^s4)|s3;
9、s12=(((~s6)|s5)^s4)%0x3E.
XaP-qqBaXa-az6是2.6版的注册码
一个可用的注册码是xaX-qqBaqa-Xz6