【破文标题】Super Utilities Standard 9.6.11算法分析
【破文作者】tianxj
【作者邮箱】tianxj_2007@126.com
【作者主页】WwW.ChiNaPYG.CoM
【破解工具】PEiD,OD
【破解平台】Windows XP
【软件名称】Super Utilities Standard 9.6.11
【软件大小】4234KB 
【软件类别】国外软件/系统辅助  
【软件授权】共享版 
【软件语言】英文 
【运行环境】Win9x/Me/NT/2000/XP/2003 
【更新时间】2009-7-9 8:00:02 
【原版下载】http://www.onlinedown.net/soft/16811.htm
【保护方式】注册码
【软件简介】Super Utilities一套强力系统工具。包含了磁盘清理,注册表清理,程序卸载,自启动管理,内存优化及目录文件夹保护,历史记录清除,进程管理、IE保护等大量

有用的功能
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------
【破解内容】
--------------------------------------------------------------
**************************************************************
一、运行程序,进行注册,输入错误的注册信息进行检测,无提示信息
**************************************************************
二、用PEiD对SuperUtil.exe查壳,为 UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
**************************************************************
三、打开OD,带壳调试,附加进程

代码:
未命名的窗口, 条目 9
 进程=00000318
 名称=SuperUtil
 窗口=Register
 路径=C:\Program Files\SuperLogix\Super Utilities\SuperUtil.exe
下万能断点,断到关键之处
代码:
005F19AC    FF75 F4         PUSH    DWORD PTR SS:[EBP-C]             ; //第1组试炼码
005F19AF    68 6C1B5F00     PUSH    SuperUti.005F1B6C                ; //"-"
005F19B4    8D55 F0         LEA     EDX, DWORD PTR SS:[EBP-10]
005F19B7    8B03            MOV     EAX, DWORD PTR DS:[EBX]
005F19B9    8B80 1C030000   MOV     EAX, DWORD PTR DS:[EAX+31C]
005F19BF    E8 84F2EEFF     CALL    SuperUti.004E0C48
005F19C4    FF75 F0         PUSH    DWORD PTR SS:[EBP-10]            ; //第2组试炼码
005F19C7    68 6C1B5F00     PUSH    SuperUti.005F1B6C                ; //"-"
005F19CC    8D55 EC         LEA     EDX, DWORD PTR SS:[EBP-14]
005F19CF    8B03            MOV     EAX, DWORD PTR DS:[EBX]
005F19D1    8B80 20030000   MOV     EAX, DWORD PTR DS:[EAX+320]
005F19D7    E8 6CF2EEFF     CALL    SuperUti.004E0C48
005F19DC    FF75 EC         PUSH    DWORD PTR SS:[EBP-14]            ; //第3组试炼码
005F19DF    68 6C1B5F00     PUSH    SuperUti.005F1B6C                ; //"-"
005F19E4    8D55 E8         LEA     EDX, DWORD PTR SS:[EBP-18]
005F19E7    8B03            MOV     EAX, DWORD PTR DS:[EBX]
005F19E9    8B80 24030000   MOV     EAX, DWORD PTR DS:[EAX+324]
005F19EF    E8 54F2EEFF     CALL    SuperUti.004E0C48
005F19F4    FF75 E8         PUSH    DWORD PTR SS:[EBP-18]            ; //第4组试炼码
005F19F7    8D45 FC         LEA     EAX, DWORD PTR SS:[EBP-4]
005F19FA    BA 07000000     MOV     EDX, 7
005F19FF    E8 0838E1FF     CALL    SuperUti.0040520C                ; //7组字符串相连,设为字符串A
005F1A04    8B03            MOV     EAX, DWORD PTR DS:[EBX]
005F1A06    8B90 34030000   MOV     EDX, DWORD PTR DS:[EAX+334]      ; //用户名
005F1A0C    A1 40147000     MOV     EAX, DWORD PTR DS:[701440]
005F1A11    8B00            MOV     EAX, DWORD PTR DS:[EAX]
005F1A13    8B4D FC         MOV     ECX, DWORD PTR SS:[EBP-4]        ; //字符串A
005F1A16    E8 653CFAFF     CALL    SuperUti.00595680                ; //关键CALL
005F1A1B    84C0            TEST    AL, AL
005F1A1D    74 4B           JE      SHORT SuperUti.005F1A6A
005F1A1F    66:A1 C01A5F00  MOV     AX, WORD PTR DS:[5F1AC0]
005F1A25    50              PUSH    EAX
005F1A26    6A 00           PUSH    0
005F1A28    8D4D E4         LEA     ECX, DWORD PTR SS:[EBP-1C]
005F1A2B    BA 781B5F00     MOV     EDX, SuperUti.005F1B78           ; ASCII "C_FrmAbout_lbThanks"
005F1A30    B8 941B5F00     MOV     EAX, SuperUti.005F1B94           ; ASCII "We sincerely appreciate your support of SuperLogix. Now you become a legal user 

