【破文标题】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
------------------------------------------------------------------------
【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢!