【破文标题】WinASO Registry Optimizer V3.0.9算法分析
【破文作者】小子贼野
【作者主页】http://mayday.unpack.cn
【破解工具】OD,PeId
【原版下载】http://www.skycn.com/soft/27630.html
【软件介绍】WinASO Registry Optimizer 是一个 Windows 优化工具和高级注册表清理工具,它允许您以简单的鼠标单击来安全的清理及修复

注册表故障。通过修复陈旧信息及调整 Windows 注册表参数,它对系统速度的提升是值得令人注意的。WinASO Registry Optimizer 被很好的

设计为修复普遍的问题,例如对 Internet Explorer 页面的非法修改。我们已对此工具进行了实际测试来确保您的系统安全。我们没有收到过

任何对系统稳定性的抱怨。  

【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
------------------------------------------------------------------------
Borland Delphi 6.0 - 7.0编写,没壳,爽,哈哈~
------------------------------------------------------------------------
OD载入,运行程序到注册界面,下命令断点bp MessageBoxA,注册确认,程序被中断在:
------------------------------------------------------------------------
77D5058A >  8BFF            MOV EDI,EDI
77D5058C    55              PUSH EBP
77D5058D    8BEC            MOV EBP,ESP
77D5058F    833D BC04D777 0>CMP DWORD PTR DS:[77D704BC],0
77D50596    74 24           JE SHORT USER32.77D505BC
77D50598    64:A1 18000000  MOV EAX,DWORD PTR FS:[18]
------------------------------------------------------------------------
堆栈友好提示:
0012F7BC   0056A7C2  /CALL 到 MessageBoxA 来自 RegOpt.0056A7BD
0012F7C0   004007D4  |hOwner = 004007D4 ('Register Information',class='TfrmRegister',parent=00D5061A)
0012F7C4   01A2F0B8  |Text = "Sorry, that is an invalid license key. Please ensure you have entered the license key exactly 

