能力值:
( LV9,RANK:1130 )
|
-
-
28 楼
第五个:
0045006E |. 55 push ebp
0045006F |. 68 E3014500 push 004501E3
00450074 |. 64:FF30 push dword ptr fs:[eax]
00450077 |. 64:8920 mov fs:[eax], esp
0045007A |. 8D45 F0 lea eax, [ebp-10]
0045007D |. BA F8014500 mov edx, 004501F8 ; ~!@#$%^&*()_+|\=-/?.,><;:` 这堆东西是好东西哦。
00450082 |. E8 213EFBFF call 00403EA8
00450087 |. 8D45 EC lea eax, [ebp-14]
0045008A |. E8 813DFBFF call 00403E10
0045008F |. 8D55 F8 lea edx, [ebp-8]
00450092 |. 8B45 FC mov eax, [ebp-4]
00450095 |. 8B80 00030000 mov eax, [eax+300]
0045009B |. E8 B8F2FDFF call 0042F358
004500A0 |. 8B45 F8 mov eax, [ebp-8] ; 用户名
004500A3 |. E8 2840FBFF call 004040D0
004500A8 |. 8945 E8 mov [ebp-18], eax ; 位数
004500AB |. 837D E8 04 cmp dword ptr [ebp-18], 4 ; 不能小于4
004500AF |. 0F8C 06010000 jl 004501BB
004500B5 |. 8D55 F4 lea edx, [ebp-C]
004500B8 |. 8B45 FC mov eax, [ebp-4]
004500BB |. 8B80 08030000 mov eax, [eax+308]
004500C1 |. E8 92F2FDFF call 0042F358
004500C6 |. 8B45 F4 mov eax, [ebp-C] ; 假码
004500C9 |. E8 0240FBFF call 004040D0
004500CE |. 8945 E4 mov [ebp-1C], eax
004500D1 |. 837D E4 00 cmp dword ptr [ebp-1C], 0 ; 不能没有输入
004500D5 |. 0F84 E0000000 je 004501BB
004500DB |. 8B45 E8 mov eax, [ebp-18]
004500DE |. 25 01000080 and eax, 80000001
004500E3 |. 79 05 jns short 004500EA
004500E5 |. 48 dec eax
004500E6 |. 83C8 FE or eax, FFFFFFFE
004500E9 |. 40 inc eax
004500EA |> 85C0 test eax, eax
004500EC |. 74 0D je short 004500FB
004500EE |. 8D45 F8 lea eax, [ebp-8]
004500F1 |. BA 1C024500 mov edx, 0045021C ; *
004500F6 |. E8 DD3FFBFF call 004040D8 ; 连接一个*
004500FB |> 8B45 F8 mov eax, [ebp-8] ; "binbinbin*")
004500FE |. E8 CD3FFBFF call 004040D0
00450103 |. 8945 E8 mov [ebp-18], eax ; 得到位数
00450106 |. 8B45 E8 mov eax, [ebp-18]
00450109 |. D1E8 shr eax, 1 ; /2 由于下面每次循环取两个字符。所以要/2。
0045010B |. 8945 D8 mov [ebp-28], eax
0045010E |. 8B45 D8 mov eax, [ebp-28]
00450111 |. 85C0 test eax, eax
00450113 |. 0F8E 82000000 jle 0045019B
00450119 |. 8945 D4 mov [ebp-2C], eax
0045011C |. C745 E0 01000>mov dword ptr [ebp-20], 1
00450123 |> 33C0 /xor eax, eax ; 循环开始
00450125 |. 8945 DC |mov [ebp-24], eax
00450128 |. 8B45 F8 |mov eax, [ebp-8]
0045012B |. 8B55 E0 |mov edx, [ebp-20]
0045012E |. 0FB64410 FF |movzx eax, byte ptr [eax+edx-1] ; 逐个取
00450133 |. C1E0 02 |shl eax, 2 ; 左移2
00450136 |. B9 1A000000 |mov ecx, 1A ; 1A到ecx
0045013B |. 33D2 |xor edx, edx ; 清空
0045013D |. F7F1 |div ecx ; 除以1A
0045013F |. 8955 DC |mov [ebp-24], edx ; 余数
00450142 |. 8D45 CC |lea eax, [ebp-34] ; 循环是靠运算得到的余数来对应拿堆乱字符取相应值
00450145 |. 8B55 F0 |mov edx, [ebp-10]
00450148 |. 8B4D DC |mov ecx, [ebp-24]
0045014B |. 8A140A |mov dl, [edx+ecx] ; 取拿堆东西的字符
0045014E |. E8 A53EFBFF |call 00403FF8
00450153 |. 8B55 CC |mov edx, [ebp-34]
00450156 |. 8D45 EC |lea eax, [ebp-14]
00450159 |. E8 7A3FFBFF |call 004040D8 ; 连接函数
0045015E |. 8B45 F8 |mov eax, [ebp-8]
00450161 |. 8B55 E0 |mov edx, [ebp-20]
00450164 |. 0FB60410 |movzx eax, byte ptr [eax+edx] ; 继续取字符
00450168 |. 8D0440 |lea eax, [eax+eax*2]
00450168 |. 8D0440 |lea eax, [eax+eax*2] ; ×3
0045016B |. B9 1A000000 |mov ecx, 1A
00450170 |. 33D2 |xor edx, edx
00450172 |. F7F1 |div ecx ; 除以1A
00450174 |. 8955 DC |mov [ebp-24], edx ; 余数
00450177 |. 8D45 C8 |lea eax, [ebp-38] ; 取余数相应位置的那个字符
0045017A |. 8B55 F0 |mov edx, [ebp-10]
0045017D |. 8B4D DC |mov ecx, [ebp-24]
00450180 |. 8A140A |mov dl, [edx+ecx]
00450183 |. E8 703EFBFF |call 00403FF8
00450188 |. 8B55 C8 |mov edx, [ebp-38]
0045018B |. 8D45 EC |lea eax, [ebp-14]
0045018E |. E8 453FFBFF |call 004040D8
00450193 |. FF45 E0 |inc dword ptr [ebp-20]
00450196 |. FF4D D4 |dec dword ptr [ebp-2C]
00450199 |.^ 75 88 \jnz short 00450123 ; 对用户名循环运算,
0045019B |> 8B45 EC mov eax, [ebp-14] ; (ASCII "@#$?:*@#$?")
0045019E |. 8B55 F4 mov edx, [ebp-C] ; 假码
004501A1 |. E8 7640FBFF call 0040421C
004501A6 |. 75 13 jnz short 004501BB
004501A8 |. 6A 40 push 40 ; /Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
004501AA |. 68 20024500 push 00450220 ; |congratulations
004501AF |. 68 30024500 push 00450230 ; |good job,man!
004501B4 |. 6A 00 push 0 ; |hOwner = NULL
004501B6 |. E8 E562FBFF call <jmp.&user32.MessageBoxA> ; \MessageBoxA
|
能力值:
( LV4,RANK:50 )
|
-
-
40 楼
第7个:
通过字符串参考下断,输入name:Wucheng serial:223342
004025AA . 66:3D 0300 cmp ax, 3 ; name长度与3比
004025AE . 0F8C CB030000 jl 0040297F ; 小于,跳向失败
004025B4 . 8B4D A8 mov ecx, dword ptr [ebp-58]
004025B7 . 51 push ecx
004025B8 . 68 E01C4000 push 00401CE0 ; -pediy
004025BD . FF15 2C104000 call dword ptr [<&MSVBVM60.__vbaStrCa>; name与字符串"-pediy"连接
004025C3 . 8BD0 mov edx, eax
004025C5 . 8D4D A8 lea ecx, dword ptr [ebp-58]
004025C8 . FFD3 call ebx
004025CA . 8B55 A8 mov edx, dword ptr [ebp-58]
004025CD . 52 push edx
004025CE . FF15 10104000 call dword ptr [<&MSVBVM60.__vbaLenBs>; 得到连接的长度
004025D4 . 8BC8 mov ecx, eax
004025D6 . FF15 68104000 call dword ptr [<&MSVBVM60.__vbaI2I4>>; MSVBVM60.__vbaI2I4
004025DC . 8945 B0 mov dword ptr [ebp-50], eax ; 保存长度
004025DF . 8B07 mov eax, dword ptr [edi]
004025E1 . 57 push edi
004025E2 . FF90 0C030000 call dword ptr [eax+30C]
004025E8 . 50 push eax
004025E9 . 8D4D A0 lea ecx, dword ptr [ebp-60]
004025EC . 51 push ecx
004025ED . FF15 48104000 call dword ptr [<&MSVBVM60.__vbaObjSe>; MSVBVM60.__vbaObjSet
004025F3 . 8BF8 mov edi, eax
004025F5 . 8B17 mov edx, dword ptr [edi]
004025F7 . 8D45 A4 lea eax, dword ptr [ebp-5C]
004025FA . 50 push eax
004025FB . 57 push edi
004025FC . FF92 A0000000 call dword ptr [edx+A0]
00402602 . DBE2 fclex
00402604 . 3BC6 cmp eax, esi
00402606 . 7D 12 jge short 0040261A
00402608 . 68 A0000000 push 0A0
0040260D . 68 CC1C4000 push 00401CCC
00402612 . 57 push edi
00402613 . 50 push eax
00402614 . FF15 30104000 call dword ptr [<&MSVBVM60.__vbaHresu>; MSVBVM60.__vbaHresultCheckObj
0040261A > 8B45 A4 mov eax, dword ptr [ebp-5C]
0040261D . 8975 A4 mov dword ptr [ebp-5C], esi
00402620 . 8945 98 mov dword ptr [ebp-68], eax
00402623 . C745 90 08000>mov dword ptr [ebp-70], 8
0040262A . 8D55 90 lea edx, dword ptr [ebp-70]
0040262D . 8D4D C8 lea ecx, dword ptr [ebp-38]
00402630 . 8B1D 08104000 mov ebx, dword ptr [<&MSVBVM60.__vba>; MSVBVM60.__vbaVarMove
00402636 . FFD3 call ebx ; <&MSVBVM60.__vbaVarMove>
00402638 . 8D4D A0 lea ecx, dword ptr [ebp-60]
0040263B . FF15 E0104000 call dword ptr [<&MSVBVM60.__vbaFreeO>; MSVBVM60.__vbaFreeObj
00402641 . 8D4D C8 lea ecx, dword ptr [ebp-38]
00402644 . 51 push ecx
00402645 . 8D55 90 lea edx, dword ptr [ebp-70]
00402648 . 52 push edx
00402649 . FF15 34104000 call dword ptr [<&MSVBVM60.__vbaLenVa>; MSVBVM60.__vbaLenVar
0040264F . 50 push eax
00402650 . FF15 94104000 call dword ptr [<&MSVBVM60.__vbaI2Var>; 得到假码的长度
00402656 . 66:3BC6 cmp ax, si ; 比较其是否为空
00402659 . 0F84 20030000 je 0040297F ; 为空,跳向失败
0040265F . 89B5 48FFFFFF mov dword ptr [ebp-B8], esi
00402665 . BF 02000000 mov edi, 2
0040266A . 89BD 40FFFFFF mov dword ptr [ebp-C0], edi
00402670 . 8D95 40FFFFFF lea edx, dword ptr [ebp-C0]
00402676 . 8D4D B8 lea ecx, dword ptr [ebp-48]
00402679 . FFD3 call ebx
0040267B . BB 01000000 mov ebx, 1
00402680 . 8B35 C0104000 mov esi, dword ptr [<&MSVBVM60.__vba>; MSVBVM60.__vbaVarAdd
00402686 > 66:3B5D B0 cmp bx, word ptr [ebp-50]
0040268A . 0F8F B1000000 jg 00402741
00402690 . C745 98 01000>mov dword ptr [ebp-68], 1
00402697 . 897D 90 mov dword ptr [ebp-70], edi
0040269A . 8D45 A8 lea eax, dword ptr [ebp-58]
0040269D . 8985 48FFFFFF mov dword ptr [ebp-B8], eax
004026A3 . C785 40FFFFFF>mov dword ptr [ebp-C0], 4008
004026AD . 8D4D 90 lea ecx, dword ptr [ebp-70]
004026B0 . 51 push ecx
004026B1 . 0FBFD3 movsx edx, bx
004026B4 . 52 push edx
004026B5 . 8D85 40FFFFFF lea eax, dword ptr [ebp-C0]
004026BB . 50 push eax
004026BC . 8D4D 80 lea ecx, dword ptr [ebp-80]
004026BF . 51 push ecx
004026C0 . FF15 5C104000 call dword ptr [<&MSVBVM60.#632>] ; 循环取连接后的name各个字符
004026C6 . 8D55 80 lea edx, dword ptr [ebp-80]
004026C9 . 52 push edx
004026CA . 8D45 A4 lea eax, dword ptr [ebp-5C]
004026CD . 50 push eax
004026CE . FF15 90104000 call dword ptr [<&MSVBVM60.__vbaStrVa>; MSVBVM60.__vbaStrVarVal
004026D4 . 50 push eax
004026D5 . FF15 24104000 call dword ptr [<&MSVBVM60.#516>] ; MSVBVM60.rtcAnsiValueBstr
004026DB . 66:6BC0 1B imul ax, ax, 1B ; 取得的字符*1B
004026DF . 0F80 27030000 jo 00402A0C
004026E5 . 66:8985 28FFF>mov word ptr [ebp-D8], ax ; 保存
004026EC . 89BD 20FFFFFF mov dword ptr [ebp-E0], edi
004026F2 . 8D4D B8 lea ecx, dword ptr [ebp-48]
004026F5 . 51 push ecx
004026F6 . 8D95 20FFFFFF lea edx, dword ptr [ebp-E0]
004026FC . 52 push edx
004026FD . 8D85 70FFFFFF lea eax, dword ptr [ebp-90]
00402703 . 50 push eax
00402704 . FFD6 call esi ; 累加,设最终累加和为A
00402706 . 8BD0 mov edx, eax
00402708 . 8D4D B8 lea ecx, dword ptr [ebp-48]
0040270B . FF15 08104000 call dword ptr [<&MSVBVM60.__vbaVarMo>; MSVBVM60.__vbaVarMove
00402711 . 8D4D A4 lea ecx, dword ptr [ebp-5C]
00402714 . FF15 E4104000 call dword ptr [<&MSVBVM60.__vbaFreeS>; MSVBVM60.__vbaFreeStr
0040271A . 8D4D 80 lea ecx, dword ptr [ebp-80]
0040271D . 51 push ecx
0040271E . 8D55 90 lea edx, dword ptr [ebp-70]
00402721 . 52 push edx
00402722 . 57 push edi
00402723 . FF15 18104000 call dword ptr [<&MSVBVM60.__vbaFreeV>; MSVBVM60.__vbaFreeVarList
00402729 . 83C4 0C add esp, 0C
0040272C . B8 01000000 mov eax, 1
00402731 . 66:03C3 add ax, bx
00402734 . 0F80 D2020000 jo 00402A0C
0040273A . 8BD8 mov ebx, eax
0040273C .^ E9 45FFFFFF jmp 00402686 ; 循环
00402741 > BA F41C4000 mov edx, 00401CF4
00402746 . 8D4D D8 lea ecx, dword ptr [ebp-28]
00402749 . FF15 A8104000 call dword ptr [<&MSVBVM60.__vbaStrCo>; MSVBVM60.__vbaStrCopy
0040274F > C785 48FFFFFF>mov dword ptr [ebp-B8], 3
00402759 . 89BD 40FFFFFF mov dword ptr [ebp-C0], edi
0040275F . 8D45 B8 lea eax, dword ptr [ebp-48]
00402762 . 50 push eax
00402763 . 8D8D 40FFFFFF lea ecx, dword ptr [ebp-C0]
00402769 . 51 push ecx
0040276A . 8D55 90 lea edx, dword ptr [ebp-70]
0040276D . 52 push edx
0040276E . FF15 88104000 call dword ptr [<&MSVBVM60.__vbaVarDi>; A/3=B
00402774 . 50 push eax
00402775 . FF15 BC104000 call dword ptr [<&MSVBVM60.__vbaI4Var>; MSVBVM60.__vbaI4Var
0040277B . 8BD8 mov ebx, eax
0040277D . 8B45 D8 mov eax, dword ptr [ebp-28]
00402780 . 8985 08FFFFFF mov dword ptr [ebp-F8], eax
00402786 . C785 00FFFFFF>mov dword ptr [ebp-100], 8
00402790 . B8 01000000 mov eax, 1
00402795 . 8985 78FFFFFF mov dword ptr [ebp-88], eax
0040279B . 89BD 70FFFFFF mov dword ptr [ebp-90], edi
004027A1 . C785 48FFFFFF>mov dword ptr [ebp-B8], 6
004027AB . 89BD 40FFFFFF mov dword ptr [ebp-C0], edi
004027B1 . 8985 38FFFFFF mov dword ptr [ebp-C8], eax
004027B7 . 89BD 30FFFFFF mov dword ptr [ebp-D0], edi
004027BD . 8D4D DC lea ecx, dword ptr [ebp-24]
004027C0 . 898D 28FFFFFF mov dword ptr [ebp-D8], ecx
004027C6 . C785 20FFFFFF>mov dword ptr [ebp-E0], 4008
004027D0 . 8D95 70FFFFFF lea edx, dword ptr [ebp-90]
004027D6 . 52 push edx
004027D7 . 8D45 B8 lea eax, dword ptr [ebp-48]
004027DA . 50 push eax
004027DB . 8D8D 40FFFFFF lea ecx, dword ptr [ebp-C0]
004027E1 . 51 push ecx
004027E2 . 8D55 90 lea edx, dword ptr [ebp-70]
004027E5 . 52 push edx
004027E6 . FF15 C8104000 call dword ptr [<&MSVBVM60.__vbaVarMo>; A mod 6=C
004027EC . 50 push eax
004027ED . 8D85 30FFFFFF lea eax, dword ptr [ebp-D0]
004027F3 . 50 push eax
004027F4 . 8D4D 80 lea ecx, dword ptr [ebp-80]
004027F7 . 51 push ecx
004027F8 . FFD6 call esi ; 1+C,设结果为D
004027FA . 50 push eax
004027FB . FF15 BC104000 call dword ptr [<&MSVBVM60.__vbaI4Var>; MSVBVM60.__vbaI4Var
00402801 . 50 push eax
00402802 . 8D95 20FFFFFF lea edx, dword ptr [ebp-E0]
00402808 . 52 push edx
00402809 . 8D85 60FFFFFF lea eax, dword ptr [ebp-A0]
0040280F . 50 push eax
00402810 . FF15 5C104000 call dword ptr [<&MSVBVM60.#632>] ; 取字符串"ABCDEF"中的第D个字符
00402816 . 8D8D 00FFFFFF lea ecx, dword ptr [ebp-100]
0040281C . 51 push ecx
0040281D . 8D95 60FFFFFF lea edx, dword ptr [ebp-A0]
00402823 . 52 push edx
00402824 . 8D85 50FFFFFF lea eax, dword ptr [ebp-B0]
0040282A . 50 push eax
0040282B . FFD6 call esi ; 连接取得的字符,循环结束时结果即为真码
0040282D . 50 push eax
0040282E . FF15 14104000 call dword ptr [<&MSVBVM60.__vbaStrVa>; MSVBVM60.__vbaStrVarMove
00402834 . 8BD0 mov edx, eax
00402836 . 8D4D D8 lea ecx, dword ptr [ebp-28]
00402839 . FF15 D0104000 call dword ptr [<&MSVBVM60.__vbaStrMo>; MSVBVM60.__vbaStrMove
0040283F . 8D8D 50FFFFFF lea ecx, dword ptr [ebp-B0]
00402845 . 51 push ecx
00402846 . 8D95 60FFFFFF lea edx, dword ptr [ebp-A0]
0040284C . 52 push edx
0040284D . 8D85 70FFFFFF lea eax, dword ptr [ebp-90]
00402853 . 50 push eax
00402854 . 8D4D 80 lea ecx, dword ptr [ebp-80]
00402857 . 51 push ecx
00402858 . 6A 04 push 4
0040285A . FF15 18104000 call dword ptr [<&MSVBVM60.__vbaFreeV>; MSVBVM60.__vbaFreeVarList
00402860 . 83C4 14 add esp, 14
00402863 . 899D 48FFFFFF mov dword ptr [ebp-B8], ebx
00402869 . C785 40FFFFFF>mov dword ptr [ebp-C0], 3
00402873 . 8D95 40FFFFFF lea edx, dword ptr [ebp-C0]
00402879 . 8D4D B8 lea ecx, dword ptr [ebp-48]
0040287C . FF15 08104000 call dword ptr [<&MSVBVM60.__vbaVarMo>; MSVBVM60.__vbaVarMove
00402882 . C785 48FFFFFF>mov dword ptr [ebp-B8], 0
0040288C . C785 40FFFFFF>mov dword ptr [ebp-C0], 8002
00402896 . 8D55 B8 lea edx, dword ptr [ebp-48]
00402899 . 52 push edx
0040289A . 8D85 40FFFFFF lea eax, dword ptr [ebp-C0]
004028A0 . 50 push eax
004028A1 . FF15 3C104000 call dword ptr [<&MSVBVM60.__vbaVarTs>; 检查B是否小于等于0
004028A7 . 66:85C0 test ax, ax
004028AA .^ 0F84 9FFEFFFF je 0040274F ; 不是,循环,循环时,把B重新赋给A
004028B0 . 8B4D D8 mov ecx, dword ptr [ebp-28]
004028B3 . 898D 48FFFFFF mov dword ptr [ebp-B8], ecx
004028B9 . C785 40FFFFFF>mov dword ptr [ebp-C0], 8008
004028C3 . 8D95 40FFFFFF lea edx, dword ptr [ebp-C0]
004028C9 . 52 push edx ; 真码
004028CA . 8D45 C8 lea eax, dword ptr [ebp-38]
004028CD . 50 push eax ; 假码
004028CE . FF15 B8104000 call dword ptr [<&MSVBVM60.__vbaVarTs>; MSVBVM60.__vbaVarTstNe
|