【破文标题】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."
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老大以及很多前辈们的学习教程以及王者之剑等所有帮助过我的论坛兄弟姐妹们!谢谢
--------------------------------------------------------------
【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!