of Super Utilities."
跟进关键CALL
代码:
00595680    55              PUSH    EBP
00595681    8BEC            MOV     EBP, ESP
00595683    83C4 F0         ADD     ESP, -10
00595686    53              PUSH    EBX
00595687    894D F8         MOV     DWORD PTR SS:[EBP-8], ECX
0059568A    8955 FC         MOV     DWORD PTR SS:[EBP-4], EDX
0059568D    8BD8            MOV     EBX, EAX
0059568F    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-4]
00595692    E8 A5FCE6FF     CALL    SuperUti.0040533C
00595697    8B45 F8         MOV     EAX, DWORD PTR SS:[EBP-8]
0059569A    E8 9DFCE6FF     CALL    SuperUti.0040533C
0059569F    33C0            XOR     EAX, EAX
005956A1    55              PUSH    EBP
005956A2    68 6B575900     PUSH    SuperUti.0059576B
005956A7    64:FF30         PUSH    DWORD PTR FS:[EAX]
005956AA    64:8920         MOV     DWORD PTR FS:[EAX], ESP
005956AD    8B4D F8         MOV     ECX, DWORD PTR SS:[EBP-8]        ; //字符串A
005956B0    8B55 FC         MOV     EDX, DWORD PTR SS:[EBP-4]        ; //用户名
005956B3    8BC3            MOV     EAX, EBX
005956B5    E8 B6080000     CALL    SuperUti.00595F70                ; //关键CALL
005956BA    8845 F7         MOV     BYTE PTR SS:[EBP-9], AL
005956BD    807D F7 00      CMP     BYTE PTR SS:[EBP-9], 0
005956C1    0F84 89000000   JE      SuperUti.00595750
005956C7    B2 01           MOV     DL, 1
005956C9    A1 88684400     MOV     EAX, DWORD PTR DS:[446888]
005956CE    E8 2113EBFF     CALL    SuperUti.004469F4
005956D3    8945 F0         MOV     DWORD PTR SS:[EBP-10], EAX
005956D6    33C0            XOR     EAX, EAX
005956D8    55              PUSH    EBP
005956D9    68 49575900     PUSH    SuperUti.00595749
005956DE    64:FF30         PUSH    DWORD PTR FS:[EAX]
005956E1    64:8920         MOV     DWORD PTR FS:[EAX], ESP
005956E4    B1 01           MOV     CL, 1
005956E6    BA 84575900     MOV     EDX, SuperUti.00595784           ; ASCII "Software\SuperLogix\Super Utilities\"
005956EB    8B45 F0         MOV     EAX, DWORD PTR SS:[EBP-10]
005956EE    E8 2115EBFF     CALL    SuperUti.00446C14
005956F3    8B4D FC         MOV     ECX, DWORD PTR SS:[EBP-4]
005956F6    BA B4575900     MOV     EDX, SuperUti.005957B4           ; ASCII "Username"
005956FB    8B45 F0         MOV     EAX, DWORD PTR SS:[EBP-10]
005956FE    E8 611AEBFF     CALL    SuperUti.00447164
00595703    8B4D F8         MOV     ECX, DWORD PTR SS:[EBP-8]
00595706    BA C8575900     MOV     EDX, SuperUti.005957C8           ; ASCII "CodeSetting"
0059570B    8B45 F0         MOV     EAX, DWORD PTR SS:[EBP-10]
0059570E    E8 511AEBFF     CALL    SuperUti.00447164
00595713    A1 8C517000     MOV     EAX, DWORD PTR DS:[70518C]
00595718    83C0 04         ADD     EAX, 4
0059571B    8B55 FC         MOV     EDX, DWORD PTR SS:[EBP-4]
0059571E    E8 BDF7E6FF     CALL    SuperUti.00404EE0
00595723    A1 8C517000     MOV     EAX, DWORD PTR DS:[70518C]
00595728    83C0 08         ADD     EAX, 8
0059572B    8B55 F8         MOV     EDX, DWORD PTR SS:[EBP-8]
0059572E    E8 ADF7E6FF     CALL    SuperUti.00404EE0
00595733    33C0            XOR     EAX, EAX
00595735    5A              POP     EDX
00595736    59              POP     ECX
00595737    59              POP     ECX
00595738    64:8910         MOV     DWORD PTR FS:[EAX], EDX
0059573B    68 50575900     PUSH    SuperUti.00595750
00595740    8B45 F0         MOV     EAX, DWORD PTR SS:[EBP-10]
00595743    E8 30E8E6FF     CALL    SuperUti.00403F78
00595748    C3              RETN
00595749  ^ E9 BEEFE6FF     JMP     SuperUti.0040470C
0059574E  ^ EB F0           JMP     SHORT SuperUti.00595740
00595750    33C0            XOR     EAX, EAX
00595752    5A              POP     EDX
00595753    59              POP     ECX
00595754    59              POP     ECX
00595755    64:8910         MOV     DWORD PTR FS:[EAX], EDX
00595758    68 72575900     PUSH    SuperUti.00595772
0059575D    8D45 F8         LEA     EAX, DWORD PTR SS:[EBP-8]
00595760    BA 02000000     MOV     EDX, 2
00595765    E8 46F7E6FF     CALL    SuperUti.00404EB0
0059576A    C3              RETN
0059576B  ^ E9 9CEFE6FF     JMP     SuperUti.0040470C
00595770  ^ EB EB           JMP     SHORT SuperUti.0059575D
00595772    8A45 F7         MOV     AL, BYTE PTR SS:[EBP-9]
00595775    5B              POP     EBX
00595776    8BE5            MOV     ESP, EBP
00595778    5D              POP     EBP
00595779    C3              RETN
==============================================================
00595F70    55              PUSH    EBP
00595F71    8BEC            MOV     EBP, ESP
00595F73    51              PUSH    ECX
00595F74    B9 13000000     MOV     ECX, 13
00595F79    6A 00           PUSH    0
00595F7B    6A 00           PUSH    0
00595F7D    49              DEC     ECX
00595F7E  ^ 75 F9           JNZ     SHORT SuperUti.00595F79
00595F80    51              PUSH    ECX
00595F81    874D FC         XCHG    DWORD PTR SS:[EBP-4], ECX
00595F84    53              PUSH    EBX
00595F85    56              PUSH    ESI
00595F86    57              PUSH    EDI
00595F87    894D F4         MOV     DWORD PTR SS:[EBP-C], ECX
00595F8A    8955 F8         MOV     DWORD PTR SS:[EBP-8], EDX
00595F8D    8945 FC         MOV     DWORD PTR SS:[EBP-4], EAX
00595F90    8B45 F8         MOV     EAX, DWORD PTR SS:[EBP-8]
00595F93    E8 A4F3E6FF     CALL    SuperUti.0040533C
00595F98    8B45 F4         MOV     EAX, DWORD PTR SS:[EBP-C]
00595F9B    E8 9CF3E6FF     CALL    SuperUti.0040533C
00595FA0    33C0            XOR     EAX, EAX
00595FA2    55              PUSH    EBP
00595FA3    68 37655900     PUSH    SuperUti.00596537
00595FA8    64:FF30         PUSH    DWORD PTR FS:[EAX]
00595FAB    64:8920         MOV     DWORD PTR FS:[EAX], ESP
00595FAE    33C0            XOR     EAX, EAX
00595FB0    55              PUSH    EBP
00595FB1    68 F8645900     PUSH    SuperUti.005964F8
00595FB6    64:FF30         PUSH    DWORD PTR FS:[EAX]
00595FB9    64:8920         MOV     DWORD PTR FS:[EAX], ESP
00595FBC    A1 C4207000     MOV     EAX, DWORD PTR DS:[7020C4]
00595FC1    8B00            MOV     EAX, DWORD PTR DS:[EAX]
00595FC3    66:BA F5FF      MOV     DX, 0FFF5
00595FC7    E8 48FFEFFF     CALL    SuperUti.00495F14
00595FCC    C645 F3 00      MOV     BYTE PTR SS:[EBP-D], 0
00595FD0    33C0            XOR     EAX, EAX
00595FD2    55              PUSH    EBP
00595FD3    68 CA645900     PUSH    SuperUti.005964CA
00595FD8    64:FF30         PUSH    DWORD PTR FS:[EAX]
00595FDB    64:8920         MOV     DWORD PTR FS:[EAX], ESP
00595FDE    B2 01           MOV     DL, 1
00595FE0    A1 28DC4100     MOV     EAX, DWORD PTR DS:[41DC28]
00595FE5    E8 5EDFE6FF     CALL    SuperUti.00403F48
00595FEA    8945 E4         MOV     DWORD PTR SS:[EBP-1C], EAX
00595FED    B8 FF000000     MOV     EAX, 0FF
00595FF2    E8 99C8E6FF     CALL    SuperUti.00402890
00595FF7    8BD8            MOV     EBX, EAX
00595FF9    68 FF000000     PUSH    0FF
00595FFE    53              PUSH    EBX
00595FFF    E8 CC1BE7FF     CALL    SuperUti.00407BD0                ; JMP 到 KERNEL32.GetSystemDirectoryA
00596004    8D45 DC         LEA     EAX, DWORD PTR SS:[EBP-24]
00596007    8BD3            MOV     EDX, EBX
00596009    E8 76F0E6FF     CALL    SuperUti.00405084
0059600E    8D45 DC         LEA     EAX, DWORD PTR SS:[EBP-24]
00596011    BA 50655900     MOV     EDX, SuperUti.00596550           ; ASCII "\bn.dll"
00596016    E8 39F1E6FF     CALL    SuperUti.00405154
0059601B    8B45 DC         MOV     EAX, DWORD PTR SS:[EBP-24]
0059601E    E8 F948E7FF     CALL    SuperUti.0040A91C
00596023    84C0            TEST    AL, AL
00596025    74 22           JE      SHORT SuperUti.00596049
00596027    8D45 D8         LEA     EAX, DWORD PTR SS:[EBP-28]
0059602A    8BD3            MOV     EDX, EBX
0059602C    E8 53F0E6FF     CALL    SuperUti.00405084
00596031    8D45 D8         LEA     EAX, DWORD PTR SS:[EBP-28]
00596034    BA 50655900     MOV     EDX, SuperUti.00596550           ; ASCII "\bn.dll"
00596039    E8 16F1E6FF     CALL    SuperUti.00405154
0059603E    8B55 D8         MOV     EDX, DWORD PTR SS:[EBP-28]
00596041    8B45 E4         MOV     EAX, DWORD PTR SS:[EBP-1C]
00596044    8B08            MOV     ECX, DWORD PTR DS:[EAX]
00596046    FF51 68         CALL    NEAR DWORD PTR DS:[ECX+68]
00596049    8BC3            MOV     EAX, EBX
0059604B    E8 60C8E6FF     CALL    SuperUti.004028B0
00596050    8B45 E4         MOV     EAX, DWORD PTR SS:[EBP-1C]
00596053    8B10            MOV     EDX, DWORD PTR DS:[EAX]
00596055    FF52 14         CALL    NEAR DWORD PTR DS:[EDX+14]
00596058    8BF0            MOV     ESI, EAX
0059605A    4E              DEC     ESI
0059605B    85F6            TEST    ESI, ESI
0059605D    0F8C A3000000   JL      SuperUti.00596106
00596063    46              INC     ESI
00596064    33DB            XOR     EBX, EBX
00596066    8D55 D4         LEA     EDX, DWORD PTR SS:[EBP-2C]
00596069    8B45 F8         MOV     EAX, DWORD PTR SS:[EBP-8]
0059606C    E8 FB3BE7FF     CALL    SuperUti.00409C6C
00596071    8B45 D4         MOV     EAX, DWORD PTR SS:[EBP-2C]
00596074    50              PUSH    EAX
00596075    8D4D CC         LEA     ECX, DWORD PTR SS:[EBP-34]
00596078    8BD3            MOV     EDX, EBX
0059607A    8B45 E4         MOV     EAX, DWORD PTR SS:[EBP-1C]
0059607D    8B38            MOV     EDI, DWORD PTR DS:[EAX]
0059607F    FF57 0C         CALL    NEAR DWORD PTR DS:[EDI+C]
00596082    8B45 CC         MOV     EAX, DWORD PTR SS:[EBP-34]
00596085    8D55 D0         LEA     EDX, DWORD PTR SS:[EBP-30]
00596088    E8 DF3BE7FF     CALL    SuperUti.00409C6C
0059608D    8B55 D0         MOV     EDX, DWORD PTR SS:[EBP-30]
00596090    58              POP     EAX
00596091    E8 02F2E6FF     CALL    SuperUti.00405298
00596096    75 1A           JNZ     SHORT SuperUti.005960B2
00596098    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-4]
0059609B    E8 FC0E0000     CALL    SuperUti.00596F9C
005960A0    33C0            XOR     EAX, EAX
005960A2    5A              POP     EDX
005960A3    59              POP     ECX
005960A4    59              POP     ECX
005960A5    64:8910         MOV     DWORD PTR FS:[EAX], EDX
005960A8    E8 07E8E6FF     CALL    SuperUti.004048B4
005960AD    E9 4D040000     JMP     SuperUti.005964FF
005960B2    8D55 C8         LEA     EDX, DWORD PTR SS:[EBP-38]
005960B5    8B45 F4         MOV     EAX, DWORD PTR SS:[EBP-C]
005960B8    E8 AF3BE7FF     CALL    SuperUti.00409C6C
005960BD    8B45 C8         MOV     EAX, DWORD PTR SS:[EBP-38]
005960C0    50              PUSH    EAX
005960C1    8D4D C0         LEA     ECX, DWORD PTR SS:[EBP-40]
005960C4    8BD3            MOV     EDX, EBX
005960C6    8B45 E4         MOV     EAX, DWORD PTR SS:[EBP-1C]
005960C9    8B38            MOV     EDI, DWORD PTR DS:[EAX]
005960CB    FF57 0C         CALL    NEAR DWORD PTR DS:[EDI+C]
005960CE    8B45 C0         MOV     EAX, DWORD PTR SS:[EBP-40]
005960D1    8D55 C4         LEA     EDX, DWORD PTR SS:[EBP-3C]
005960D4    E8 933BE7FF     CALL    SuperUti.00409C6C
005960D9    8B55 C4         MOV     EDX, DWORD PTR SS:[EBP-3C]
005960DC    58              POP     EAX
005960DD    E8 B6F1E6FF     CALL    SuperUti.00405298
005960E2    75 1A           JNZ     SHORT SuperUti.005960FE
005960E4    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-4]
005960E7    E8 B00E0000     CALL    SuperUti.00596F9C
005960EC    33C0            XOR     EAX, EAX
005960EE    5A              POP     EDX
005960EF    59              POP     ECX
005960F0    59              POP     ECX
005960F1    64:8910         MOV     DWORD PTR FS:[EAX], EDX
005960F4    E8 BBE7E6FF     CALL    SuperUti.004048B4
005960F9    E9 01040000     JMP     SuperUti.005964FF
005960FE    43              INC     EBX
005960FF    4E              DEC     ESI
00596100  ^ 0F85 60FFFFFF   JNZ     SuperUti.00596066
00596106    8D45 E0         LEA     EAX, DWORD PTR SS:[EBP-20]
00596109    BA 60655900     MOV     EDX, SuperUti.00596560           ; ASCII "superlogix"
0059610E    E8 11EEE6FF     CALL    SuperUti.00404F24
00596113    33C9            XOR     ECX, ECX
00596115    B2 01           MOV     DL, 1
00596117    A1 B4234C00     MOV     EAX, DWORD PTR DS:[4C23B4]
0059611C    E8 A3C7F2FF     CALL    SuperUti.004C28C4
00596121    8BD8            MOV     EBX, EAX
00596123    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-4]
00596126    8958 10         MOV     DWORD PTR DS:[EAX+10], EBX
00596129    33C0            XOR     EAX, EAX
0059612B    55              PUSH    EBP
0059612C    68 88615900     PUSH    SuperUti.00596188
00596131    64:FF30         PUSH    DWORD PTR FS:[EAX]
00596134    64:8920         MOV     DWORD PTR FS:[EAX], ESP
00596137    A0 6C655900     MOV     AL, BYTE PTR DS:[59656C]
0059613C    50              PUSH    EAX
0059613D    8D45 B4         LEA     EAX, DWORD PTR SS:[EBP-4C]
00596140    50              PUSH    EAX
00596141    B9 78655900     MOV     ECX, SuperUti.00596578           ; ASCII "%20"
00596146    BA 84655900     MOV     EDX, SuperUti.00596584
0059614B    8B45 F8         MOV     EAX, DWORD PTR SS:[EBP-8]
0059614E    E8 159EE7FF     CALL    SuperUti.0040FF68
00596153    8B4D B4         MOV     ECX, DWORD PTR SS:[EBP-4C]       ; //用户名
00596156    8D45 B8         LEA     EAX, DWORD PTR SS:[EBP-48]
00596159    BA 90655900     MOV     EDX, SuperUti.00596590           ; ASCII "http://www.superlogix.net/finduser2.php?name="
0059615E    E8 35F0E6FF     CALL    SuperUti.00405198
00596163    8B55 B8         MOV     EDX, DWORD PTR SS:[EBP-48]
00596166    8D4D BC         LEA     ECX, DWORD PTR SS:[EBP-44]
00596169    8BC3            MOV     EAX, EBX
0059616B    E8 CCC8F2FF     CALL    SuperUti.004C2A3C
00596170    8B55 BC         MOV     EDX, DWORD PTR SS:[EBP-44]
00596173    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-4]
00596176    83C0 0C         ADD     EAX, 0C
00596179    E8 62EDE6FF     CALL    SuperUti.00404EE0
0059617E    33C0            XOR     EAX, EAX
00596180    5A              POP     EDX
00596181    59              POP     ECX
00596182    59              POP     ECX
00596183    64:8910         MOV     DWORD PTR FS:[EAX], EDX
00596186    EB 0A           JMP     SHORT SuperUti.00596192
00596188  ^ E9 CBE2E6FF     JMP     SuperUti.00404458
0059618D    E8 F2E6E6FF     CALL    SuperUti.00404884
00596192    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-4]
00596195    8B40 0C         MOV     EAX, DWORD PTR DS:[EAX+C]
00596198    BA C8655900     MOV     EDX, SuperUti.005965C8           ; ASCII "nofind"
0059619D    E8 F6F0E6FF     CALL    SuperUti.00405298
005961A2    75 06           JNZ     SHORT SuperUti.005961AA
005961A4    C645 F3 00      MOV     BYTE PTR SS:[EBP-D], 0
005961A8    EB 74           JMP     SHORT SuperUti.0059621E
005961AA    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-4]
005961AD    8B50 0C         MOV     EDX, DWORD PTR DS:[EAX+C]
005961B0    B8 D8655900     MOV     EAX, SuperUti.005965D8           ; ASCII "find"
005961B5    E8 D6F2E6FF     CALL    SuperUti.00405490
005961BA    85C0            TEST    EAX, EAX
005961BC    7E 60           JLE     SHORT SuperUti.0059621E          ; //上面为网络验证
005961BE    C645 F3 01      MOV     BYTE PTR SS:[EBP-D], 1
005961C2    6A 01           PUSH    1
005961C4    B9 E8655900     MOV     ECX, SuperUti.005965E8           ; ASCII "AutoUpdate"
005961C9    BA FC655900     MOV     EDX, SuperUti.005965FC           ; ASCII "Software\Superlogix\Super Utilities"
005961CE    B8 01000080     MOV     EAX, 80000001
005961D3    E8 30E0FFFF     CALL    SuperUti.00594208
005961D8    6A 01           PUSH    1
005961DA    B9 E8655900     MOV     ECX, SuperUti.005965E8           ; ASCII "AutoUpdate"
005961DF    BA 28665900     MOV     EDX, SuperUti.00596628           ; ASCII "Software\MicroSoft\SupNet"
005961E4    B8 01000080     MOV     EAX, 80000001
005961E9    E8 1AE0FFFF     CALL    SuperUti.00594208
005961EE    6A 01           PUSH    1
005961F0    B9 E8655900     MOV     ECX, SuperUti.005965E8           ; ASCII "AutoUpdate"
005961F5    BA 4C665900     MOV     EDX, SuperUti.0059664C           ; ASCII ".SupNet"
005961FA    B8 00000080     MOV     EAX, 80000000
005961FF    E8 04E0FFFF     CALL    SuperUti.00594208
00596204    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-4]
00596207    E8 A8F8FFFF     CALL    SuperUti.00595AB4
0059620C    33C0            XOR     EAX, EAX
0059620E    5A              POP     EDX
0059620F    59              POP     ECX
00596210    59              POP     ECX
00596211    64:8910         MOV     DWORD PTR FS:[EAX], EDX
00596214    E8 9BE6E6FF     CALL    SuperUti.004048B4
00596219    E9 E1020000     JMP     SuperUti.005964FF
0059621E    6A 10           PUSH    10
00596220    8D45 B0         LEA     EAX, DWORD PTR SS:[EBP-50]
00596223    50              PUSH    EAX
00596224    8D45 A8         LEA     EAX, DWORD PTR SS:[EBP-58]
00596227    8B4D E0         MOV     ECX, DWORD PTR SS:[EBP-20]       ; //"superlogix"
0059622A    8B55 F8         MOV     EDX, DWORD PTR SS:[EBP-8]        ; //用户名
0059622D    E8 66EFE6FF     CALL    SuperUti.00405198                ; //将用户名与"superlogix"相连,设为字符串B
00596232    8B45 A8         MOV     EAX, DWORD PTR SS:[EBP-58]       ; //字符串B
00596235    8D55 AC         LEA     EDX, DWORD PTR SS:[EBP-54]
00596238    E8 F339E7FF     CALL    SuperUti.00409C30                ; //字符串B转大写,设为字符串C
0059623D    8B55 AC         MOV     EDX, DWORD PTR SS:[EBP-54]       ; //字符串C
00596240    33C9            XOR     ECX, ECX
00596242    A1 38565800     MOV     EAX, DWORD PTR DS:[585638]
00596247    E8 F405FFFF     CALL    SuperUti.00586840                ; //标准MD5运算
0059624C    8B45 B0         MOV     EAX, DWORD PTR SS:[EBP-50]       ; //字符串C的MD5-32大写,设为字符串D
0059624F    8D55 EC         LEA     EDX, DWORD PTR SS:[EBP-14]
00596252    E8 F1FBFFFF     CALL    SuperUti.00595E48                ; //将字符串D中的"0"字符替换为"F",把非"0"字符当作16进制用减去1的字符代替
00596257    8D45 A4         LEA     EAX, DWORD PTR SS:[EBP-5C]
0059625A    50              PUSH    EAX
0059625B    B9 04000000     MOV     ECX, 4
00596260    BA 01000000     MOV     EDX, 1
00596265    8B45 EC         MOV     EAX, DWORD PTR SS:[EBP-14]       ; //字符串E
00596268    E8 3FF1E6FF     CALL    SuperUti.004053AC                ; //取字符串E的1-4位
0059626D    FF75 A4         PUSH    DWORD PTR SS:[EBP-5C]            ; //字符串E的1-4位
00596270    68 5C665900     PUSH    SuperUti.0059665C                ; //"-"
00596275    8D45 A0         LEA     EAX, DWORD PTR SS:[EBP-60]
00596278    50              PUSH    EAX
00596279    B9 04000000     MOV     ECX, 4
0059627E    BA 05000000     MOV     EDX, 5
00596283    8B45 EC         MOV     EAX, DWORD PTR SS:[EBP-14]
00596286    E8 21F1E6FF     CALL    SuperUti.004053AC                ; //取字符串E的5-8位
0059628B    FF75 A0         PUSH    DWORD PTR SS:[EBP-60]            ; //字符串E的5-8位
0059628E    68 5C665900     PUSH    SuperUti.0059665C                ; //"-"
00596293    8D45 9C         LEA     EAX, DWORD PTR SS:[EBP-64]
00596296    50              PUSH    EAX
00596297    B9 04000000     MOV     ECX, 4
0059629C    BA 09000000     MOV     EDX, 9
005962A1    8B45 EC         MOV     EAX, DWORD PTR SS:[EBP-14]
005962A4    E8 03F1E6FF     CALL    SuperUti.004053AC                ; //取字符串E的9-12位
005962A9    FF75 9C         PUSH    DWORD PTR SS:[EBP-64]            ; //字符串E的9-12位
005962AC    68 5C665900     PUSH    SuperUti.0059665C                ; //"-"
005962B1    8D45 98         LEA     EAX, DWORD PTR SS:[EBP-68]
005962B4    50              PUSH    EAX
005962B5    B9 04000000     MOV     ECX, 4
005962BA    BA 0D000000     MOV     EDX, 0D
005962BF    8B45 EC         MOV     EAX, DWORD PTR SS:[EBP-14]
005962C2    E8 E5F0E6FF     CALL    SuperUti.004053AC                ; //取字符串E的13-16位
005962C7    FF75 98         PUSH    DWORD PTR SS:[EBP-68]            ; //字符串E的13-16位
005962CA    8D45 E8         LEA     EAX, DWORD PTR SS:[EBP-18]
005962CD    BA 07000000     MOV     EDX, 7
005962D2    E8 35EFE6FF     CALL    SuperUti.0040520C                ; //7组字符串相连,设为字符串F
005962D7    8B45 F4         MOV     EAX, DWORD PTR SS:[EBP-C]        ; //字符串A,试炼码
005962DA    8B55 E8         MOV     EDX, DWORD PTR SS:[EBP-18]       ; //字符串F,注册码
005962DD    E8 B6EFE6FF     CALL    SuperUti.00405298                ; //比较CALL
005962E2    75 04           JNZ     SHORT SuperUti.005962E8
005962E4    C645 F3 01      MOV     BYTE PTR SS:[EBP-D], 1
005962E8    6A 10           PUSH    10
005962EA    8D45 94         LEA     EAX, DWORD PTR SS:[EBP-6C]
005962ED    50              PUSH    EAX
005962EE    FF75 F8         PUSH    DWORD PTR SS:[EBP-8]             ; //用户名
005962F1    FF75 E0         PUSH    DWORD PTR SS:[EBP-20]            ; //"superlogix"
005962F4    68 68665900     PUSH    SuperUti.00596668                ; ASCII "pro"
005962F9    8D45 8C         LEA     EAX, DWORD PTR SS:[EBP-74]
005962FC    BA 03000000     MOV     EDX, 3
00596301    E8 06EFE6FF     CALL    SuperUti.0040520C                ; //3组字符串相连,设为字符串G
00596306    8B45 8C         MOV     EAX, DWORD PTR SS:[EBP-74]       ; //字符串G
00596309    8D55 90         LEA     EDX, DWORD PTR SS:[EBP-70]
0059630C    E8 1F39E7FF     CALL    SuperUti.00409C30                ; //字符串G转大写,设为字符串H
00596311    8B55 90         MOV     EDX, DWORD PTR SS:[EBP-70]       ; //字符串H
00596314    33C9            XOR     ECX, ECX
00596316    A1 38565800     MOV     EAX, DWORD PTR DS:[585638]
0059631B    E8 2005FFFF     CALL    SuperUti.00586840                ; //标准MD5运算
00596320    8B45 94         MOV     EAX, DWORD PTR SS:[EBP-6C]       ; //字符串G的MD5-32大写,设为字符串H
00596323    8D55 EC         LEA     EDX, DWORD PTR SS:[EBP-14]
00596326    E8 1DFBFFFF     CALL    SuperUti.00595E48                ; //将字符串H中的"0"字符替换为"F",把非"0"字符当作16进制用减去1的字符代替
0059632B    8D45 88         LEA     EAX, DWORD PTR SS:[EBP-78]
0059632E    50              PUSH    EAX
0059632F    B9 04000000     MOV     ECX, 4
00596334    BA 01000000     MOV     EDX, 1
00596339    8B45 EC         MOV     EAX, DWORD PTR SS:[EBP-14]       ; //字符串I
0059633C    E8 6BF0E6FF     CALL    SuperUti.004053AC
00596341    FF75 88         PUSH    DWORD PTR SS:[EBP-78]
00596344    68 5C665900     PUSH    SuperUti.0059665C
00596349    8D45 84         LEA     EAX, DWORD PTR SS:[EBP-7C]
0059634C    50              PUSH    EAX
0059634D    B9 04000000     MOV     ECX, 4
00596352    BA 05000000     MOV     EDX, 5
00596357    8B45 EC         MOV     EAX, DWORD PTR SS:[EBP-14]
0059635A    E8 4DF0E6FF     CALL    SuperUti.004053AC
0059635F    FF75 84         PUSH    DWORD PTR SS:[EBP-7C]
00596362    68 5C665900     PUSH    SuperUti.0059665C
00596367    8D45 80         LEA     EAX, DWORD PTR SS:[EBP-80]
0059636A    50              PUSH    EAX
0059636B    B9 04000000     MOV     ECX, 4
00596370    BA 09000000     MOV     EDX, 9
00596375    8B45 EC         MOV     EAX, DWORD PTR SS:[EBP-14]
00596378    E8 2FF0E6FF     CALL    SuperUti.004053AC
0059637D    FF75 80         PUSH    DWORD PTR SS:[EBP-80]
00596380    68 5C665900     PUSH    SuperUti.0059665C
00596385    8D85 7CFFFFFF   LEA     EAX, DWORD PTR SS:[EBP-84]
0059638B    50              PUSH    EAX
0059638C    B9 04000000     MOV     ECX, 4
00596391    BA 0D000000     MOV     EDX, 0D
00596396    8B45 EC         MOV     EAX, DWORD PTR SS:[EBP-14]
00596399    E8 0EF0E6FF     CALL    SuperUti.004053AC
0059639E    FFB5 7CFFFFFF   PUSH    DWORD PTR SS:[EBP-84]
005963A4    8D45 E8         LEA     EAX, DWORD PTR SS:[EBP-18]
005963A7    BA 07000000     MOV     EDX, 7
005963AC    E8 5BEEE6FF     CALL    SuperUti.0040520C                ; //以上为将字符串I的1-16位,每4位一组,中间用"-"相连
005963B1    8B45 F4         MOV     EAX, DWORD PTR SS:[EBP-C]        ; //字符串A,试炼码
005963B4    8B55 E8         MOV     EDX, DWORD PTR SS:[EBP-18]       ; //字符串J,专业版注册码
005963B7    E8 DCEEE6FF     CALL    SuperUti.00405298                ; //比较CALL
005963BC    75 04           JNZ     SHORT SuperUti.005963C2
005963BE    C645 F3 01      MOV     BYTE PTR SS:[EBP-D], 1
005963C2    6A 10           PUSH    10
005963C4    8D85 78FFFFFF   LEA     EAX, DWORD PTR SS:[EBP-88]
005963CA    50              PUSH    EAX
005963CB    FF75 F8         PUSH    DWORD PTR SS:[EBP-8]             ; //用户名
005963CE    FF75 E0         PUSH    DWORD PTR SS:[EBP-20]            ; //"superlogix"
005963D1    68 74665900     PUSH    SuperUti.00596674                ; ASCII "std"
005963D6    8D85 70FFFFFF   LEA     EAX, DWORD PTR SS:[EBP-90]
005963DC    BA 03000000     MOV     EDX, 3
005963E1    E8 26EEE6FF     CALL    SuperUti.0040520C                ; //3组字符串相连,设为字符串K
005963E6    8B85 70FFFFFF   MOV     EAX, DWORD PTR SS:[EBP-90]       ; //字符串K
005963EC    8D95 74FFFFFF   LEA     EDX, DWORD PTR SS:[EBP-8C]
005963F2    E8 3938E7FF     CALL    SuperUti.00409C30                ; //字符串K转大写,设为字符串L
005963F7    8B95 74FFFFFF   MOV     EDX, DWORD PTR SS:[EBP-8C]
005963FD    33C9            XOR     ECX, ECX
005963FF    A1 38565800     MOV     EAX, DWORD PTR DS:[585638]
00596404    E8 3704FFFF     CALL    SuperUti.00586840                ; //标准MD5运算
00596409    8B85 78FFFFFF   MOV     EAX, DWORD PTR SS:[EBP-88]       ; //字符串L的MD5-32大写,设为字符串M
0059640F    8D55 EC         LEA     EDX, DWORD PTR SS:[EBP-14]
00596412    E8 31FAFFFF     CALL    SuperUti.00595E48                ; //将字符串M中的"0"字符替换为"F",把非"0"字符当作16进制用减去1的字符代替
00596417    8D85 6CFFFFFF   LEA     EAX, DWORD PTR SS:[EBP-94]
0059641D    50              PUSH    EAX
0059641E    B9 04000000     MOV     ECX, 4
00596423    BA 01000000     MOV     EDX, 1
00596428    8B45 EC         MOV     EAX, DWORD PTR SS:[EBP-14]       ; //字符串N
0059642B    E8 7CEFE6FF     CALL    SuperUti.004053AC
00596430    FFB5 6CFFFFFF   PUSH    DWORD PTR SS:[EBP-94]
00596436    68 5C665900     PUSH    SuperUti.0059665C
0059643B    8D85 68FFFFFF   LEA     EAX, DWORD PTR SS:[EBP-98]
00596441    50              PUSH    EAX
00596442    B9 04000000     MOV     ECX, 4
00596447    BA 05000000     MOV     EDX, 5
0059644C    8B45 EC         MOV     EAX, DWORD PTR SS:[EBP-14]
0059644F    E8 58EFE6FF     CALL    SuperUti.004053AC
00596454    FFB5 68FFFFFF   PUSH    DWORD PTR SS:[EBP-98]
0059645A    68 5C665900     PUSH    SuperUti.0059665C
0059645F    8D85 64FFFFFF   LEA     EAX, DWORD PTR SS:[EBP-9C]
00596465    50              PUSH    EAX
00596466    B9 04000000     MOV     ECX, 4
0059646B    BA 09000000     MOV     EDX, 9
00596470    8B45 EC         MOV     EAX, DWORD PTR SS:[EBP-14]
00596473    E8 34EFE6FF     CALL    SuperUti.004053AC
00596478    FFB5 64FFFFFF   PUSH    DWORD PTR SS:[EBP-9C]
0059647E    68 5C665900     PUSH    SuperUti.0059665C
00596483    8D85 60FFFFFF   LEA     EAX, DWORD PTR SS:[EBP-A0]
00596489    50              PUSH    EAX
0059648A    B9 04000000     MOV     ECX, 4
0059648F    BA 0D000000     MOV     EDX, 0D
00596494    8B45 EC         MOV     EAX, DWORD PTR SS:[EBP-14]
00596497    E8 10EFE6FF     CALL    SuperUti.004053AC
0059649C    FFB5 60FFFFFF   PUSH    DWORD PTR SS:[EBP-A0]
005964A2    8D45 E8         LEA     EAX, DWORD PTR SS:[EBP-18]
005964A5    BA 07000000     MOV     EDX, 7
005964AA    E8 5DEDE6FF     CALL    SuperUti.0040520C                ; //以上为将字符串N的1-16位,每4位一组,中间用"-"相连
005964AF    8B45 F4         MOV     EAX, DWORD PTR SS:[EBP-C]        ; //字符串A,试炼码
005964B2    8B55 E8         MOV     EDX, DWORD PTR SS:[EBP-18]       ; //字符串O,标准版注册码
005964B5    E8 DEEDE6FF     CALL    SuperUti.00405298                ; //比较CALL
005964BA    75 04           JNZ     SHORT SuperUti.005964C0
005964BC    C645 F3 01      MOV     BYTE PTR SS:[EBP-D], 1
005964C0    33C0            XOR     EAX, EAX
005964C2    5A              POP     EDX
005964C3    59              POP     ECX
005964C4    59              POP     ECX
005964C5    64:8910         MOV     DWORD PTR FS:[EAX], EDX
005964C8    EB 0A           JMP     SHORT SuperUti.005964D4
005964CA  ^ E9 89DFE6FF     JMP     SuperUti.00404458
005964CF    E8 B0E3E6FF     CALL    SuperUti.00404884
005964D4    33C0            XOR     EAX, EAX
005964D6    5A              POP     EDX
005964D7    59              POP     ECX
005964D8    59              POP     ECX
005964D9    64:8910         MOV     DWORD PTR FS:[EAX], EDX
005964DC    68 FF645900     PUSH    SuperUti.005964FF
005964E1    A1 C4207000     MOV     EAX, DWORD PTR DS:[7020C4]
005964E6    8B00            MOV     EAX, DWORD PTR DS:[EAX]
005964E8    33D2            XOR     EDX, EDX
005964EA    E8 25FAEFFF     CALL    SuperUti.00495F14
005964EF    8B45 E4         MOV     EAX, DWORD PTR SS:[EBP-1C]
005964F2    E8 81DAE6FF     CALL    SuperUti.00403F78
005964F7    C3              RETN
005964F8  ^ E9 0FE2E6FF     JMP     SuperUti.0040470C
005964FD  ^ EB E2           JMP     SHORT SuperUti.005964E1
005964FF    33C0            XOR     EAX, EAX
00596501    5A              POP     EDX
00596502    59              POP     ECX
00596503    59              POP     ECX
00596504    64:8910         MOV     DWORD PTR FS:[EAX], EDX
00596507    68 3E655900     PUSH    SuperUti.0059653E
0059650C    8D85 60FFFFFF   LEA     EAX, DWORD PTR SS:[EBP-A0]
00596512    BA 21000000     MOV     EDX, 21
00596517    E8 94E9E6FF     CALL    SuperUti.00404EB0
0059651C    8D45 E8         LEA     EAX, DWORD PTR SS:[EBP-18]
0059651F    BA 02000000     MOV     EDX, 2
00596524    E8 87E9E6FF     CALL    SuperUti.00404EB0
00596529    8D45 F4         LEA     EAX, DWORD PTR SS:[EBP-C]
0059652C    BA 02000000     MOV     EDX, 2
00596531    E8 7AE9E6FF     CALL    SuperUti.00404EB0
00596536    C3              RETN
00596537  ^ E9 D0E1E6FF     JMP     SuperUti.0040470C
0059653C  ^ EB CE           JMP     SHORT SuperUti.0059650C
0059653E    8A45 F3         MOV     AL, BYTE PTR SS:[EBP-D]
00596541    5F              POP     EDI
00596542    5E              POP     ESI
00596543    5B              POP     EBX
00596544    8BE5            MOV     ESP, EBP
00596546    5D              POP     EBP
00596547    C3              RETN
**************************************************************  
【破解总结】
注册验证有3种算法注册方式,主要是MD5加密算法,网络验证成功与否以注册表的键值为标志
--------------------------------------------------------------
【算法总结】
以"tianxj"为用户名,注册专业版为例
1."tianxj"与"superlogix"、"pro"相连为"tianxjsuperlogixpro"
2."tianxjsuperlogixpro"转大写为"TIANXJSUPERLOGIXPRO"
3."TIANXJSUPERLOGIXPRO"MD5值为"5C0A675BE2B4ADD5AE6A401F34DEA4A7"
4."5C0A675BE2B4ADD5AE6A401F34DEA4A7"按规则"0"字符替换为"F",把非"0"字符当作16进制用减去1的字符代替,变为"4BF9564AD1A39CC49D593F0E23CD9396"
5.将"4BF9564AD1A39CC49D593F0E23CD9396"的1-16位,每4位一组,中间用"-"相连,"4BF9-564A-D1A3-9CC4"
--------------------------------------------------------------
【算法注册机】
易语言代码
.版本 2
.支持库 dp1

