【破文标题】WinASO Registry Optimizer V2.6算法分析
【破文作者】ocnzhao[OCN]
【作者邮箱】
【作者主页】
【破解工具】OD,PEID V0.94
【破解平台】Win9x/NT/2000/XP
【软件名称】WinASO Registry Optimizer V2.6
【软件大小】2.32M
【原版下载】http://www.winaso.com/
【保护方式】none
【软件简介】WinASO Registry Optimizer能扫描windows注册表,找出错误和陈旧无用的键值,通过修复注册表,可使系统运行变快而没有错误
。
------------------------------------------------------------------------
【破解过程】
======================================================================
005630B8 /. 55 PUSH EBP
005630B9 |. 8BEC MOV EBP,ESP
005630BB |. B9 0E000000 MOV ECX,0E
005630C0 |> 6A 00 /PUSH 0
005630C2 |. 6A 00 |PUSH 0
005630C4 |. 49 |DEC ECX
005630C5 |.^ 75 F9 \JNZ SHORT RegOpt.005630C0
005630C7 |. 51 PUSH ECX
005630C8 |. 53 PUSH EBX
005630C9 |. 56 PUSH ESI
005630CA |. 57 PUSH EDI
005630CB |. 8BD8 MOV EBX,EAX
005630CD |. 33C0 XOR EAX,EAX
005630CF |. 55 PUSH EBP ; 各段注册码记为SNI(I=1,2,3,4,5)
005630D0 |. 68 0A375600 PUSH RegOpt.0056370A
005630D5 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
005630D8 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
005630DB |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
005630DE |. 8B15 349E5800 MOV EDX,DWORD PTR DS:[589E34] ; RegOpt.0058ED84
005630E4 |. 8B92 70080000 MOV EDX,DWORD PTR DS:[EDX+870]
005630EA |. E8 4121EAFF CALL RegOpt.00405230
005630EF |. 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
005630F2 |. 8B83 A0030000 MOV EAX,DWORD PTR DS:[EBX+3A0]
005630F8 |. E8 AF38EFFF CALL RegOpt.004569AC
005630FD |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] ; SN1=EAX
00563100 |. E8 D708F5FF CALL RegOpt.004B39DC ; 检查SN2
-----------------------------------------------------------------------------
注册码的合法性检查
004B39DC /$ 55 PUSH EBP ; 注册码的检测
004B39DD |. 8BEC MOV EBP,ESP
004B39DF |. 83C4 F8 ADD ESP,-8
004B39E2 |. 56 PUSH ESI
004B39E3 |. 57 PUSH EDI
004B39E4 |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
004B39E7 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004B39EA |. E8 5D1CF5FF CALL RegOpt.0040564C
004B39EF |. 33C0 XOR EAX,EAX
004B39F1 |. 55 PUSH EBP
004B39F2 |. 68 F03A4B00 PUSH RegOpt.004B3AF0
004B39F7 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
004B39FA |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
004B39FD |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
004B3A00 |. 8BC2 MOV EAX,EDX
004B3A02 |. 85C0 TEST EAX,EAX
004B3A04 |. 74 05 JE SHORT RegOpt.004B3A0B
004B3A06 |. 83E8 04 SUB EAX,4
004B3A09 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004B3A0B |> 48 DEC EAX
004B3A0C |. 7D 09 JGE SHORT RegOpt.004B3A17
004B3A0E |. C645 FB 00 MOV BYTE PTR SS:[EBP-5],0
004B3A12 |. E9 C3000000 JMP RegOpt.004B3ADA
004B3A17 |> C645 FB 01 MOV BYTE PTR SS:[EBP-5],1
004B3A1B |. 33F6 XOR ESI,ESI
004B3A1D |. 8BC2 MOV EAX,EDX
004B3A1F |. 85C0 TEST EAX,EAX
004B3A21 |. 74 05 JE SHORT RegOpt.004B3A28
004B3A23 |. 83E8 04 SUB EAX,4
004B3A26 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004B3A28 |> 8BF8 MOV EDI,EAX
004B3A2A |. 85FF TEST EDI,EDI
004B3A2C |. 7E 2A JLE SHORT RegOpt.004B3A58
004B3A2E |. B8 01000000 MOV EAX,1
004B3A33 |> 8B55 FC /MOV EDX,DWORD PTR SS:[EBP-4]
004B3A36 |. 0FB65402 FF |MOVZX EDX,BYTE PTR DS:[EDX+EAX-1]
004B3A3B |. 8BCA |MOV ECX,EDX
004B3A3D |. 80E9 2E |SUB CL,2E ; 2E=.
004B3A40 |. 74 0C |JE SHORT RegOpt.004B3A4E ; 等于 .就跳
004B3A42 |. 80C1 FE |ADD CL,0FE
004B3A45 |. 80E9 0A |SUB CL,0A
004B3A48 |. 72 04 |JB SHORT RegOpt.004B3A4E ; 不是数字就把[EBP-5]置0,提示出错
004B3A4A |. C645 FB 00 |MOV BYTE PTR SS:[EBP-5],0
004B3A4E |> 80FA 2E |CMP DL,2E
004B3A51 |. 75 01 |JNZ SHORT RegOpt.004B3A54 ; 不是.就跳
004B3A53 |. 46 |INC ESI
004B3A54 |> 40 |INC EAX
004B3A55 |. 4F |DEC EDI ; 计数器减1
004B3A56 |.^ 75 DB \JNZ SHORT RegOpt.004B3A33 ; 没计算完,继续
004B3A58 |> 4E DEC ESI
004B3A59 |. 7E 04 JLE SHORT RegOpt.004B3A5F
004B3A5B |. C645 FB 00 MOV BYTE PTR SS:[EBP-5],0
004B3A5F |> 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004B3A62 |. 8038 2E CMP BYTE PTR DS:[EAX],2E
004B3A65 |. 75 04 JNZ SHORT RegOpt.004B3A6B
004B3A67 |. B0 01 MOV AL,1
004B3A69 |. EB 17 JMP SHORT RegOpt.004B3A82
004B3A6B |> 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004B3A6E |. 85C0 TEST EAX,EAX
004B3A70 |. 74 05 JE SHORT RegOpt.004B3A77
004B3A72 |. 83E8 04 SUB EAX,4
004B3A75 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004B3A77 |> 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
004B3A7A |. 807C02 FF 2E CMP BYTE PTR DS:[EDX+EAX-1],2E
004B3A7F |. 0F94C0 SETE AL ; 不是.AL=0
004B3A82 |> 84C0 TEST AL,AL
004B3A84 |. 74 04 JE SHORT RegOpt.004B3A8A ; AL=0,[EBP-5]置0,注册失败
004B3A86 |. C645 FB 00 MOV BYTE PTR SS:[EBP-5],0
004B3A8A |> 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
004B3A8D |. 50 PUSH EAX
004B3A8E |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
004B3A91 |. B8 0C3B4B00 MOV EAX,RegOpt.004B3B0C
004B3A96 |. E8 051DF5FF CALL RegOpt.004057A0
004B3A9B |. 8BC8 MOV ECX,EAX
004B3A9D |. 49 DEC ECX
004B3A9E |. BA 01000000 MOV EDX,1
004B3AA3 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004B3AA6 |. E8 111CF5FF CALL RegOpt.004056BC
004B3AAB |. 33F6 XOR ESI,ESI
004B3AAD |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004B3AB0 |. 85C0 TEST EAX,EAX
004B3AB2 |. 74 05 JE SHORT RegOpt.004B3AB9
004B3AB4 |. 83E8 04 SUB EAX,4
004B3AB7 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004B3AB9 |> 8BF8 MOV EDI,EAX
004B3ABB |. 85FF TEST EDI,EDI
004B3ABD |. 7E 14 JLE SHORT RegOpt.004B3AD3
004B3ABF |. B8 01000000 MOV EAX,1
004B3AC4 |> 8B55 FC /MOV EDX,DWORD PTR SS:[EBP-4]
004B3AC7 |. 807C02 FF 30 |CMP BYTE PTR DS:[EDX+EAX-1],30
004B3ACC |. 75 01 |JNZ SHORT RegOpt.004B3ACF
004B3ACE |. 46 |INC ESI
004B3ACF |> 40 |INC EAX
004B3AD0 |. 4F |DEC EDI
004B3AD1 |.^ 75 F1 \JNZ SHORT RegOpt.004B3AC4
004B3AD3 |> 4E DEC ESI
004B3AD4 |. 7E 04 JLE SHORT RegOpt.004B3ADA
004B3AD6 |. C645 FB 00 MOV BYTE PTR SS:[EBP-5],0
004B3ADA |> 33C0 XOR EAX,EAX
004B3ADC |. 5A POP EDX
004B3ADD |. 59 POP ECX
004B3ADE |. 59 POP ECX
004B3ADF |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
004B3AE2 |. 68 F73A4B00 PUSH RegOpt.004B3AF7
004B3AE7 |> 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
004B3AEA |. E8 A916F5FF CALL RegOpt.00405198
004B3AEF \. C3 RETN
004B3AF0 .^ E9 370FF5FF JMP RegOpt.00404A2C
004B3AF5 .^ EB F0 JMP SHORT RegOpt.004B3AE7
004B3AF7 . 0FB645 FB MOVZX EAX,BYTE PTR SS:[EBP-5]
004B3AFB . 5F POP EDI
004B3AFC . 5E POP ESI
004B3AFD . 59 POP ECX
004B3AFE . 59 POP ECX
004B3AFF . 5D POP EBP
004B3B00 . C3 RETN
----------------------------------------------------------------------
00563105 |. 84C0 TEST AL,AL
00563107 75 2E JNZ SHORT RegOpt.00563137
00563109 |. 6A 40 PUSH 40
0056310B |. A1 349E5800 MOV EAX,DWORD PTR DS:[589E34]
00563110 |. 8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
00563116 |. E8 4125EAFF CALL RegOpt.0040565C
0056311B |. 50 PUSH EAX
0056311C |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0056311F |. E8 3825EAFF CALL RegOpt.0040565C
00563124 |. 50 PUSH EAX
00563125 |. 8BC3 MOV EAX,EBX
00563127 |. E8 80B3EFFF CALL RegOpt.0045E4AC
0056312C |. 50 PUSH EAX ; |hOwner
0056312D |. E8 6651EAFF CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
00563132 |. E9 67050000 JMP RegOpt.0056369E
00563137 |> 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
0056313A |. 8B83 A4030000 MOV EAX,DWORD PTR DS:[EBX+3A4]
00563140 |. E8 6738EFFF CALL RegOpt.004569AC
00563145 |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10] ; SN2=EAX
00563148 |. E8 8F08F5FF CALL RegOpt.004B39DC ; 检查SN2
0056314D |. 84C0 TEST AL,AL
0056314F 75 2E JNZ SHORT RegOpt.0056317F
00563151 |. 6A 40 PUSH 40
00563153 |. A1 349E5800 MOV EAX,DWORD PTR DS:[589E34]
00563158 |. 8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
0056315E |. E8 F924EAFF CALL RegOpt.0040565C
00563163 |. 50 PUSH EAX
00563164 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
00563167 |. E8 F024EAFF CALL RegOpt.0040565C
0056316C |. 50 PUSH EAX
0056316D |. 8BC3 MOV EAX,EBX
0056316F |. E8 38B3EFFF CALL RegOpt.0045E4AC
00563174 |. 50 PUSH EAX ; |hOwner
00563175 |. E8 1E51EAFF CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
0056317A |. E9 1F050000 JMP RegOpt.0056369E
0056317F |> 8D55 EC LEA EDX,DWORD PTR SS:[EBP-14]
00563182 |. 8B83 AC030000 MOV EAX,DWORD PTR DS:[EBX+3AC]
00563188 |. E8 1F38EFFF CALL RegOpt.004569AC
0056318D |. 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14] ; SN3=EAX
00563190 |. E8 4708F5FF CALL RegOpt.004B39DC ; 检查SN3
00563195 |. 84C0 TEST AL,AL
00563197 75 2E JNZ SHORT RegOpt.005631C7
00563199 |. 6A 40 PUSH 40
0056319B |. A1 349E5800 MOV EAX,DWORD PTR DS:[589E34]
005631A0 |. 8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
005631A6 |. E8 B124EAFF CALL RegOpt.0040565C
005631AB |. 50 PUSH EAX
005631AC |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005631AF |. E8 A824EAFF CALL RegOpt.0040565C
005631B4 |. 50 PUSH EAX
005631B5 |. 8BC3 MOV EAX,EBX
005631B7 |. E8 F0B2EFFF CALL RegOpt.0045E4AC
005631BC |. 50 PUSH EAX ; |hOwner
005631BD |. E8 D650EAFF CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
005631C2 |. E9 D7040000 JMP RegOpt.0056369E
005631C7 |> 8D55 E8 LEA EDX,DWORD PTR SS:[EBP-18]
005631CA |. 8B83 B4030000 MOV EAX,DWORD PTR DS:[EBX+3B4]
005631D0 |. E8 D737EFFF CALL RegOpt.004569AC
005631D5 |. 8B45 E8 MOV EAX,DWORD PTR SS:[EBP-18] ; SN4=EAX
005631D8 |. E8 FF07F5FF CALL RegOpt.004B39DC ; 检查SN4
005631DD |. 84C0 TEST AL,AL
005631DF 75 2E JNZ SHORT RegOpt.0056320F
005631E1 |. 6A 40 PUSH 40
005631E3 |. A1 349E5800 MOV EAX,DWORD PTR DS:[589E34]
005631E8 |. 8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
005631EE |. E8 6924EAFF CALL RegOpt.0040565C
005631F3 |. 50 PUSH EAX
005631F4 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005631F7 |. E8 6024EAFF CALL RegOpt.0040565C
005631FC |. 50 PUSH EAX
005631FD |. 8BC3 MOV EAX,EBX
005631FF |. E8 A8B2EFFF CALL RegOpt.0045E4AC
00563204 |. 50 PUSH EAX ; |hOwner
00563205 |. E8 8E50EAFF CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
0056320A |. E9 8F040000 JMP RegOpt.0056369E
0056320F |> 8D55 E4 LEA EDX,DWORD PTR SS:[EBP-1C]
00563212 |. 8B83 C0030000 MOV EAX,DWORD PTR DS:[EBX+3C0]
00563218 |. E8 8F37EFFF CALL RegOpt.004569AC
0056321D |. 8B45 E4 MOV EAX,DWORD PTR SS:[EBP-1C] ; SN5=EAX
00563220 |. E8 B707F5FF CALL RegOpt.004B39DC ; 检查SN5
00563225 |. 84C0 TEST AL,AL
00563227 75 2E JNZ SHORT RegOpt.00563257
00563229 |. 6A 40 PUSH 40
0056322B |. A1 349E5800 MOV EAX,DWORD PTR DS:[589E34]
00563230 |. 8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
00563236 |. E8 2124EAFF CALL RegOpt.0040565C
0056323B |. 50 PUSH EAX
0056323C |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0056323F |. E8 1824EAFF CALL RegOpt.0040565C
00563244 |. 50 PUSH EAX
00563245 |. 8BC3 MOV EAX,EBX
00563247 |. E8 60B2EFFF CALL RegOpt.0045E4AC
0056324C |. 50 PUSH EAX ; |hOwner
0056324D |. E8 4650EAFF CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
00563252 |. E9 47040000 JMP RegOpt.0056369E
00563257 |> 8D55 E0 LEA EDX,DWORD PTR SS:[EBP-20]
0056325A |. 8B83 A0030000 MOV EAX,DWORD PTR DS:[EBX+3A0]
00563260 |. E8 4737EFFF CALL RegOpt.004569AC
00563265 |. 8B45 E0 MOV EAX,DWORD PTR SS:[EBP-20] ; [EBP-20]=SN1
00563268 |. 8945 DC MOV DWORD PTR SS:[EBP-24],EAX
0056326B |. 8B45 DC MOV EAX,DWORD PTR SS:[EBP-24]
0056326E |. 85C0 TEST EAX,EAX
00563270 |. 74 05 JE SHORT RegOpt.00563277
00563272 |. 83E8 04 SUB EAX,4
00563275 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
00563277 |> 83F8 04 CMP EAX,4
0056327A 74 2E JE SHORT RegOpt.005632AA
0056327C |. 6A 40 PUSH 40
0056327E |. A1 349E5800 MOV EAX,DWORD PTR DS:[589E34]
00563283 |. 8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
00563289 |. E8 CE23EAFF CALL RegOpt.0040565C
0056328E |. 50 PUSH EAX
0056328F |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
00563292 |. E8 C523EAFF CALL RegOpt.0040565C
00563297 |. 50 PUSH EAX
00563298 |. 8BC3 MOV EAX,EBX
0056329A |. E8 0DB2EFFF CALL RegOpt.0045E4AC
0056329F |. 50 PUSH EAX ; |hOwner
005632A0 |. E8 F34FEAFF CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
005632A5 |. E9 F4030000 JMP RegOpt.0056369E
005632AA |> 8D55 D8 LEA EDX,DWORD PTR SS:[EBP-28] ; [EBP-28]=SN2
005632AD |. 8B83 A4030000 MOV EAX,DWORD PTR DS:[EBX+3A4]
005632B3 |. E8 F436EFFF CALL RegOpt.004569AC
005632B8 |. 8B45 D8 MOV EAX,DWORD PTR SS:[EBP-28]
005632BB |. 8945 DC MOV DWORD PTR SS:[EBP-24],EAX
005632BE |. 8B45 DC MOV EAX,DWORD PTR SS:[EBP-24]
005632C1 |. 85C0 TEST EAX,EAX
005632C3 |. 74 05 JE SHORT RegOpt.005632CA
005632C5 |. 83E8 04 SUB EAX,4
005632C8 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
005632CA |> 83F8 04 CMP EAX,4
005632CD 74 2E JE SHORT RegOpt.005632FD
005632CF |. 6A 40 PUSH 40
005632D1 |. A1 349E5800 MOV EAX,DWORD PTR DS:[589E34]
005632D6 |. 8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
005632DC |. E8 7B23EAFF CALL RegOpt.0040565C
005632E1 |. 50 PUSH EAX
005632E2 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005632E5 |. E8 7223EAFF CALL RegOpt.0040565C
005632EA |. 50 PUSH EAX
005632EB |. 8BC3 MOV EAX,EBX
005632ED |. E8 BAB1EFFF CALL RegOpt.0045E4AC
005632F2 |. 50 PUSH EAX ; |hOwner
005632F3 |. E8 A04FEAFF CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
005632F8 |. E9 A1030000 JMP RegOpt.0056369E
005632FD |> 8D55 D4 LEA EDX,DWORD PTR SS:[EBP-2C]
00563300 |. 8B83 AC030000 MOV EAX,DWORD PTR DS:[EBX+3AC]
00563306 |. E8 A136EFFF CALL RegOpt.004569AC
0056330B |. 8B45 D4 MOV EAX,DWORD PTR SS:[EBP-2C] ; [EBP-2C]=SN3
0056330E |. 8945 DC MOV DWORD PTR SS:[EBP-24],EAX
00563311 |. 8B45 DC MOV EAX,DWORD PTR SS:[EBP-24] ; SN2和SN3交换
00563314 |. 85C0 TEST EAX,EAX
00563316 |. 74 05 JE SHORT RegOpt.0056331D
00563318 |. 83E8 04 SUB EAX,4
0056331B |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
0056331D |> 83F8 04 CMP EAX,4
00563320 74 2E JE SHORT RegOpt.00563350
00563322 |. 6A 40 PUSH 40
00563324 |. A1 349E5800 MOV EAX,DWORD PTR DS:[589E34]
00563329 |. 8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
0056332F |. E8 2823EAFF CALL RegOpt.0040565C
00563334 |. 50 PUSH EAX
00563335 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
00563338 |. E8 1F23EAFF CALL RegOpt.0040565C
0056333D |. 50 PUSH EAX
0056333E |. 8BC3 MOV EAX,EBX
00563340 |. E8 67B1EFFF CALL RegOpt.0045E4AC
00563345 |. 50 PUSH EAX ; |hOwner
00563346 |. E8 4D4FEAFF CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
0056334B |. E9 4E030000 JMP RegOpt.0056369E
00563350 |> 8D55 D0 LEA EDX,DWORD PTR SS:[EBP-30]
00563353 |. 8B83 B4030000 MOV EAX,DWORD PTR DS:[EBX+3B4]
00563359 |. E8 4E36EFFF CALL RegOpt.004569AC
0056335E |. 8B45 D0 MOV EAX,DWORD PTR SS:[EBP-30] ; [EBP-30]=SN4
00563361 |. 8945 DC MOV DWORD PTR SS:[EBP-24],EAX
00563364 |. 8B45 DC MOV EAX,DWORD PTR SS:[EBP-24]
00563367 |. 85C0 TEST EAX,EAX
00563369 |. 74 05 JE SHORT RegOpt.00563370
0056336B |. 83E8 04 SUB EAX,4
0056336E |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
00563370 |> 83F8 04 CMP EAX,4
00563373 74 2E JE SHORT RegOpt.005633A3
00563375 |. 6A 40 PUSH 40
00563377 |. A1 349E5800 MOV EAX,DWORD PTR DS:[589E34]
0056337C |. 8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
00563382 |. E8 D522EAFF CALL RegOpt.0040565C
00563387 |. 50 PUSH EAX
00563388 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0056338B |. E8 CC22EAFF CALL RegOpt.0040565C
00563390 |. 50 PUSH EAX
00563391 |. 8BC3 MOV EAX,EBX
00563393 |. E8 14B1EFFF CALL RegOpt.0045E4AC
00563398 |. 50 PUSH EAX ; |hOwner
00563399 |. E8 FA4EEAFF CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
0056339E |. E9 FB020000 JMP RegOpt.0056369E
005633A3 |> 8D55 CC LEA EDX,DWORD PTR SS:[EBP-34]
005633A6 |. 8B83 C0030000 MOV EAX,DWORD PTR DS:[EBX+3C0]
005633AC |. E8 FB35EFFF CALL RegOpt.004569AC
005633B1 |. 8B45 CC MOV EAX,DWORD PTR SS:[EBP-34] ; [EBP-34]=SN5
005633B4 |. 8945 DC MOV DWORD PTR SS:[EBP-24],EAX ; 替换SN4
005633B7 |. 8B45 DC MOV EAX,DWORD PTR SS:[EBP-24] ; EAX=SN5
005633BA |. 85C0 TEST EAX,EAX
005633BC |. 74 05 JE SHORT RegOpt.005633C3
005633BE |. 83E8 04 SUB EAX,4
005633C1 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
005633C3 |> 83F8 04 CMP EAX,4
005633C6 74 2E JE SHORT RegOpt.005633F6 ; 注册码是4位,跳
005633C8 |. 6A 40 PUSH 40
005633CA |. A1 349E5800 MOV EAX,DWORD PTR DS:[589E34]
005633CF |. 8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
005633D5 |. E8 8222EAFF CALL RegOpt.0040565C
005633DA |. 50 PUSH EAX
005633DB |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005633DE |. E8 7922EAFF CALL RegOpt.0040565C
005633E3 |. 50 PUSH EAX
005633E4 |. 8BC3 MOV EAX,EBX
005633E6 |. E8 C1B0EFFF CALL RegOpt.0045E4AC
005633EB |. 50 PUSH EAX ; |hOwner
005633EC |. E8 A74EEAFF CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
005633F1 |. E9 A8020000 JMP RegOpt.0056369E
005633F6 |> 8D55 C8 LEA EDX,DWORD PTR SS:[EBP-38]
005633F9 |. 8B83 A0030000 MOV EAX,DWORD PTR DS:[EBX+3A0]
005633FF |. E8 A835EFFF CALL RegOpt.004569AC
00563404 |. 8B45 C8 MOV EAX,DWORD PTR SS:[EBP-38] ; [EBP-38]=SN1
00563407 |. E8 6069EAFF CALL RegOpt.00409D6C
0056340C |. 8BF0 MOV ESI,EAX
0056340E |. 8D55 C4 LEA EDX,DWORD PTR SS:[EBP-3C]
00563411 |. 8B83 A4030000 MOV EAX,DWORD PTR DS:[EBX+3A4]
00563417 |. E8 9035EFFF CALL RegOpt.004569AC
0056341C |. 8B45 C4 MOV EAX,DWORD PTR SS:[EBP-3C] ; [EBP-3C]=SN2
0056341F |. E8 4869EAFF CALL RegOpt.00409D6C
00563424 |. 8BF8 MOV EDI,EAX
00563426 |. 8D55 C0 LEA EDX,DWORD PTR SS:[EBP-40]
00563429 |. 8B83 AC030000 MOV EAX,DWORD PTR DS:[EBX+3AC]
0056342F |. E8 7835EFFF CALL RegOpt.004569AC
00563434 |. 8B45 C0 MOV EAX,DWORD PTR SS:[EBP-40] ; [RBP-40]=SN3
00563437 |. E8 3069EAFF CALL RegOpt.00409D6C
0056343C |. 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX ; ESI=SN1,EDI=SN2,EAX=SN3
0056343F |. 0FAFF7 IMUL ESI,EDI ; ESI=SN1*SN2
00563442 |. 83EE 03 SUB ESI,3 ; ESI=SN1*SN2-3
00563445 |. 81FE 10270000 CMP ESI,2710 ; >=OX2710,跳
0056344B 7D 2E JGE SHORT RegOpt.0056347B ; >=OX2710,跳
0056344D |. 6A 40 PUSH 40
0056344F |. A1 349E5800 MOV EAX,DWORD PTR DS:[589E34]
00563454 |. 8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
0056345A |. E8 FD21EAFF CALL RegOpt.0040565C
0056345F |. 50 PUSH EAX
00563460 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
00563463 |. E8 F421EAFF CALL RegOpt.0040565C
00563468 |. 50 PUSH EAX
00563469 |. 8BC3 MOV EAX,EBX
0056346B |. E8 3CB0EFFF CALL RegOpt.0045E4AC
00563470 |. 50 PUSH EAX ; |hOwner
00563471 |. E8 224EEAFF CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
00563476 |. E9 23020000 JMP RegOpt.0056369E
0056347B |> 8D55 B8 LEA EDX,DWORD PTR SS:[EBP-48]
0056347E |. 8BC6 MOV EAX,ESI
00563480 |. E8 AB67EAFF CALL RegOpt.00409C30
00563485 |. 8B45 B8 MOV EAX,DWORD PTR SS:[EBP-48] ; 上面乘的结果到EAX
00563488 |. 8D4D BC LEA ECX,DWORD PTR SS:[EBP-44]
0056348B |. BA 04000000 MOV EDX,4 ; EDX=4
00563490 |. E8 8B4CEEFF CALL RegOpt.00448120 ; 取后4位
00563495 |. 8B45 BC MOV EAX,DWORD PTR SS:[EBP-44]
00563498 |. 50 PUSH EAX
00563499 |. 8D55 B4 LEA EDX,DWORD PTR SS:[EBP-4C]
0056349C |. 8B83 B4030000 MOV EAX,DWORD PTR DS:[EBX+3B4]
005634A2 |. E8 0535EFFF CALL RegOpt.004569AC
005634A7 |. 8B55 B4 MOV EDX,DWORD PTR SS:[EBP-4C]
005634AA |. 58 POP EAX
005634AB |. E8 F820EAFF CALL RegOpt.004055A8
005634B0 74 2E JE SHORT RegOpt.005634E0
005634B2 |. 6A 40 PUSH 40
005634B4 |. A1 349E5800 MOV EAX,DWORD PTR DS:[589E34]
005634B9 |. 8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
005634BF |. E8 9821EAFF CALL RegOpt.0040565C
005634C4 |. 50 PUSH EAX
005634C5 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005634C8 |. E8 8F21EAFF CALL RegOpt.0040565C
005634CD |. 50 PUSH EAX
005634CE |. 8BC3 MOV EAX,EBX
005634D0 |. E8 D7AFEFFF CALL RegOpt.0045E4AC
005634D5 |. 50 PUSH EAX ; |hOwner
005634D6 |. E8 BD4DEAFF CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
005634DB |. E9 BE010000 JMP RegOpt.0056369E
005634E0 |> 8B75 F8 MOV ESI,DWORD PTR SS:[EBP-8] ; SN3=ESI
005634E3 |. 81C6 EB000000 ADD ESI,0EB ; ESI=SN3+OXEB
005634E9 |. 0FAFF7 IMUL ESI,EDI ; ESI=ESI*SN2
005634EC |. 83EE 05 SUB ESI,5 ; ESI=ESI-5
005634EF |. 8D55 AC LEA EDX,DWORD PTR SS:[EBP-54]
005634F2 |. 8BC6 MOV EAX,ESI
005634F4 |. E8 3767EAFF CALL RegOpt.00409C30
005634F9 |. 8B45 AC MOV EAX,DWORD PTR SS:[EBP-54]
005634FC |. 8D4D B0 LEA ECX,DWORD PTR SS:[EBP-50]
005634FF |. BA 04000000 MOV EDX,4
00563504 |. E8 174CEEFF CALL RegOpt.00448120
00563509 |. 8B45 B0 MOV EAX,DWORD PTR SS:[EBP-50]
0056350C |. 50 PUSH EAX
0056350D |. 8D55 A8 LEA EDX,DWORD PTR SS:[EBP-58]
00563510 |. 8B83 C0030000 MOV EAX,DWORD PTR DS:[EBX+3C0]
00563516 |. E8 9134EFFF CALL RegOpt.004569AC
0056351B |. 8B55 A8 MOV EDX,DWORD PTR SS:[EBP-58]
0056351E |. 58 POP EAX
0056351F |. E8 8420EAFF CALL RegOpt.004055A8 ; 比较CALL
00563524 74 2E JE SHORT RegOpt.00563554 ; 上面计算结果后4位和SN5比较
00563526 |. 6A 40 PUSH 40 ; 相等就跳,注册成功
00563528 |. A1 349E5800 MOV EAX,DWORD PTR DS:[589E34]
0056352D |. 8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
00563533 |. E8 2421EAFF CALL RegOpt.0040565C
00563538 |. 50 PUSH EAX
00563539 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0056353C |. E8 1B21EAFF CALL RegOpt.0040565C
00563541 |. 50 PUSH EAX
00563542 |. 8BC3 MOV EAX,EBX
00563544 |. E8 63AFEFFF CALL RegOpt.0045E4AC
00563549 |. 50 PUSH EAX ; |hOwner
0056354A |. E8 494DEAFF CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
0056354F |. E9 4A010000 JMP RegOpt.0056369E
00563554 |> 8D55 A4 LEA EDX,DWORD PTR SS:[EBP-5C] ; 对注册表的操作
00563557 |. 8B83 A0030000 MOV EAX,DWORD PTR DS:[EBX+3A0]
0056355D |. E8 4A34EFFF CALL RegOpt.004569AC
00563562 |. FF75 A4 PUSH DWORD PTR SS:[EBP-5C]
00563565 |. 8D55 A0 LEA EDX,DWORD PTR SS:[EBP-60]
00563568 |. 8B83 A4030000 MOV EAX,DWORD PTR DS:[EBX+3A4]
0056356E |. E8 3934EFFF CALL RegOpt.004569AC
00563573 |. FF75 A0 PUSH DWORD PTR SS:[EBP-60]
00563576 |. 8D55 9C LEA EDX,DWORD PTR SS:[EBP-64]
00563579 |. 8B83 AC030000 MOV EAX,DWORD PTR DS:[EBX+3AC]
0056357F |. E8 2834EFFF CALL RegOpt.004569AC
00563584 |. FF75 9C PUSH DWORD PTR SS:[EBP-64]
00563587 |. 8D55 98 LEA EDX,DWORD PTR SS:[EBP-68]
0056358A |. 8B83 B4030000 MOV EAX,DWORD PTR DS:[EBX+3B4]
00563590 |. E8 1734EFFF CALL RegOpt.004569AC
00563595 |. FF75 98 PUSH DWORD PTR SS:[EBP-68]
00563598 |. 8D55 94 LEA EDX,DWORD PTR SS:[EBP-6C]
0056359B |. 8B83 C0030000 MOV EAX,DWORD PTR DS:[EBX+3C0]
005635A1 |. E8 0634EFFF CALL RegOpt.004569AC
005635A6 |. FF75 94 PUSH DWORD PTR SS:[EBP-6C]
005635A9 |. A1 58AA5800 MOV EAX,DWORD PTR DS:[58AA58]
005635AE |. BA 05000000 MOV EDX,5
005635B3 |. E8 641FEAFF CALL RegOpt.0040551C
005635B8 |. B2 01 MOV DL,1
005635BA |. A1 D0CA4200 MOV EAX,DWORD PTR DS:[42CAD0]
005635BF |. E8 0C96ECFF CALL RegOpt.0042CBD0
005635C4 |. 8BF0 MOV ESI,EAX
005635C6 |. BA 02000080 MOV EDX,80000002
005635CB |. 8BC6 MOV EAX,ESI
005635CD |. E8 9E96ECFF CALL RegOpt.0042CC70
005635D2 |. B1 01 MOV CL,1
005635D4 |. BA 20375600 MOV EDX,RegOpt.00563720 ; ASCII "\SOFTWARE\WinASO\Registry Optimizer"
005635D9 |. 8BC6 MOV EAX,ESI
005635DB |. E8 D497ECFF CALL RegOpt.0042CDB4
005635E0 |. 84C0 TEST AL,AL
005635E2 |. 74 14 JE SHORT RegOpt.005635F8
005635E4 |. 8B0D 58AA5800 MOV ECX,DWORD PTR DS:[58AA58] ; RegOpt.0058ED70
005635EA |. 8B09 MOV ECX,DWORD PTR DS:[ECX]
005635EC |. BA 4C375600 MOV EDX,RegOpt.0056374C ; ASCII "RegOptKey2.5"
005635F1 |. 8BC6 MOV EAX,ESI
005635F3 |. E8 C89EECFF CALL RegOpt.0042D4C0 ; 对配置文件的写入
005635F8 |> 8D55 8C LEA EDX,DWORD PTR SS:[EBP-74]
005635FB |. A1 48A65800 MOV EAX,DWORD PTR DS:[58A648]
00563600 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
00563602 |. E8 590BF1FF CALL RegOpt.00474160
00563607 |. 8B45 8C MOV EAX,DWORD PTR SS:[EBP-74]
0056360A |. 8D55 90 LEA EDX,DWORD PTR SS:[EBP-70]
0056360D |. E8 9E6EEAFF CALL RegOpt.0040A4B0
00563612 |. 8D45 90 LEA EAX,DWORD PTR SS:[EBP-70]
00563615 |. BA 64375600 MOV EDX,RegOpt.00563764 ; ASCII "regkey.ini"
0056361A |. E8 451EEAFF CALL RegOpt.00405464
0056361F |. 8B4D 90 MOV ECX,DWORD PTR SS:[EBP-70]
00563622 |. B2 01 MOV DL,1
00563624 |. A1 00AD4200 MOV EAX,DWORD PTR DS:[42AD00]
00563629 |. E8 8A77ECFF CALL RegOpt.0042ADB8
0056362E |. 8BF0 MOV ESI,EAX
00563630 |. A1 58AA5800 MOV EAX,DWORD PTR DS:[58AA58]
00563635 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
00563637 |. 50 PUSH EAX
00563638 |. B9 78375600 MOV ECX,RegOpt.00563778 ; ASCII "252"
0056363D |. BA 84375600 MOV EDX,RegOpt.00563784 ; ASCII "regkey"
00563642 |. 8BC6 MOV EAX,ESI
00563644 |. 8B38 MOV EDI,DWORD PTR DS:[EAX]
00563646 |. FF57 04 CALL DWORD PTR DS:[EDI+4]
00563649 |. 8BC6 MOV EAX,ESI
0056364B |. E8 080CEAFF CALL RegOpt.00404258
00563650 |. 6A 40 PUSH 40
00563652 |. A1 349E5800 MOV EAX,DWORD PTR DS:[589E34]
00563657 |. 8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
0056365D |. E8 FA1FEAFF CALL RegOpt.0040565C
00563662 |. 50 PUSH EAX
00563663 |. A1 349E5800 MOV EAX,DWORD PTR DS:[589E34]
00563668 |. 8B80 74080000 MOV EAX,DWORD PTR DS:[EAX+874]
0056366E |. E8 E91FEAFF CALL RegOpt.0040565C
00563673 |. 50 PUSH EAX
00563674 |. 8BC3 MOV EAX,EBX
00563676 |. E8 31AEEFFF CALL RegOpt.0045E4AC
0056367B |. 50 PUSH EAX ; |hOwner
0056367C |. E8 174CEAFF CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
00563681 |. 8BC3 MOV EAX,EBX
00563683 |. E8 B4C5F0FF CALL RegOpt.0046FC3C
00563688 |. 6A 00 PUSH 0 ; /lParam = 0
0056368A |. 6A 00 PUSH 0 ; |wParam = 0
0056368C |. 68 78070000 PUSH 778 ; |Message = MSG(778)
00563691 |. A1 84A65800 MOV EAX,DWORD PTR DS:[58A684] ; |
00563696 |. 8B00 MOV EAX,DWORD PTR DS:[EAX] ; |
00563698 |. 50 PUSH EAX ; |hWnd
00563699 |. E8 9A4CEAFF CALL <JMP.&user32.SendMessageA> ; \SendMessageA
0056369E |> 33C0 XOR EAX,EAX
005636A0 |. 5A POP EDX
005636A1 |. 59 POP ECX
005636A2 |. 59 POP ECX
005636A3 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
005636A6 |. 68 11375600 PUSH RegOpt.00563711
005636AB |> 8D45 8C LEA EAX,DWORD PTR SS:[EBP-74]
005636AE |. BA 02000000 MOV EDX,2
005636B3 |. E8 041BEAFF CALL RegOpt.004051BC
005636B8 |. 8D45 94 LEA EAX,DWORD PTR SS:[EBP-6C]
005636BB |. BA 06000000 MOV EDX,6
005636C0 |. E8 F71AEAFF CALL RegOpt.004051BC
005636C5 |. 8D45 AC LEA EAX,DWORD PTR SS:[EBP-54]
005636C8 |. BA 02000000 MOV EDX,2
005636CD |. E8 EA1AEAFF CALL RegOpt.004051BC
005636D2 |. 8D45 B4 LEA EAX,DWORD PTR SS:[EBP-4C]
005636D5 |. E8 BE1AEAFF CALL RegOpt.00405198
005636DA |. 8D45 B8 LEA EAX,DWORD PTR SS:[EBP-48]
005636DD |. BA 02000000 MOV EDX,2
005636E2 |. E8 D51AEAFF CALL RegOpt.004051BC
005636E7 |. 8D45 C0 LEA EAX,DWORD PTR SS:[EBP-40]
005636EA |. BA 07000000 MOV EDX,7
005636EF |. E8 C81AEAFF CALL RegOpt.004051BC
005636F4 |. 8D45 E0 LEA EAX,DWORD PTR SS:[EBP-20]
005636F7 |. BA 06000000 MOV EDX,6
005636FC |. E8 BB1AEAFF CALL RegOpt.004051BC
00563701 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
00563704 |. E8 8F1AEAFF CALL RegOpt.00405198
00563709 \. C3 RETN
-----------------------------------------------------------------
关键比较call
-----------------------------------------------------------------
004055A8 /$ 53 PUSH EBX
004055A9 |. 56 PUSH ESI
004055AA |. 57 PUSH EDI
004055AB |. 89C6 MOV ESI,EAX
004055AD |. 89D7 MOV EDI,EDX
004055AF |. 39D0 CMP EAX,EDX
004055B1 |. 0F84 8F000000 JE RegOpt.00405646
004055B7 |. 85F6 TEST ESI,ESI
004055B9 |. 74 68 JE SHORT RegOpt.00405623
004055BB |. 85FF TEST EDI,EDI
004055BD |. 74 6B JE SHORT RegOpt.0040562A
004055BF |. 8B46 FC MOV EAX,DWORD PTR DS:[ESI-4]
004055C2 |. 8B57 FC MOV EDX,DWORD PTR DS:[EDI-4]
004055C5 |. 29D0 SUB EAX,EDX
004055C7 |. 77 02 JA SHORT RegOpt.004055CB
004055C9 |. 01C2 ADD EDX,EAX
004055CB |> 52 PUSH EDX
004055CC |. C1EA 02 SHR EDX,2
004055CF |. 74 26 JE SHORT RegOpt.004055F7
004055D1 |> 8B0E /MOV ECX,DWORD PTR DS:[ESI]
004055D3 |. 8B1F |MOV EBX,DWORD PTR DS:[EDI]
004055D5 |. 39D9 |CMP ECX,EBX
004055D7 |. 75 58 |JNZ SHORT RegOpt.00405631
004055D9 |. 4A |DEC EDX
004055DA |. 74 15 |JE SHORT RegOpt.004055F1
004055DC |. 8B4E 04 |MOV ECX,DWORD PTR DS:[ESI+4]
004055DF |. 8B5F 04 |MOV EBX,DWORD PTR DS:[EDI+4]
004055E2 |. 39D9 |CMP ECX,EBX
004055E4 |. 75 4B |JNZ SHORT RegOpt.00405631
004055E6 |. 83C6 08 |ADD ESI,8
004055E9 |. 83C7 08 |ADD EDI,8
004055EC |. 4A |DEC EDX
004055ED |.^ 75 E2 \JNZ SHORT RegOpt.004055D1
004055EF |. EB 06 JMP SHORT RegOpt.004055F7
004055F1 |> 83C6 04 ADD ESI,4
004055F4 |. 83C7 04 ADD EDI,4
004055F7 |> 5A POP EDX
004055F8 |. 83E2 03 AND EDX,3
004055FB |. 74 22 JE SHORT RegOpt.0040561F
004055FD |. 8B0E MOV ECX,DWORD PTR DS:[ESI]
004055FF |. 8B1F MOV EBX,DWORD PTR DS:[EDI]
00405601 |. 38D9 CMP CL,BL
00405603 |. 75 41 JNZ SHORT RegOpt.00405646
00405605 |. 4A DEC EDX
00405606 |. 74 17 JE SHORT RegOpt.0040561F
00405608 |. 38FD CMP CH,BH
0040560A |. 75 3A JNZ SHORT RegOpt.00405646
0040560C |. 4A DEC EDX
0040560D |. 74 10 JE SHORT RegOpt.0040561F
0040560F |. 81E3 0000FF00 AND EBX,0FF0000
00405615 |. 81E1 0000FF00 AND ECX,0FF0000
0040561B |. 39D9 CMP ECX,EBX
0040561D |. 75 27 JNZ SHORT RegOpt.00405646
0040561F |> 01C0 ADD EAX,EAX
00405621 |. EB 23 JMP SHORT RegOpt.00405646
00405623 |> 8B57 FC MOV EDX,DWORD PTR DS:[EDI-4]
00405626 |. 29D0 SUB EAX,EDX
00405628 |. EB 1C JMP SHORT RegOpt.00405646
0040562A |> 8B46 FC MOV EAX,DWORD PTR DS:[ESI-4]
0040562D |. 29D0 SUB EAX,EDX
0040562F |. EB 15 JMP SHORT RegOpt.00405646
00405631 |> 5A POP EDX
00405632 |. 38D9 CMP CL,BL
00405634 |. 75 10 JNZ SHORT RegOpt.00405646
00405636 |. 38FD CMP CH,BH
00405638 |. 75 0C JNZ SHORT RegOpt.00405646
0040563A |. C1E9 10 SHR ECX,10
0040563D |. C1EB 10 SHR EBX,10
00405640 |. 38D9 CMP CL,BL
00405642 |. 75 02 JNZ SHORT RegOpt.00405646
00405644 |. 38FD CMP CH,BH
00405646 |> 5F POP EDI
00405647 |. 5E POP ESI
00405648 |. 5B POP EBX
00405649 \. C3 RETN
======================================================================
算法总结:
(1)注册码分为5段,分别记为SN1,SN2,SN3,SN4,SN5;
(2)分别对各段注册码进行合法性检查;
(3)第四段注册码由第一段和第二段注册码计算出来:结果是从SN2*SN1-3中取出后4位;
(4)第五段注册码由第二段和第三段计算出来:结果是从(SN3 + 0XEB) * SN2 - 5中取出后4位;
(5)最后组成形式是SN1-SN2-SN3-SN4-SN5.
=======================================================================
算法注册机:
#include <stdio.h>
#include <string.h>
#include <math.h>
main()
{ int SN1, SN2, SN3, SN4,SN5;
printf("////////////////////////////////////////////////////\n");
printf("// WinASO Registry Optimizer V2.6 Key Generator //\n");
printf("// //\n");
printf("// Author: ocnzhao[OCN] //\n");
printf("// //\n");
printf("// E-mail: ocnzhao@163.com //\n");
printf("// //\n");
printf("// OS : WinXP, PEiD, Ollydbg, C-Free3.5 //\n");
printf("// //\n");
printf("// Date : 2006-04-25 //\n");
printf("//////////////////////////////////////////////////\n\n");
printf("请输入注册码第一段SN1[4位]: ");
scanf("%d",&SN1);
printf("请输入注册码第一段SN2[4位]: ");
scanf("%d",&SN2);
printf("请输入注册码第一段SN3[4位]: ");
scanf("%d",&SN3);
SN4=(SN2 * SN1-0x3);
if(SN4 < 0X2710)
{
printf("请重新输入,不符合要求");
}
else
SN4=(SN2 * SN1-0x3)%0x2710;
SN5=((SN3 + 0XEB) * SN2 - 5)%0x2710;
printf("注册码是%d-%d-%d-%d-%d",SN1,SN2,SN3,SN4,SN5);
printf("\n");
}
=========================================================================
------------------------------------------------------------------------
【破解总结】
SN:1234-2345-3456-3727-5390
------------------------------------------------------------------------
【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢!