【破文标题】Speed Video Converter 3.1.12 算法分析
【破文作者】tianxj
【作者邮箱】tianxj_2007@126.com
【作者主页】WwW.ChiNaPYG.CoM
【破解工具】PEiD,OD
【破解平台】Windows XP
【软件名称】Speed Video Converter 3.1.12
【软件大小】2592KB
【软件类别】国外软件/视频转换
【软件语言】英文
【更新时间】2008-9-8
【原版下载】自己找一下
【保护方式】注册码
【软件简介】Speed Video Converter是一款小型视频转换工具。 快速的转换速度和易用的用户界面是其卖点。 Speed Video Converter支持各种视频格式,例如AVI(Divx,xDiv), MPEG-4, mpeg(vcd,svcd,dvd兼容), wmv, asf, QuickTime, VOB, DAT。 它支持批量文件转换可以一次点击转换多个文件。
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------
【破解内容】
--------------------------------------------------------------
**************************************************************
一、运行程序,进行注册,输入错误的注册信息进行检测,有提示信息
"Invalid username or registration code"
**************************************************************
二、用PEiD对Speed Video Converter.exe查壳,为 Microsoft Visual C++ 6.0
**************************************************************
三、运行OD,打开Speed Video Converter.exe,右键超级字串参考查找ASCII.
发现"Invalid username or registration code"
==============================================================
004030E0 . 6A FF PUSH -1 004030E2 . 68 E8244100 PUSH Speed_Vi.004124E8 ; SE 处理程序安装 004030E7 . 64:A1 00000000 MOV EAX, DWORD PTR FS:[0] 004030ED . 50 PUSH EAX 004030EE . 64:8925 000000>MOV DWORD PTR FS:[0], ESP 004030F5 . 83EC 08 SUB ESP, 8 004030F8 . 56 PUSH ESI 004030F9 . 8BF1 MOV ESI, ECX 004030FB . 8D4C24 04 LEA ECX, DWORD PTR [ESP+4] 004030FF . E8 DEE40000 CALL <JMP.&MFC42.#540_CString::CString> 00403104 . 6A 01 PUSH 1 00403106 . 8BCE MOV ECX, ESI 00403108 . C74424 18 0000>MOV DWORD PTR [ESP+18], 0 00403110 . E8 8FE60000 CALL <JMP.&MFC42.#6334_CWnd::UpdateData> 00403115 . E8 14E70000 CALL <JMP.&MFC42.#1168_AfxGetModuleState> 0040311A . 8B48 04 MOV ECX, DWORD PTR [EAX+4] 0040311D . E8 06E70000 CALL <JMP.&MFC42.#1669_CCmdTarget::BeginWait> 00403122 . 8B46 60 MOV EAX, DWORD PTR [ESI+60] ; //试练码 00403125 . 8B4E 64 MOV ECX, DWORD PTR [ESI+64] ; //用户名 00403128 . 50 PUSH EAX 00403129 . 51 PUSH ECX 0040312A . C64424 1C 01 MOV BYTE PTR [ESP+1C], 1 0040312F . E8 CCFDFFFF CALL Speed_Vi.00402F00 ; //关键CALL 00403134 . 83C4 08 ADD ESP, 8 00403137 . 85C0 TEST EAX, EAX 00403139 . 0F95C0 SETNE AL 0040313C . 84C0 TEST AL, AL 0040313E . A2 7CAF4100 MOV BYTE PTR [41AF7C], AL 00403143 . 0F84 93000000 JE Speed_Vi.004031DC ; //关键跳转 00403149 . 8B46 64 MOV EAX, DWORD PTR [ESI+64] 0040314C . 8D4C24 04 LEA ECX, DWORD PTR [ESP+4] 00403150 . 50 PUSH EAX 00403151 . 68 40A24100 PUSH Speed_Vi.0041A240 ; ASCII "License To:%s " 00403156 . 51 PUSH ECX 00403157 . E8 C6E60000 CALL <JMP.&MFC42.#2818_CString::Format> 0040315C . 8B5424 10 MOV EDX, DWORD PTR [ESP+10] 00403160 . 83C4 0C ADD ESP, 0C 00403163 . 8BCE MOV ECX, ESI 00403165 . 6A 40 PUSH 40 00403167 . 68 34A24100 PUSH Speed_Vi.0041A234 ; ASCII "Thank you" 0040316C . 52 PUSH EDX 0040316D . E8 AAE60000 CALL <JMP.&MFC42.#4224_CWnd::MessageBoxA> 00403172 . 8B46 64 MOV EAX, DWORD PTR [ESI+64] 00403175 . B9 88AE4100 MOV ECX, Speed_Vi.0041AE88 0040317A . 50 PUSH EAX 0040317B . E8 90E8FFFF CALL Speed_Vi.00401A10 00403180 . 8B46 60 MOV EAX, DWORD PTR [ESI+60] 00403183 . B9 88AE4100 MOV ECX, Speed_Vi.0041AE88 00403188 . 50 PUSH EAX 00403189 . E8 B2E8FFFF CALL Speed_Vi.00401A40 0040318E . 8D4424 04 LEA EAX, DWORD PTR [ESP+4] 00403192 . 8D4C24 08 LEA ECX, DWORD PTR [ESP+8] 00403196 . 50 PUSH EAX 00403197 . 68 1CA24100 PUSH Speed_Vi.0041A21C ; ASCII "Speed Video Converter " 0040319C . 51 PUSH ECX 0040319D . E8 74E60000 CALL <JMP.&MFC42.#926_operator+> 004031A2 . 50 PUSH EAX 004031A3 . 8D4C24 08 LEA ECX, DWORD PTR [ESP+8] 004031A7 . C64424 18 02 MOV BYTE PTR [ESP+18], 2 004031AC . E8 4BE50000 CALL <JMP.&MFC42.#858_CString::operator=> 004031B1 . 8D4C24 08 LEA ECX, DWORD PTR [ESP+8] 004031B5 . C64424 14 01 MOV BYTE PTR [ESP+14], 1 004031BA . E8 11E40000 CALL <JMP.&MFC42.#800_CString::~CString> 004031BF . E8 6AE60000 CALL <JMP.&MFC42.#1168_AfxGetModuleState> 004031C4 . 8B40 04 MOV EAX, DWORD PTR [EAX+4] 004031C7 . 8B5424 04 MOV EDX, DWORD PTR [ESP+4] 004031CB . 52 PUSH EDX 004031CC . 8BC8 MOV ECX, EAX 004031CE . 8B10 MOV EDX, DWORD PTR [EAX] 004031D0 . FF52 7C CALL DWORD PTR [EDX+7C] 004031D3 . 8BC8 MOV ECX, EAX 004031D5 . E8 36E60000 CALL <JMP.&MFC42.#6199_CWnd::SetWindowTextA> 004031DA . EB 13 JMP SHORT Speed_Vi.004031EF 004031DC > 6A 40 PUSH 40 004031DE . 68 14A24100 PUSH Speed_Vi.0041A214 ; ASCII "Sorry" 004031E3 . 68 E8A14100 PUSH Speed_Vi.0041A1E8 ; invalid username or registration code 004031E8 . 8BCE MOV ECX, ESI 004031EA . E8 2DE60000 CALL <JMP.&MFC42.#4224_CWnd::MessageBoxA> 004031EF > 8BCE MOV ECX, ESI 004031F1 . E8 4EE50000 CALL <JMP.&MFC42.#4853_CDialog::OnOK> 004031F6 . C64424 14 00 MOV BYTE PTR [ESP+14], 0 004031FB . E8 2EE60000 CALL <JMP.&MFC42.#1168_AfxGetModuleState> 00403200 . 8B48 04 MOV ECX, DWORD PTR [EAX+4] 00403203 . E8 02E60000 CALL <JMP.&MFC42.#2652_CCmdTarget::EndWaitCu> 00403208 . 8D4C24 04 LEA ECX, DWORD PTR [ESP+4] 0040320C . C74424 14 FFFF>MOV DWORD PTR [ESP+14], -1 00403214 . E8 B7E30000 CALL <JMP.&MFC42.#800_CString::~CString> 00403219 . 8B4C24 0C MOV ECX, DWORD PTR [ESP+C] 0040321D . 5E POP ESI 0040321E . 64:890D 000000>MOV DWORD PTR FS:[0], ECX 00403225 . 83C4 14 ADD ESP, 14 00403228 . C3 RETN ============================================================== 00402F00 /$ 8B5424 04 MOV EDX, DWORD PTR [ESP+4] 00402F04 |. 56 PUSH ESI 00402F05 |. 57 PUSH EDI 00402F06 |. BF B0AE4100 MOV EDI, Speed_Vi.0041AEB0 00402F0B |. 8BF2 MOV ESI, EDX 00402F0D |. B9 01000000 MOV ECX, 1 00402F12 |. 33C0 XOR EAX, EAX 00402F14 |. F3:A6 REPE CMPS BYTE PTR ES:[EDI], BYTE PTR [ESI] 00402F16 |. 74 2B JE SHORT Speed_Vi.00402F43 ; //用户名为空则跳 00402F18 |. 8B4424 10 MOV EAX, DWORD PTR [ESP+10] 00402F1C |. 53 PUSH EBX 00402F1D |. BF B0AE4100 MOV EDI, Speed_Vi.0041AEB0 00402F22 |. 8BF0 MOV ESI, EAX 00402F24 |. B9 01000000 MOV ECX, 1 00402F29 |. 33DB XOR EBX, EBX 00402F2B |. F3:A6 REPE CMPS BYTE PTR ES:[EDI], BYTE PTR [ESI] 00402F2D |. 5B POP EBX 00402F2E |. 74 13 JE SHORT Speed_Vi.00402F43 ; //试练码为空则跳 00402F30 |. 50 PUSH EAX 00402F31 |. 52 PUSH EDX 00402F32 |. E8 99FDFFFF CALL Speed_Vi.00402CD0 ; //关键CALL 00402F37 |. 83C4 08 ADD ESP, 8 00402F3A |. F7D8 NEG EAX 00402F3C |. 1BC0 SBB EAX, EAX 00402F3E |. 5F POP EDI 00402F3F |. F7D8 NEG EAX 00402F41 |. 5E POP ESI 00402F42 |. C3 RETN 00402F43 |> 5F POP EDI 00402F44 |. 33C0 XOR EAX, EAX 00402F46 |. 5E POP ESI 00402F47 \. C3 RETN ============================================================== 00402CD0 /$ 6A FF PUSH -1 00402CD2 |. 68 50244100 PUSH Speed_Vi.00412450 ; SE 处理程序安装 00402CD7 |. 64:A1 00000000 MOV EAX, DWORD PTR FS:[0] 00402CDD |. 50 PUSH EAX 00402CDE |. 64:8925 000000>MOV DWORD PTR FS:[0], ESP 00402CE5 |. 83EC 14 SUB ESP, 14 00402CE8 |. 8B4424 24 MOV EAX, DWORD PTR [ESP+24] ; //用户名 00402CEC |. 53 PUSH EBX 00402CED |. 55 PUSH EBP 00402CEE |. 56 PUSH ESI 00402CEF |. 57 PUSH EDI 00402CF0 |. 50 PUSH EAX 00402CF1 |. 8D4C24 18 LEA ECX, DWORD PTR [ESP+18] 00402CF5 |. E8 0EEA0000 CALL <JMP.&MFC42.#537_CString::CString> 00402CFA |. 8D4C24 14 LEA ECX, DWORD PTR [ESP+14] 00402CFE |. C74424 2C 0000>MOV DWORD PTR [ESP+2C], 0 00402D06 |. E8 F9EA0000 CALL <JMP.&MFC42.#6282_CString::TrimLeft> 00402D0B |. 8D4C24 14 LEA ECX, DWORD PTR [ESP+14] 00402D0F |. E8 EAEA0000 CALL <JMP.&MFC42.#6283_CString::TrimRight> 00402D14 |. 6A 20 PUSH 20 00402D16 |. 8D4C24 18 LEA ECX, DWORD PTR [ESP+18] 00402D1A |. E8 D9EA0000 CALL <JMP.&MFC42.#2915_CString::GetBuffer> 00402D1F |. 8B4C24 38 MOV ECX, DWORD PTR [ESP+38] ; //试练码 00402D23 |. 8BD8 MOV EBX, EAX 00402D25 |. 51 PUSH ECX 00402D26 |. 8D4C24 14 LEA ECX, DWORD PTR [ESP+14] 00402D2A |. E8 D9E90000 CALL <JMP.&MFC42.#537_CString::CString> 00402D2F |. 8D4C24 10 LEA ECX, DWORD PTR [ESP+10] 00402D33 |. C64424 2C 01 MOV BYTE PTR [ESP+2C], 1 00402D38 |. E8 C7EA0000 CALL <JMP.&MFC42.#6282_CString::TrimLeft> 00402D3D |. 8D4C24 10 LEA ECX, DWORD PTR [ESP+10] 00402D41 |. E8 B8EA0000 CALL <JMP.&MFC42.#6283_CString::TrimRight> 00402D46 |. 6A 20 PUSH 20 00402D48 |. 8D4C24 14 LEA ECX, DWORD PTR [ESP+14] 00402D4C |. E8 A7EA0000 CALL <JMP.&MFC42.#2915_CString::GetBuffer> 00402D51 |. 8BD0 MOV EDX, EAX 00402D53 |. 83CE FF OR ESI, FFFFFFFF 00402D56 |. 8BFA MOV EDI, EDX 00402D58 |. 8BCE MOV ECX, ESI 00402D5A |. 33C0 XOR EAX, EAX 00402D5C |. 895424 20 MOV DWORD PTR [ESP+20], EDX 00402D60 |. F2:AE REPNE SCAS BYTE PTR ES:[EDI] 00402D62 |. F7D1 NOT ECX 00402D64 |. 49 DEC ECX 00402D65 |. 8BFB MOV EDI, EBX 00402D67 |. 8BE9 MOV EBP, ECX 00402D69 |. 8BCE MOV ECX, ESI 00402D6B |. F2:AE REPNE SCAS BYTE PTR ES:[EDI] 00402D6D |. F7D1 NOT ECX 00402D6F |. 49 DEC ECX 00402D70 |. 3BCD CMP ECX, EBP 00402D72 |. 0F87 54010000 JA Speed_Vi.00402ECC ; //用户名长度大于试练码的长度则跳 00402D78 |. 8BFB MOV EDI, EBX 00402D7A |. 8BCE MOV ECX, ESI 00402D7C |. F2:AE REPNE SCAS BYTE PTR ES:[EDI] 00402D7E |. F7D1 NOT ECX 00402D80 |. 49 DEC ECX 00402D81 |. 0F84 45010000 JE Speed_Vi.00402ECC ; //用户名为空则跳 00402D87 |. 8BFA MOV EDI, EDX 00402D89 |. 8BCE MOV ECX, ESI 00402D8B |. F2:AE REPNE SCAS BYTE PTR ES:[EDI] 00402D8D |. F7D1 NOT ECX 00402D8F |. 49 DEC ECX 00402D90 |. 0F84 36010000 JE Speed_Vi.00402ECC ; //注册码为空则跳 00402D96 |. 894424 38 MOV DWORD PTR [ESP+38], EAX 00402D9A |> 8B5424 38 /MOV EDX, DWORD PTR [ESP+38] 00402D9E |. 8D4C24 34 |LEA ECX, DWORD PTR [ESP+34] 00402DA2 |. 8A82 D0A14100 |MOV AL, BYTE PTR [EDX+41A1D0] ; //'I'、'p'、'q',在密码表中未查到字符时用 00402DA8 |. 884424 18 |MOV BYTE PTR [ESP+18], AL 00402DAC |. E8 31E80000 |CALL <JMP.&MFC42.#540_CString::CString> 00402DB1 |. 8BFB |MOV EDI, EBX 00402DB3 |. 83C9 FF |OR ECX, FFFFFFFF 00402DB6 |. 33C0 |XOR EAX, EAX 00402DB8 |. 33ED |XOR EBP, EBP 00402DBA |. F2:AE |REPNE SCAS BYTE PTR ES:[EDI] 00402DBC |. F7D1 |NOT ECX 00402DBE |. 49 |DEC ECX 00402DBF |. C64424 2C 02 |MOV BYTE PTR [ESP+2C], 2 00402DC4 |. 74 4B |JE SHORT Speed_Vi.00402E11 00402DC6 |> 8A042B |/MOV AL, BYTE PTR [EBX+EBP] ; //依次取用户名ASC值 00402DC9 |. 33F6 ||XOR ESI, ESI 00402DCB |> 3A0475 68A1410>||/CMP AL, BYTE PTR [ESI*2+41A168] ; //隔位取密码 表"aqbicHdSeXfMgkhEiVjZkelRmynBoKpdqTrAsFtWulvjwDxIyPzzAxBpCODkEgFYGmHtIaJrKQLnMsNuOUPGQJRLSNTbUcVfWhXoYwZC" 00402DD2 |. 74 08 |||JE SHORT Speed_Vi.00402DDC 00402DD4 |. 46 |||INC ESI 00402DD5 |. 83FE 34 |||CMP ESI, 34 00402DD8 |.^ 7C F1 ||\JL SHORT Speed_Vi.00402DCB 00402DDA |. EB 11 ||JMP SHORT Speed_Vi.00402DED 00402DDC |> 8A0C75 69A1410>||MOV CL, BYTE PTR [ESI*2+41A169] 00402DE3 |. 51 ||PUSH ECX 00402DE4 |. 8D4C24 38 ||LEA ECX, DWORD PTR [ESP+38] 00402DE8 |. E8 05EA0000 ||CALL <JMP.&MFC42.#940_CString::operator+=> 00402DED |> 83FE 34 ||CMP ESI, 34 00402DF0 |. 75 0E ||JNZ SHORT Speed_Vi.00402E00 00402DF2 |. 8B5424 18 ||MOV EDX, DWORD PTR [ESP+18] 00402DF6 |. 8D4C24 34 ||LEA ECX, DWORD PTR [ESP+34] 00402DFA |. 52 ||PUSH EDX 00402DFB |. E8 F2E90000 ||CALL <JMP.&MFC42.#940_CString::operator+=> 00402E00 |> 8BFB ||MOV EDI, EBX 00402E02 |. 83C9 FF ||OR ECX, FFFFFFFF 00402E05 |. 33C0 ||XOR EAX, EAX 00402E07 |. 45 ||INC EBP 00402E08 |. F2:AE ||REPNE SCAS BYTE PTR ES:[EDI] 00402E0A |. F7D1 ||NOT ECX 00402E0C |. 49 ||DEC ECX 00402E0D |. 3BE9 ||CMP EBP, ECX 00402E0F |.^ 72 B5 |\JB SHORT Speed_Vi.00402DC6 ; //循环,对比正确后取值 00402E11 |> 8B4424 34 |MOV EAX, DWORD PTR [ESP+34] 00402E15 |. 8B48 F8 |MOV ECX, DWORD PTR [EAX-8] 00402E18 |. 83F9 10 |CMP ECX, 10 00402E1B |. 7D 3A |JGE SHORT Speed_Vi.00402E57 00402E1D |. 8BC1 |MOV EAX, ECX 00402E1F |. B9 10000000 |MOV ECX, 10 00402E24 |. 2BC8 |SUB ECX, EAX 00402E26 |. 8D5424 1C |LEA EDX, DWORD PTR [ESP+1C] 00402E2A |. 51 |PUSH ECX 00402E2B |. 52 |PUSH EDX 00402E2C |. B9 B4AE4100 |MOV ECX, Speed_Vi.0041AEB4 ; ASCII "Hn<" 00402E31 |. E8 B6E90000 |CALL <JMP.&MFC42.#4129_CString::Left> 00402E36 |. 50 |PUSH EAX 00402E37 |. 8D4C24 38 |LEA ECX, DWORD PTR [ESP+38] 00402E3B |. C64424 30 03 |MOV BYTE PTR [ESP+30], 3 00402E40 |. E8 A1E90000 |CALL <JMP.&MFC42.#939_CString::operator+=> 00402E45 |. 8D4C24 1C |LEA ECX, DWORD PTR [ESP+1C] 00402E49 |. C64424 2C 02 |MOV BYTE PTR [ESP+2C], 2 00402E4E |. E8 7DE70000 |CALL <JMP.&MFC42.#800_CString::~CString> 00402E53 |. 8B4424 34 |MOV EAX, DWORD PTR [ESP+34] ; //真码 00402E57 |> 8B4C24 20 |MOV ECX, DWORD PTR [ESP+20] ; //试练码 00402E5B |. 51 |PUSH ECX ; /s2 00402E5C |. 50 |PUSH EAX ; |s1 00402E5D |. FF15 00464100 |CALL DWORD PTR [<&MSVCRT._mbscmp>] ; \//比较 00402E63 |. 83C4 08 |ADD ESP, 8 00402E66 |. 8D4C24 34 |LEA ECX, DWORD PTR [ESP+34] 00402E6A |. 85C0 |TEST EAX, EAX 00402E6C |. C64424 2C 01 |MOV BYTE PTR [ESP+2C], 1 ; //标志位赋值 00402E71 |. 74 1B |JE SHORT Speed_Vi.00402E8E 00402E73 |. 33F6 |XOR ESI, ESI 00402E75 |. E8 56E70000 |CALL <JMP.&MFC42.#800_CString::~CString> 00402E7A |. 8B4424 38 |MOV EAX, DWORD PTR [ESP+38] 00402E7E |. 40 |INC EAX 00402E7F |. 83F8 03 |CMP EAX, 3 00402E82 |. 894424 38 |MOV DWORD PTR [ESP+38], EAX 00402E86 |.^ 0F8C 0EFFFFFF \JL Speed_Vi.00402D9A ; //循环,比较3次 00402E8C |. EB 0A JMP SHORT Speed_Vi.00402E98 00402E8E |> BE 01000000 MOV ESI, 1 00402E93 |. E8 38E70000 CALL <JMP.&MFC42.#800_CString::~CString> 00402E98 |> 8D4C24 10 LEA ECX, DWORD PTR [ESP+10] 00402E9C |. C64424 2C 00 MOV BYTE PTR [ESP+2C], 0 00402EA1 |. E8 2AE70000 CALL <JMP.&MFC42.#800_CString::~CString> 00402EA6 |. 8D4C24 14 LEA ECX, DWORD PTR [ESP+14] 00402EAA |. C74424 2C FFFF>MOV DWORD PTR [ESP+2C], -1 00402EB2 |. E8 19E70000 CALL <JMP.&MFC42.#800_CString::~CString> 00402EB7 |. 8BC6 MOV EAX, ESI 00402EB9 |. 5F POP EDI 00402EBA |. 5E POP ESI 00402EBB |. 5D POP EBP 00402EBC |. 5B POP EBX 00402EBD |. 8B4C24 14 MOV ECX, DWORD PTR [ESP+14] 00402EC1 |. 64:890D 000000>MOV DWORD PTR FS:[0], ECX 00402EC8 |. 83C4 20 ADD ESP, 20 00402ECB |. C3 RETN 00402ECC |> 8D4C24 10 LEA ECX, DWORD PTR [ESP+10] 00402ED0 |. C64424 2C 00 MOV BYTE PTR [ESP+2C], 0 00402ED5 |. E8 F6E60000 CALL <JMP.&MFC42.#800_CString::~CString> 00402EDA |. 8D4C24 14 LEA ECX, DWORD PTR [ESP+14] 00402EDE |. 897424 2C MOV DWORD PTR [ESP+2C], ESI 00402EE2 |. E8 E9E60000 CALL <JMP.&MFC42.#800_CString::~CString> 00402EE7 |. 8B4C24 24 MOV ECX, DWORD PTR [ESP+24] 00402EEB |. 5F POP EDI 00402EEC |. 5E POP ESI 00402EED |. 5D POP EBP 00402EEE |. 33C0 XOR EAX, EAX 00402EF0 |. 5B POP EBX 00402EF1 |. 64:890D 000000>MOV DWORD PTR FS:[0], ECX 00402EF8 |. 83C4 20 ADD ESP, 20 00402EFB \. C3 RETN ============================================================== 密码表 0041A168 61 71 62 69 63 48 64 53 65 58 66 4D 67 6B 68 45 aqbicHdSeXfMgkhE 0041A178 69 56 6A 5A 6B 65 6C 52 6D 79 6E 42 6F 4B 70 64 iVjZkelRmynBoKpd 0041A188 71 54 72 41 73 46 74 57 75 6C 76 6A 77 44 78 49 qTrAsFtWulvjwDxI 0041A198 79 50 7A 7A 41 78 42 70 43 4F 44 6B 45 67 46 59 yPzzAxBpCODkEgFY 0041A1A8 47 6D 48 74 49 61 4A 72 4B 51 4C 6E 4D 73 4E 75 GmHtIaJrKQLnMsNu 0041A1B8 4F 55 50 47 51 4A 52 4C 53 4E 54 62 55 63 56 66 OUPGQJRLSNTbUcVf 0041A1C8 57 68 58 6F 59 77 5A 43 WhXoYwZC
【破解总结】
--------------------------------------------------------------
【算法总结】
算法总结:
1.将用户名的各个字符进行替换
替换规则如下
(1)英文大小写字母进行查表
密码表"aqbicHdSeXfMgkhEiVjZkelRmynBoKpdqTrAsFtWulvjwDxIyPzzAxBpCODkEgFYGmHtIaJrKQLnMsNuOUPGQJRLSNTbUcVfWhXoYwZC"
找相应字符后取紧接着的下一个字符
(2)非英文字母则统一替换为'I'或'p'或'q'
2.若替换后的长度小于16位,则用"IsaeBREbmpaqdslg"补充到16位
--------------------------------------------------------------
【算法注册机】
易语言代码
.版本 2
.子程序 _按钮1_被单击
.局部变量 M, 文本型
.局部变量 i, 整数型
.局部变量 j, 整数型
.局部变量 a, 文本型
.局部变量 b, 整数型
.局部变量 c, 文本型
.局部变量 x, 文本型
.局部变量 y, 文本型
.局部变量 z, 文本型
M = “aqbicHdSeXfMgkhEiVjZkelRmynBoKpdqTrAsFtWulvjwDxIyPzzAxBpCODkEgFYGmHtIaJrKQLnMsNuOUPGQJRLSNTbUcVfWhXoYwZC”
.如果 (取文本长度 (编辑框1.内容) = 0)
编辑框2.内容 = “请输入用户名”
.否则
.计次循环首 (取文本长度 (M) ÷ 2, i)
x = x + 取文本中间 (M, 2 × i - 1, 1)
y = y + 取文本中间 (M, 2 × i, 1)
.计次循环尾 ()
.计次循环首 (取文本长度 (编辑框1.内容), j)
a = 取文本中间 (编辑框1.内容, j, 1)
b = 寻找文本 (x, a, 1, 假)
c = c + 取文本中间 (y, b, 1)
.计次循环尾 ()
编辑框2.内容 = 取文本左边 (c + “IsaeBREbmpaqdslg”, 16)
.如果结束
--------------------------------------------------------------
☆此文应学友“de神”之邀而作☆
--------------------------------------------------------------
感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及所有帮助过我的论坛兄弟姐妹们!谢谢
--------------------------------------------------------------
【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!