.局部变量 a, 文本型
.局部变量 b, 文本型
.局部变量 c, 文本型
.局部变量 d, 文本型
.局部变量 e, 文本型
.局部变量 f, 文本型
.局部变量 l, 整数型
.局部变量 i, 整数型

a = 编辑框1.内容
b = “superlogix”
c = “pro”  ' “std”
l = 取文本长度 (编辑框1.内容)
.如果 (l = 0)
    信息框 (“请输入用户名!”, 0, “提示”)
.否则

    d = 到大写 (a + b + c)
    e = 到大写 (取数据摘要 (到字节集 (d)))
    .计次循环首 (32, i)
        .如果 (取文本中间 (e, i, 1) = “0”)
            f = f + “F”
        .否则
            f = f + 取十六进制文本 (十六进制到十进制 (取文本中间 (e, i, 1)) - 1)
        .如果结束

    .计次循环尾 ()
    编辑框2.内容 = 取文本中间 (f, 1, 4) + “-” + 取文本中间 (f, 5, 4) + “-” + 取文本中间 (f, 9, 4) + “-” + 取文本中间 (f, 13, 4)
.如果结束
--------------------------------------------------------------
【注册信息】
用户名:tianxj
注册码:4BF9-564A-D1A3-9CC4
保存在[HKEY_CURRENT_USER\Software\SuperLogix\Super Utilities]
--------------------------------------------------------------
感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及王者之剑等所有帮助过我的论坛兄弟姐妹们!谢谢
--------------------------------------------------------------
【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!