as provided."
0012F7C8   01A8EDD0  |Title = "Information"
0012F7CC   00000040  \Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
0012F7D0   0012FA0C  指向下一个 SEH 记录的指针
0012F7D4   0056A9F4  SE 处理器
------------------------------------------------------------------------
程序分析算法以下:
------------------------------------------------------------------------
0056A3B3  |.  55            PUSH EBP
0056A3B4  |.  68 F4A95600   PUSH RegOpt.0056A9F4
0056A3B9  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
0056A3BC  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
0056A3BF  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
0056A3C2  |.  8B15 84055A00 MOV EDX,DWORD PTR DS:[5A0584]            ;  RegOpt.005A55E0
0056A3C8  |.  8B92 70080000 MOV EDX,DWORD PTR DS:[EDX+870]
0056A3CE  |.  E8 5DAEE9FF   CALL RegOpt.00405230
0056A3D3  |.  8D55 F4       LEA EDX,DWORD PTR SS:[EBP-C]
0056A3D6  |.  8B83 A4030000 MOV EAX,DWORD PTR DS:[EBX+3A4]
0056A3DC  |.  E8 3BC9EEFF   CALL RegOpt.00456D1C
0056A3E1  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
0056A3E4  |.  E8 9B45F6FF   CALL RegOpt.004CE984
0056A3E9  |.  84C0          TEST AL,AL
0056A3EB  |.  75 2E         JNZ SHORT RegOpt.0056A41B                ;  第一组填了就跳
0056A3ED  |.  6A 40         PUSH 40
0056A3EF  |.  A1 84055A00   MOV EAX,DWORD PTR DS:[5A0584]
0056A3F4  |.  8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
0056A3FA  |.  E8 5DB2E9FF   CALL RegOpt.0040565C
0056A3FF  |.  50            PUSH EAX
0056A400  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0056A403  |.  E8 54B2E9FF   CALL RegOpt.0040565C
0056A408  |.  50            PUSH EAX
0056A409  |.  8BC3          MOV EAX,EBX
0056A40B  |.  E8 0C44EFFF   CALL RegOpt.0045E81C
0056A410  |.  50            PUSH EAX                                 ; |hOwner
0056A411  |.  E8 26DFE9FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
0056A416  |.  E9 6D050000   JMP RegOpt.0056A988
0056A41B  |>  8D55 F0       LEA EDX,DWORD PTR SS:[EBP-10]
0056A41E  |.  8B83 A8030000 MOV EAX,DWORD PTR DS:[EBX+3A8]
0056A424  |.  E8 F3C8EEFF   CALL RegOpt.00456D1C
0056A429  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
0056A42C  |.  E8 5345F6FF   CALL RegOpt.004CE984
0056A431  |.  84C0          TEST AL,AL
0056A433  |.  75 2E         JNZ SHORT RegOpt.0056A463                ;  第二组填了就跳
0056A435  |.  6A 40         PUSH 40
0056A437  |.  A1 84055A00   MOV EAX,DWORD PTR DS:[5A0584]
0056A43C  |.  8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
0056A442  |.  E8 15B2E9FF   CALL RegOpt.0040565C
0056A447  |.  50            PUSH EAX
0056A448  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0056A44B  |.  E8 0CB2E9FF   CALL RegOpt.0040565C
0056A450  |.  50            PUSH EAX
0056A451  |.  8BC3          MOV EAX,EBX
0056A453  |.  E8 C443EFFF   CALL RegOpt.0045E81C
0056A458  |.  50            PUSH EAX                                 ; |hOwner
0056A459  |.  E8 DEDEE9FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
0056A45E  |.  E9 25050000   JMP RegOpt.0056A988
0056A463  |>  8D55 EC       LEA EDX,DWORD PTR SS:[EBP-14]
0056A466  |.  8B83 AC030000 MOV EAX,DWORD PTR DS:[EBX+3AC]
0056A46C  |.  E8 ABC8EEFF   CALL RegOpt.00456D1C
0056A471  |.  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]
0056A474  |.  E8 0B45F6FF   CALL RegOpt.004CE984
0056A479  |.  84C0          TEST AL,AL
0056A47B  |.  75 2E         JNZ SHORT RegOpt.0056A4AB                ;  第三组填了就跳
0056A47D  |.  6A 40         PUSH 40
0056A47F  |.  A1 84055A00   MOV EAX,DWORD PTR DS:[5A0584]
0056A484  |.  8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
0056A48A  |.  E8 CDB1E9FF   CALL RegOpt.0040565C
0056A48F  |.  50            PUSH EAX
0056A490  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0056A493  |.  E8 C4B1E9FF   CALL RegOpt.0040565C
0056A498  |.  50            PUSH EAX
0056A499  |.  8BC3          MOV EAX,EBX
0056A49B  |.  E8 7C43EFFF   CALL RegOpt.0045E81C
0056A4A0  |.  50            PUSH EAX                                 ; |hOwner
0056A4A1  |.  E8 96DEE9FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
0056A4A6  |.  E9 DD040000   JMP RegOpt.0056A988
0056A4AB  |>  8D55 E8       LEA EDX,DWORD PTR SS:[EBP-18]
0056A4AE  |.  8B83 B0030000 MOV EAX,DWORD PTR DS:[EBX+3B0]
0056A4B4  |.  E8 63C8EEFF   CALL RegOpt.00456D1C
0056A4B9  |.  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]
0056A4BC  |.  E8 C344F6FF   CALL RegOpt.004CE984
0056A4C1  |.  84C0          TEST AL,AL
0056A4C3  |.  75 2E         JNZ SHORT RegOpt.0056A4F3                ;  第四组填了就跳
0056A4C5  |.  6A 40         PUSH 40
0056A4C7  |.  A1 84055A00   MOV EAX,DWORD PTR DS:[5A0584]
0056A4CC  |.  8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
0056A4D2  |.  E8 85B1E9FF   CALL RegOpt.0040565C
0056A4D7  |.  50            PUSH EAX
0056A4D8  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0056A4DB  |.  E8 7CB1E9FF   CALL RegOpt.0040565C
0056A4E0  |.  50            PUSH EAX
0056A4E1  |.  8BC3          MOV EAX,EBX
0056A4E3  |.  E8 3443EFFF   CALL RegOpt.0045E81C
0056A4E8  |.  50            PUSH EAX                                 ; |hOwner
0056A4E9  |.  E8 4EDEE9FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
0056A4EE  |.  E9 95040000   JMP RegOpt.0056A988
0056A4F3  |>  8D55 E4       LEA EDX,DWORD PTR SS:[EBP-1C]
0056A4F6  |.  8B83 B4030000 MOV EAX,DWORD PTR DS:[EBX+3B4]
0056A4FC  |.  E8 1BC8EEFF   CALL RegOpt.00456D1C
0056A501  |.  8B45 E4       MOV EAX,DWORD PTR SS:[EBP-1C]
0056A504  |.  E8 7B44F6FF   CALL RegOpt.004CE984
0056A509  |.  84C0          TEST AL,AL
0056A50B  |.  75 2E         JNZ SHORT RegOpt.0056A53B                ;  第五组填了就跳
0056A50D  |.  6A 40         PUSH 40
0056A50F  |.  A1 84055A00   MOV EAX,DWORD PTR DS:[5A0584]
0056A514  |.  8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
0056A51A  |.  E8 3DB1E9FF   CALL RegOpt.0040565C
0056A51F  |.  50            PUSH EAX
0056A520  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0056A523  |.  E8 34B1E9FF   CALL RegOpt.0040565C
0056A528  |.  50            PUSH EAX
0056A529  |.  8BC3          MOV EAX,EBX
0056A52B  |.  E8 EC42EFFF   CALL RegOpt.0045E81C
0056A530  |.  50            PUSH EAX                                 ; |hOwner
0056A531  |.  E8 06DEE9FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
0056A536  |.  E9 4D040000   JMP RegOpt.0056A988
0056A53B  |>  8D55 E0       LEA EDX,DWORD PTR SS:[EBP-20]
0056A53E  |.  8B83 A4030000 MOV EAX,DWORD PTR DS:[EBX+3A4]
0056A544  |.  E8 D3C7EEFF   CALL RegOpt.00456D1C
0056A549  |.  8B45 E0       MOV EAX,DWORD PTR SS:[EBP-20]
0056A54C  |.  8945 DC       MOV DWORD PTR SS:[EBP-24],EAX
0056A54F  |.  8B45 DC       MOV EAX,DWORD PTR SS:[EBP-24]
0056A552  |.  85C0          TEST EAX,EAX
0056A554  |.  74 05         JE SHORT RegOpt.0056A55B
0056A556  |.  83E8 04       SUB EAX,4
0056A559  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
0056A55B  |>  83F8 04       CMP EAX,4                                ;  位数与4比较
0056A55E  |.  74 2E         JE SHORT RegOpt.0056A58E                 ;  相等就Go
0056A560  |.  6A 40         PUSH 40
0056A562  |.  A1 84055A00   MOV EAX,DWORD PTR DS:[5A0584]
0056A567  |.  8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
0056A56D  |.  E8 EAB0E9FF   CALL RegOpt.0040565C
0056A572  |.  50            PUSH EAX
0056A573  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0056A576  |.  E8 E1B0E9FF   CALL RegOpt.0040565C
0056A57B  |.  50            PUSH EAX
0056A57C  |.  8BC3          MOV EAX,EBX
0056A57E  |.  E8 9942EFFF   CALL RegOpt.0045E81C
0056A583  |.  50            PUSH EAX                                 ; |hOwner
0056A584  |.  E8 B3DDE9FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
0056A589  |.  E9 FA030000   JMP RegOpt.0056A988
0056A58E  |>  8D55 D8       LEA EDX,DWORD PTR SS:[EBP-28]
0056A591  |.  8B83 A8030000 MOV EAX,DWORD PTR DS:[EBX+3A8]
0056A597  |.  E8 80C7EEFF   CALL RegOpt.00456D1C
0056A59C  |.  8B45 D8       MOV EAX,DWORD PTR SS:[EBP-28]
0056A59F  |.  8945 DC       MOV DWORD PTR SS:[EBP-24],EAX
0056A5A2  |.  8B45 DC       MOV EAX,DWORD PTR SS:[EBP-24]
0056A5A5  |.  85C0          TEST EAX,EAX
0056A5A7  |.  74 05         JE SHORT RegOpt.0056A5AE
0056A5A9  |.  83E8 04       SUB EAX,4
0056A5AC  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
0056A5AE  |>  83F8 04       CMP EAX,4
0056A5B1  |.  74 2E         JE SHORT RegOpt.0056A5E1                 ;  必须4位
0056A5B3  |.  6A 40         PUSH 40
0056A5B5  |.  A1 84055A00   MOV EAX,DWORD PTR DS:[5A0584]
0056A5BA  |.  8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
0056A5C0  |.  E8 97B0E9FF   CALL RegOpt.0040565C
0056A5C5  |.  50            PUSH EAX
0056A5C6  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0056A5C9  |.  E8 8EB0E9FF   CALL RegOpt.0040565C
0056A5CE  |.  50            PUSH EAX
0056A5CF  |.  8BC3          MOV EAX,EBX
0056A5D1  |.  E8 4642EFFF   CALL RegOpt.0045E81C
0056A5D6  |.  50            PUSH EAX                                 ; |hOwner
0056A5D7  |.  E8 60DDE9FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
0056A5DC  |.  E9 A7030000   JMP RegOpt.0056A988
0056A5E1  |>  8D55 D4       LEA EDX,DWORD PTR SS:[EBP-2C]
0056A5E4  |.  8B83 AC030000 MOV EAX,DWORD PTR DS:[EBX+3AC]
0056A5EA  |.  E8 2DC7EEFF   CALL RegOpt.00456D1C
0056A5EF  |.  8B45 D4       MOV EAX,DWORD PTR SS:[EBP-2C]
0056A5F2  |.  8945 DC       MOV DWORD PTR SS:[EBP-24],EAX
0056A5F5  |.  8B45 DC       MOV EAX,DWORD PTR SS:[EBP-24]
0056A5F8  |.  85C0          TEST EAX,EAX
0056A5FA  |.  74 05         JE SHORT RegOpt.0056A601
0056A5FC  |.  83E8 04       SUB EAX,4
0056A5FF  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
0056A601  |>  83F8 04       CMP EAX,4
0056A604  |.  74 2E         JE SHORT RegOpt.0056A634                 ;  必须4位
0056A606  |.  6A 40         PUSH 40
0056A608  |.  A1 84055A00   MOV EAX,DWORD PTR DS:[5A0584]
0056A60D  |.  8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
0056A613  |.  E8 44B0E9FF   CALL RegOpt.0040565C
0056A618  |.  50            PUSH EAX
0056A619  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0056A61C  |.  E8 3BB0E9FF   CALL RegOpt.0040565C
0056A621  |.  50            PUSH EAX
0056A622  |.  8BC3          MOV EAX,EBX
0056A624  |.  E8 F341EFFF   CALL RegOpt.0045E81C
0056A629  |.  50            PUSH EAX                                 ; |hOwner
0056A62A  |.  E8 0DDDE9FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
0056A62F  |.  E9 54030000   JMP RegOpt.0056A988
0056A634  |>  8D55 D0       LEA EDX,DWORD PTR SS:[EBP-30]
0056A637  |.  8B83 B0030000 MOV EAX,DWORD PTR DS:[EBX+3B0]
0056A63D  |.  E8 DAC6EEFF   CALL RegOpt.00456D1C
0056A642  |.  8B45 D0       MOV EAX,DWORD PTR SS:[EBP-30]
0056A645  |.  8945 DC       MOV DWORD PTR SS:[EBP-24],EAX
0056A648  |.  8B45 DC       MOV EAX,DWORD PTR SS:[EBP-24]
0056A64B  |.  85C0          TEST EAX,EAX
0056A64D  |.  74 05         JE SHORT RegOpt.0056A654
0056A64F  |.  83E8 04       SUB EAX,4
0056A652  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
0056A654  |>  83F8 04       CMP EAX,4
0056A657  |.  74 2E         JE SHORT RegOpt.0056A687                 ;  必须4位
0056A659  |.  6A 40         PUSH 40
0056A65B  |.  A1 84055A00   MOV EAX,DWORD PTR DS:[5A0584]
0056A660  |.  8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
0056A666  |.  E8 F1AFE9FF   CALL RegOpt.0040565C
0056A66B  |.  50            PUSH EAX
0056A66C  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0056A66F  |.  E8 E8AFE9FF   CALL RegOpt.0040565C
0056A674  |.  50            PUSH EAX
0056A675  |.  8BC3          MOV EAX,EBX
0056A677  |.  E8 A041EFFF   CALL RegOpt.0045E81C
0056A67C  |.  50            PUSH EAX                                 ; |hOwner
0056A67D  |.  E8 BADCE9FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
0056A682  |.  E9 01030000   JMP RegOpt.0056A988
0056A687  |>  8D55 CC       LEA EDX,DWORD PTR SS:[EBP-34]
0056A68A  |.  8B83 B4030000 MOV EAX,DWORD PTR DS:[EBX+3B4]
0056A690  |.  E8 87C6EEFF   CALL RegOpt.00456D1C
0056A695  |.  8B45 CC       MOV EAX,DWORD PTR SS:[EBP-34]
0056A698  |.  8945 DC       MOV DWORD PTR SS:[EBP-24],EAX
0056A69B  |.  8B45 DC       MOV EAX,DWORD PTR SS:[EBP-24]
0056A69E  |.  85C0          TEST EAX,EAX
0056A6A0  |.  74 05         JE SHORT RegOpt.0056A6A7
0056A6A2  |.  83E8 04       SUB EAX,4
0056A6A5  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
0056A6A7  |>  83F8 04       CMP EAX,4
0056A6AA  |.  74 2E         JE SHORT RegOpt.0056A6DA                 ;  必须4位
0056A6AC  |.  6A 40         PUSH 40
0056A6AE  |.  A1 84055A00   MOV EAX,DWORD PTR DS:[5A0584]
0056A6B3  |.  8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
0056A6B9  |.  E8 9EAFE9FF   CALL RegOpt.0040565C
0056A6BE  |.  50            PUSH EAX
0056A6BF  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0056A6C2  |.  E8 95AFE9FF   CALL RegOpt.0040565C
0056A6C7  |.  50            PUSH EAX
0056A6C8  |.  8BC3          MOV EAX,EBX
0056A6CA  |.  E8 4D41EFFF   CALL RegOpt.0045E81C
0056A6CF  |.  50            PUSH EAX                                 ; |hOwner
0056A6D0  |.  E8 67DCE9FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
0056A6D5  |.  E9 AE020000   JMP RegOpt.0056A988
0056A6DA  |>  8D55 C8       LEA EDX,DWORD PTR SS:[EBP-38]
0056A6DD  |.  8B83 A4030000 MOV EAX,DWORD PTR DS:[EBX+3A4]
0056A6E3  |.  E8 34C6EEFF   CALL RegOpt.00456D1C
0056A6E8  |.  8B45 C8       MOV EAX,DWORD PTR SS:[EBP-38]            ;  EAX=第一组
0056A6EB  |.  E8 C4F7E9FF   CALL RegOpt.00409EB4                     ;  取它的16进制放EAX
0056A6F0  |.  8BF0          MOV ESI,EAX                              ;  给ESI,设为SN1
0056A6F2  |.  8D55 C4       LEA EDX,DWORD PTR SS:[EBP-3C]
0056A6F5  |.  8B83 A8030000 MOV EAX,DWORD PTR DS:[EBX+3A8]
0056A6FB  |.  E8 1CC6EEFF   CALL RegOpt.00456D1C
0056A700  |.  8B45 C4       MOV EAX,DWORD PTR SS:[EBP-3C]            ;  EAX=第二组
0056A703  |.  E8 ACF7E9FF   CALL RegOpt.00409EB4                     ;  取它的16进制放EAX
0056A708  |.  8BF8          MOV EDI,EAX                              ;  给EDI,设为SN2
0056A70A  |.  8D55 C0       LEA EDX,DWORD PTR SS:[EBP-40]
0056A70D  |.  8B83 AC030000 MOV EAX,DWORD PTR DS:[EBX+3AC]
0056A713  |.  E8 04C6EEFF   CALL RegOpt.00456D1C
0056A718  |.  8B45 C0       MOV EAX,DWORD PTR SS:[EBP-40]            ;  EAX=第三组,设为SN3
0056A71B  |.  E8 94F7E9FF   CALL RegOpt.00409EB4
0056A720  |.  8945 F8       MOV DWORD PTR SS:[EBP-8],EAX             ;  EBP-8=第三组
0056A723  |.  0FAFF7        IMUL ESI,EDI                             ;  ESI*EDI也就是说第一组乘第二组
0056A726  |.  81EE 2B060000 SUB ESI,62B                              ;  结果减62B
0056A72C  |.  81FE 10270000 CMP ESI,2710                             ;  结果和2710比较
0056A732  |.  7D 2E         JGE SHORT RegOpt.0056A762                ;  小于的话就挂了
0056A734  |.  6A 40         PUSH 40
0056A736  |.  A1 84055A00   MOV EAX,DWORD PTR DS:[5A0584]
0056A73B  |.  8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
0056A741  |.  E8 16AFE9FF   CALL RegOpt.0040565C
0056A746  |.  50            PUSH EAX
0056A747  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0056A74A  |.  E8 0DAFE9FF   CALL RegOpt.0040565C
0056A74F  |.  50            PUSH EAX
0056A750  |.  8BC3          MOV EAX,EBX
0056A752  |.  E8 C540EFFF   CALL RegOpt.0045E81C
0056A757  |.  50            PUSH EAX                                 ; |hOwner
0056A758  |.  E8 DFDBE9FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
0056A75D  |.  E9 26020000   JMP RegOpt.0056A988
0056A762  |>  8D55 B8       LEA EDX,DWORD PTR SS:[EBP-48]            ;  大的话就跳到这里了
0056A765  |.  8BC6          MOV EAX,ESI                              ;  EAX=ESI
0056A767  |.  E8 0CF6E9FF   CALL RegOpt.00409D78                     ;  Call进转换成10进制,设为SN4
0056A76C  |.  8B45 B8       MOV EAX,DWORD PTR SS:[EBP-48]
0056A76F  |.  8D4D BC       LEA ECX,DWORD PTR SS:[EBP-44]
0056A772  |.  BA 04000000   MOV EDX,4                                ;  EDX=4
0056A777  |.  E8 14DDEDFF   CALL RegOpt.00448490                     ;  取后四位
0056A77C  |.  8B45 BC       MOV EAX,DWORD PTR SS:[EBP-44]
0056A77F  |.  50            PUSH EAX
0056A780  |.  8D55 B4       LEA EDX,DWORD PTR SS:[EBP-4C]
0056A783  |.  8B83 B0030000 MOV EAX,DWORD PTR DS:[EBX+3B0]
0056A789  |.  E8 8EC5EEFF   CALL RegOpt.00456D1C
0056A78E  |.  8B55 B4       MOV EDX,DWORD PTR SS:[EBP-4C]            ;  EDX=第四组
0056A791  |.  58            POP EAX                                  ;  弹出第四组真码!
0056A792  |.  E8 11AEE9FF   CALL RegOpt.004055A8                     ;  Call进比较
0056A797  |.  74 2E         JE SHORT RegOpt.0056A7C7                 ;  不相等就可以回家睡觉了
0056A799  |.  6A 40         PUSH 40
0056A79B  |.  A1 84055A00   MOV EAX,DWORD PTR DS:[5A0584]
0056A7A0  |.  8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
0056A7A6  |.  E8 B1AEE9FF   CALL RegOpt.0040565C
0056A7AB  |.  50            PUSH EAX
0056A7AC  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0056A7AF  |.  E8 A8AEE9FF   CALL RegOpt.0040565C
0056A7B4  |.  50            PUSH EAX
0056A7B5  |.  8BC3          MOV EAX,EBX
0056A7B7  |.  E8 6040EFFF   CALL RegOpt.0045E81C
0056A7BC  |.  50            PUSH EAX                                 ; |hOwner
0056A7BD  |.  E8 7ADBE9FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
0056A7C2  |.  E9 C1010000   JMP RegOpt.0056A988
0056A7C7  |>  8B75 F8       MOV ESI,DWORD PTR SS:[EBP-8]             ;  第四组注册码相等来到这
0056A7CA  |.  81C6 01020000 ADD ESI,201                              ;  第三组试练码加上201,即SN3+201
0056A7D0  |.  0FAFF7        IMUL ESI,EDI                             ;  其和乘以第二组试练码
0056A7D3  |.  81EE F50D0000 SUB ESI,0DF5                             ;  再减去DF5,我们将它设为SN5
0056A7D9  |.  8D55 AC       LEA EDX,DWORD PTR SS:[EBP-54]
0056A7DC  |.  8BC6          MOV EAX,ESI
0056A7DE  |.  E8 95F5E9FF   CALL RegOpt.00409D78                     ;  Call进转换成10进制
0056A7E3  |.  8B45 AC       MOV EAX,DWORD PTR SS:[EBP-54]
0056A7E6  |.  8D4D B0       LEA ECX,DWORD PTR SS:[EBP-50]
0056A7E9  |.  BA 04000000   MOV EDX,4                                ;  EDX=4
0056A7EE  |.  E8 9DDCEDFF   CALL RegOpt.00448490                     ;  Call进取后四位,和上面一样了
0056A7F3  |.  8B45 B0       MOV EAX,DWORD PTR SS:[EBP-50]
0056A7F6  |.  50            PUSH EAX
0056A7F7  |.  8D55 A8       LEA EDX,DWORD PTR SS:[EBP-58]
0056A7FA  |.  8B83 B4030000 MOV EAX,DWORD PTR DS:[EBX+3B4]
0056A800  |.  E8 17C5EEFF   CALL RegOpt.00456D1C
0056A805  |.  8B55 A8       MOV EDX,DWORD PTR SS:[EBP-58]            ;  Call取第五组试练码
0056A808  |.  58            POP EAX                                  ;  弹出第五组真码
0056A809  |.  E8 9AADE9FF   CALL RegOpt.004055A8                     ;  比较
0056A80E  |.  74 2E         JE SHORT RegOpt.0056A83E                 ;  不等回家睡觉
0056A810  |.  6A 40         PUSH 40
0056A812  |.  A1 84055A00   MOV EAX,DWORD PTR DS:[5A0584]
0056A817  |.  8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
0056A81D  |.  E8 3AAEE9FF   CALL RegOpt.0040565C
0056A822  |.  50            PUSH EAX
0056A823  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0056A826  |.  E8 31AEE9FF   CALL RegOpt.0040565C
0056A82B  |.  50            PUSH EAX
0056A82C  |.  8BC3          MOV EAX,EBX
0056A82E  |.  E8 E93FEFFF   CALL RegOpt.0045E81C
0056A833  |.  50            PUSH EAX                                 ; |hOwner
0056A834  |.  E8 03DBE9FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
0056A839  |.  E9 4A010000   JMP RegOpt.0056A988
0056A83E  |>  8D55 A4       LEA EDX,DWORD PTR SS:[EBP-5C]            ;  第五组试练码相等的话,跳来这
0056A841  |.  8B83 A4030000 MOV EAX,DWORD PTR DS:[EBX+3A4]           ;  接下来的操作就是保存注册信息的啦
0056A847  |.  E8 D0C4EEFF   CALL RegOpt.00456D1C
0056A84C  |.  FF75 A4       PUSH DWORD PTR SS:[EBP-5C]
0056A84F  |.  8D55 A0       LEA EDX,DWORD PTR SS:[EBP-60]
0056A852  |.  8B83 A8030000 MOV EAX,DWORD PTR DS:[EBX+3A8]
0056A858  |.  E8 BFC4EEFF   CALL RegOpt.00456D1C
0056A85D  |.  FF75 A0       PUSH DWORD PTR SS:[EBP-60]
0056A860  |.  8D55 9C       LEA EDX,DWORD PTR SS:[EBP-64]
0056A863  |.  8B83 AC030000 MOV EAX,DWORD PTR DS:[EBX+3AC]
0056A869  |.  E8 AEC4EEFF   CALL RegOpt.00456D1C
0056A86E  |.  FF75 9C       PUSH DWORD PTR SS:[EBP-64]
0056A871  |.  8D55 98       LEA EDX,DWORD PTR SS:[EBP-68]
0056A874  |.  8B83 B0030000 MOV EAX,DWORD PTR DS:[EBX+3B0]
0056A87A  |.  E8 9DC4EEFF   CALL RegOpt.00456D1C
0056A87F  |.  FF75 98       PUSH DWORD PTR SS:[EBP-68]
0056A882  |.  8D55 94       LEA EDX,DWORD PTR SS:[EBP-6C]
0056A885  |.  8B83 B4030000 MOV EAX,DWORD PTR DS:[EBX+3B4]
0056A88B  |.  E8 8CC4EEFF   CALL RegOpt.00456D1C
0056A890  |.  FF75 94       PUSH DWORD PTR SS:[EBP-6C]
0056A893  |.  A1 CC115A00   MOV EAX,DWORD PTR DS:[5A11CC]
0056A898  |.  BA 05000000   MOV EDX,5
0056A89D  |.  E8 7AACE9FF   CALL RegOpt.0040551C
0056A8A2  |.  B2 01         MOV DL,1
0056A8A4  |.  A1 8CCC4200   MOV EAX,DWORD PTR DS:[42CC8C]
0056A8A9  |.  E8 DE24ECFF   CALL RegOpt.0042CD8C
0056A8AE  |.  8BF0          MOV ESI,EAX
0056A8B0  |.  BA 02000080   MOV EDX,80000002
0056A8B5  |.  8BC6          MOV EAX,ESI
0056A8B7  |.  E8 7025ECFF   CALL RegOpt.0042CE2C
0056A8BC  |.  B1 01         MOV CL,1
0056A8BE  |.  BA 0CAA5600   MOV EDX,RegOpt.0056AA0C                  ;  ASCII "\SOFTWARE\WinASO\Registry Optimizer"
0056A8C3  |.  8BC6          MOV EAX,ESI
0056A8C5  |.  E8 A626ECFF   CALL RegOpt.0042CF70
0056A8CA  |.  84C0          TEST AL,AL
0056A8CC  |.  74 14         JE SHORT RegOpt.0056A8E2
0056A8CE  |.  8B0D CC115A00 MOV ECX,DWORD PTR DS:[5A11CC]            ;  RegOpt.005A62D8
0056A8D4  |.  8B09          MOV ECX,DWORD PTR DS:[ECX]
0056A8D6  |.  BA 38AA5600   MOV EDX,RegOpt.0056AA38                  ;  ASCII "RegOptKey3.0"
0056A8DB  |.  8BC6          MOV EAX,ESI
0056A8DD  |.  E8 9A2DECFF   CALL RegOpt.0042D67C
0056A8E2  |>  8D55 8C       LEA EDX,DWORD PTR SS:[EBP-74]
0056A8E5  |.  A1 A40D5A00   MOV EAX,DWORD PTR DS:[5A0DA4]
0056A8EA  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
0056A8EC  |.  E8 73A9F0FF   CALL RegOpt.00475264
0056A8F1  |.  8B45 8C       MOV EAX,DWORD PTR SS:[EBP-74]
0056A8F4  |.  8D55 90       LEA EDX,DWORD PTR SS:[EBP-70]
0056A8F7  |.  E8 FCFCE9FF   CALL RegOpt.0040A5F8
0056A8FC  |.  8D45 90       LEA EAX,DWORD PTR SS:[EBP-70]
0056A8FF  |.  BA 50AA5600   MOV EDX,RegOpt.0056AA50                  ;  ASCII "regkey.ini"
0056A904  |.  E8 5BABE9FF   CALL RegOpt.00405464
0056A909  |.  8B4D 90       MOV ECX,DWORD PTR SS:[EBP-70]
0056A90C  |.  B2 01         MOV DL,1
0056A90E  |.  A1 BCAE4200   MOV EAX,DWORD PTR DS:[42AEBC]
0056A913  |.  E8 5C06ECFF   CALL RegOpt.0042AF74
0056A918  |.  8BF0          MOV ESI,EAX
0056A91A  |.  A1 CC115A00   MOV EAX,DWORD PTR DS:[5A11CC]
0056A91F  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
0056A921  |.  50            PUSH EAX
0056A922  |.  B9 64AA5600   MOV ECX,RegOpt.0056AA64                  ;  ASCII "300"
0056A927  |.  BA 70AA5600   MOV EDX,RegOpt.0056AA70                  ;  ASCII "regkey"
0056A92C  |.  8BC6          MOV EAX,ESI
0056A92E  |.  8B38          MOV EDI,DWORD PTR DS:[EAX]
0056A930  |.  FF57 04       CALL DWORD PTR DS:[EDI+4]
0056A933  |.  8BC6          MOV EAX,ESI
0056A935  |.  E8 1E99E9FF   CALL RegOpt.00404258
0056A93A  |.  6A 40         PUSH 40
0056A93C  |.  A1 84055A00   MOV EAX,DWORD PTR DS:[5A0584]
0056A941  |.  8B80 6C080000 MOV EAX,DWORD PTR DS:[EAX+86C]
0056A947  |.  E8 10ADE9FF   CALL RegOpt.0040565C
0056A94C  |.  50            PUSH EAX
0056A94D  |.  A1 84055A00   MOV EAX,DWORD PTR DS:[5A0584]
0056A952  |.  8B80 74080000 MOV EAX,DWORD PTR DS:[EAX+874]
0056A958  |.  E8 FFACE9FF   CALL RegOpt.0040565C
0056A95D  |.  50            PUSH EAX
0056A95E  |.  8BC3          MOV EAX,EBX
0056A960  |.  E8 B73EEFFF   CALL RegOpt.0045E81C
0056A965  |.  50            PUSH EAX                                 ; |hOwner
0056A966  |.  E8 D1D9E9FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
0056A96B  |.  8BC3          MOV EAX,EBX
0056A96D  |.  E8 CE63F0FF   CALL RegOpt.00470D40
0056A972  |.  6A 00         PUSH 0                                   ; /lParam = 0
0056A974  |.  6A 00         PUSH 0                                   ; |wParam = 0
0056A976  |.  68 78070000   PUSH 778                                 ; |Message = MSG(778)
0056A97B  |.  A1 E00D5A00   MOV EAX,DWORD PTR DS:[5A0DE0]            ; |
0056A980  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]               ; |
0056A982  |.  50            PUSH EAX                                 ; |hWnd
0056A983  |.  E8 54DAE9FF   CALL <JMP.&user32.SendMessageA>          ; \SendMessageA
0056A988  |>  33C0          XOR EAX,EAX
0056A98A  |.  5A            POP EDX                                  ;  0012FA0C
0056A98B  |.  59            POP ECX
0056A98C  |.  59            POP ECX
0056A98D  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
0056A990  |.  68 FBA95600   PUSH RegOpt.0056A9FB
0056A995  |>  8D45 8C       LEA EAX,DWORD PTR SS:[EBP-74]
0056A998  |.  BA 02000000   MOV EDX,2
0056A99D  |.  E8 1AA8E9FF   CALL RegOpt.004051BC
0056A9A2  |.  8D45 94       LEA EAX,DWORD PTR SS:[EBP-6C]
0056A9A5  |.  BA 06000000   MOV EDX,6
0056A9AA  |.  E8 0DA8E9FF   CALL RegOpt.004051BC
0056A9AF  |.  8D45 AC       LEA EAX,DWORD PTR SS:[EBP-54]
0056A9B2  |.  BA 02000000   MOV EDX,2
0056A9B7  |.  E8 00A8E9FF   CALL RegOpt.004051BC
0056A9BC  |.  8D45 B4       LEA EAX,DWORD PTR SS:[EBP-4C]
0056A9BF  |.  E8 D4A7E9FF   CALL RegOpt.00405198
0056A9C4  |.  8D45 B8       LEA EAX,DWORD PTR SS:[EBP-48]
0056A9C7  |.  BA 02000000   MOV EDX,2
0056A9CC  |.  E8 EBA7E9FF   CALL RegOpt.004051BC
0056A9D1  |.  8D45 C0       LEA EAX,DWORD PTR SS:[EBP-40]
0056A9D4  |.  BA 07000000   MOV EDX,7
0056A9D9  |.  E8 DEA7E9FF   CALL RegOpt.004051BC
0056A9DE  |.  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
0056A9E1  |.  BA 06000000   MOV EDX,6
0056A9E6  |.  E8 D1A7E9FF   CALL RegOpt.004051BC
0056A9EB  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
0056A9EE  |.  E8 A5A7E9FF   CALL RegOpt.00405198
0056A9F3  \.  C3            RETN
0056A9F4   .^ E9 33A0E9FF   JMP RegOpt.00404A2C
0056A9F9   .^ EB 9A         JMP SHORT RegOpt.0056A995
0056A9FB   .  5F            POP EDI
0056A9FC   .  5E            POP ESI
0056A9FD   .  5B            POP EBX
0056A9FE   .  8BE5          MOV ESP,EBP
0056AA00   .  5D            POP EBP
0056AA01   .  C3            RETN
【算法总结】
------------------------------------------------------------------------
一、五组整数值注册码,每组四位
二、第一,二,三组注册码任意,分别设sn1,sn2,sn3
三、第四组注册码sn4算法为:sn1*sn2-$62B,取结果后四位
四、第五组注册码sn5算法为:(sn3+$201)*sn2-$DF5,取结果后四位
五、注册码保存在“HKEY_LOCAL_MACHINE\SOFTWARE\WinASO\Registry Optimizer”中,删除可继续调试
------------------------------------------------------------------------
【Delphi算法注册机源码】
procedure TForm1.Button1Click(Sender: TObject);
var
sn1,sn2,sn3,sn4,sn5:integer;
begin
sn1:=strtoint(inttostr(randomrange(1,9))+inttostr(randomrange(1,9))+inttostr(randomrange(1,9))+inttostr(randomrange(1,9)));
sn2:=strtoint(inttostr(randomrange(1,9))+inttostr(randomrange(1,9))+inttostr(randomrange(1,9))+inttostr(randomrange(1,9)));
sn3:=strtoint(inttostr(randomrange(1,9))+inttostr(randomrange(1,9))+inttostr(randomrange(1,9))+inttostr(randomrange(1,9)));
sn4:=strtoint(rightstr(inttostr((sn1*sn2)-$62B),4));
sn5:=strtoint(rightstr(inttostr((sn3+$201)*sn2-$DF5),4));
edit1.Text:=inttostr(sn1);
edit2.Text:=inttostr(sn2);
edit3.Text:=inttostr(sn3);
edit4.Text:=inttostr(sn4);
edit5.Text:=inttostr(sn5);
end;
end.

这样的算法真累人