首页
社区
课程
招聘
[原创]E KEYGEN ME NO.2--BY Z 算法分析
发表于: 2009-1-12 11:04 6724

[原创]E KEYGEN ME NO.2--BY Z 算法分析

2009-1-12 11:04
6724

标 题: 【原创】 E KEYGEN ME NO.2--BY Z 算法分析
作 者: xiaojiam
时 间: 2009-01-12,10:50
链 接: http://bbs.pediy.com/showthread.php?t=80347

―――――――――――――――――――――――――――――――――――――
【文章标题】: E KEYGEN ME NO.2--BY Z 算法分析
【文章作者】: xiaojiam
【程序名称】: E KEYGEN ME NO.2--BY Z
【程序大小】: 549 KB
【下载地址】: http://bbs.pediy.com/showthread.php?t=80172
【保护方式】: 注册码
【编写语言】: 易语言
【使用工具】: PEID,OD
【操作平台】: D-Windows XP3
【程序介绍】: 一个供给菜鸟学习的练手程序.
【作者声明】: 我只是一只小菜鸟,失误之处难免,敬望诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  一、用PEID对程序进行查壳 → Microsoft Visual C++ 6.0 [Overlay]
  
      易语言写得,一看到是易语言写的心想又有一大堆的浮点算法在那里等着我了。正所谓:

      易语言的浮点多,
      delphi的好看多。
      VB写的代码超长,
      VC写的最正常啊!
  
  二、用OD载入程序进行分析。
  
  载入OD后运行程序,试注册一下,有错误提示。用F12暂停法来到下面的地方。
------------------------------(第一部分))---------------------------------------------------------

004099AB    55              PUSH EBP                                 ; 注册按钮入口点:
004099AC    8BEC            MOV EBP,ESP
004099AE    81EC 34000000   SUB ESP,34
004099B4    C745 FC 0000000>MOV DWORD PTR SS:[EBP-4],0
004099BB    C745 F8 0000000>MOV DWORD PTR SS:[EBP-8],0
004099C2    C745 F4 0000000>MOV DWORD PTR SS:[EBP-C],0
004099C9    C745 F0 0000000>MOV DWORD PTR SS:[EBP-10],0
004099D0    C745 EC 0000000>MOV DWORD PTR SS:[EBP-14],0
004099D7    C745 E8 0000000>MOV DWORD PTR SS:[EBP-18],0
004099DE    C745 E4 0000000>MOV DWORD PTR SS:[EBP-1C],0
004099E5    C745 E0 0000000>MOV DWORD PTR SS:[EBP-20],0
004099EC    6A FF           PUSH -1
004099EE    6A 08           PUSH 8
004099F0    68 04000116     PUSH 16010004
004099F5    68 01000152     PUSH 52010001
004099FA    E8 060D0000     CALL 2.0040A705
004099FF    83C4 10         ADD ESP,10
00409A02    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX
00409A05    8B45 DC         MOV EAX,DWORD PTR SS:[EBP-24]            ; 把用户名:hanyu代入EAX;
00409A08    50              PUSH EAX                                 ; EAX压栈;
00409A09    8B5D FC         MOV EBX,DWORD PTR SS:[EBP-4]
00409A0C    85DB            TEST EBX,EBX
00409A0E    74 09           JE SHORT 2.00409A19
00409A10    53              PUSH EBX
00409A11    E8 DD0C0000     CALL 2.0040A6F3
00409A16    83C4 04         ADD ESP,4
00409A19    58              POP EAX                                  ; EAX出栈;
00409A1A    8945 FC         MOV DWORD PTR SS:[EBP-4],EAX
00409A1D    6A FF           PUSH -1
00409A1F    6A 08           PUSH 8
00409A21    68 05000116     PUSH 16010005
00409A26    68 01000152     PUSH 52010001
00409A2B    E8 D50C0000     CALL 2.0040A705
00409A30    83C4 10         ADD ESP,10
00409A33    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX
00409A36    8B45 DC         MOV EAX,DWORD PTR SS:[EBP-24]            ; 假码:123456代入EAX;
00409A39    50              PUSH EAX
00409A3A    8B5D F8         MOV EBX,DWORD PTR SS:[EBP-8]
00409A3D    85DB            TEST EBX,EBX
00409A3F    74 09           JE SHORT 2.00409A4A
00409A41    53              PUSH EBX
00409A42    E8 AC0C0000     CALL 2.0040A6F3
00409A47    83C4 04         ADD ESP,4
00409A4A    58              POP EAX
00409A4B    8945 F8         MOV DWORD PTR SS:[EBP-8],EAX
00409A4E    68 04000080     PUSH 80000004
00409A53    6A 00           PUSH 0
00409A55    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00409A58    85C0            TEST EAX,EAX
00409A5A    75 05           JNZ SHORT 2.00409A61
00409A5C    B8 00000000     MOV EAX,0
00409A61    50              PUSH EAX                                 ; EAX里的用户名:hanyu压栈;
00409A62    68 01000000     PUSH 1
00409A67    BB 00000000     MOV EBX,0
00409A6C    B8 01000000     MOV EAX,1
00409A71    E8 890C0000     CALL 2.0040A6FF                          ; 用户名:hanyu转化为MD5值(MD5_1=0f64e80696b572976c80d4ab811e4819)
00409A76    83C4 10         ADD ESP,10
00409A79    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX
00409A7C    8B45 DC         MOV EAX,DWORD PTR SS:[EBP-24]
00409A7F    50              PUSH EAX                                 ; 把EAX中的MD5值进栈;
00409A80    8B5D FC         MOV EBX,DWORD PTR SS:[EBP-4]
00409A83    85DB            TEST EBX,EBX
00409A85    74 09           JE SHORT 2.00409A90
00409A87    53              PUSH EBX
00409A88    E8 660C0000     CALL 2.0040A6F3
00409A8D    83C4 04         ADD ESP,4
00409A90    58              POP EAX                                  ; EAX出栈;
00409A91    8945 FC         MOV DWORD PTR SS:[EBP-4],EAX             ; 把 ASCII "0f64e80696b572976c80d4ab811e4819"传递给EAX;
00409A94    68 01030080     PUSH 80000301
00409A99    6A 00           PUSH 0
00409A9B    68 02000000     PUSH 2                                   ; 表示取两位;
00409AA0    68 01030080     PUSH 80000301
00409AA5    6A 00           PUSH 0
00409AA7    68 05000000     PUSH 5                                   ; 表示从第五位开始啊!
00409AAC    68 04000080     PUSH 80000004
00409AB1    6A 00           PUSH 0
00409AB3    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00409AB6    85C0            TEST EAX,EAX
00409AB8    75 05           JNZ SHORT 2.00409ABF
00409ABA    B8 00000000     MOV EAX,0
00409ABF    50              PUSH EAX
00409AC0    68 03000000     PUSH 3
00409AC5    BB 3C010000     MOV EBX,13C
00409ACA    E8 2A0C0000     CALL 2.0040A6F9                          ; MD5值由第五位开始取两位:e8
00409ACF    83C4 28         ADD ESP,28
00409AD2    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX
00409AD5    8B45 DC         MOV EAX,DWORD PTR SS:[EBP-24]            ; 把e8代入EAX;
00409AD8    50              PUSH EAX                                 ; 易语言的进栈出栈实在太频繁了,后面就省略不多罗嗦了!
00409AD9    8B5D F4         MOV EBX,DWORD PTR SS:[EBP-C]
00409ADC    85DB            TEST EBX,EBX
00409ADE    74 09           JE SHORT 2.00409AE9
00409AE0    53              PUSH EBX
00409AE1    E8 0D0C0000     CALL 2.0040A6F3
00409AE6    83C4 04         ADD ESP,4
00409AE9    58              POP EAX
00409AEA    8945 F4         MOV DWORD PTR SS:[EBP-C],EAX
00409AED    68 01030080     PUSH 80000301
00409AF2    6A 00           PUSH 0
00409AF4    68 02000000     PUSH 2
00409AF9    68 01030080     PUSH 80000301
00409AFE    6A 00           PUSH 0
00409B00    68 0A000000     PUSH 0A                                  ; 第十位开始;
00409B05    68 04000080     PUSH 80000004
00409B0A    6A 00           PUSH 0
00409B0C    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]             ; 把 ASCII "0f64e80696b572976c80d4ab811e4819"传递给EAX;
00409B0F    85C0            TEST EAX,EAX
00409B11    75 05           JNZ SHORT 2.00409B18
00409B13    B8 00000000     MOV EAX,0
00409B18    50              PUSH EAX
00409B19    68 03000000     PUSH 3
00409B1E    BB 3C010000     MOV EBX,13C
00409B23    E8 D10B0000     CALL 2.0040A6F9                          ; MD5值第十位开始取两位:6B
00409B28    83C4 28         ADD ESP,28
00409B2B    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX            ; 把EAX中的6b传递给指定内存地址;
00409B2E    FF75 DC         PUSH DWORD PTR SS:[EBP-24]               ; 6b压栈;
00409B31    FF75 F4         PUSH DWORD PTR SS:[EBP-C]                ; e8压栈;
00409B34    B9 02000000     MOV ECX,2
00409B39    E8 74FDFFFF     CALL 2.004098B2                          ; 用压栈理论(先进后出)连接成"e86b";
00409B3E    83C4 08         ADD ESP,8
00409B41    8945 D8         MOV DWORD PTR SS:[EBP-28],EAX
00409B44    8B5D DC         MOV EBX,DWORD PTR SS:[EBP-24]            ; 把 (ASCII "6b")传递给EBX;
00409B47    85DB            TEST EBX,EBX
00409B49    74 09           JE SHORT 2.00409B54
00409B4B    53              PUSH EBX
00409B4C    E8 A20B0000     CALL 2.0040A6F3
00409B51    83C4 04         ADD ESP,4
00409B54    8B45 D8         MOV EAX,DWORD PTR SS:[EBP-28]
00409B57    50              PUSH EAX
00409B58    8B5D F4         MOV EBX,DWORD PTR SS:[EBP-C]             ; 把 (ASCII "e8")传递给EBX;
00409B5B    85DB            TEST EBX,EBX
00409B5D    74 09           JE SHORT 2.00409B68
00409B5F    53              PUSH EBX
00409B60    E8 8E0B0000     CALL 2.0040A6F3
00409B65    83C4 04         ADD ESP,4
00409B68    58              POP EAX
00409B69    8945 F4         MOV DWORD PTR SS:[EBP-C],EAX             ; (ASCII "e86b")传递给EAX ;
00409B6C    68 01030080     PUSH 80000301
00409B71    6A 00           PUSH 0
00409B73    68 02000000     PUSH 2
00409B78    68 01030080     PUSH 80000301
00409B7D    6A 00           PUSH 0
00409B7F    68 0C000000     PUSH 0C                                  ; 表示第十二位;
00409B84    68 04000080     PUSH 80000004
00409B89    6A 00           PUSH 0
00409B8B    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00409B8E    85C0            TEST EAX,EAX
00409B90    75 05           JNZ SHORT 2.00409B97
00409B92    B8 00000000     MOV EAX,0
00409B97    50              PUSH EAX
00409B98    68 03000000     PUSH 3
00409B9D    BB 3C010000     MOV EBX,13C
00409BA2    E8 520B0000     CALL 2.0040A6F9
00409BA7    83C4 28         ADD ESP,28
00409BAA    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX            ;  MD5值第十二位开始取两位:57
00409BAD    FF75 DC         PUSH DWORD PTR SS:[EBP-24]               ; (ASCII "57")压栈;
00409BB0    FF75 F4         PUSH DWORD PTR SS:[EBP-C]                ; (ASCII "e86b")压栈;
00409BB3    B9 02000000     MOV ECX,2
00409BB8    E8 F5FCFFFF     CALL 2.004098B2                          ; 三个值连起来:SN1=e86b57
00409BBD    83C4 08         ADD ESP,8
00409BC0    8945 D8         MOV DWORD PTR SS:[EBP-28],EAX
00409BC3    8B5D DC         MOV EBX,DWORD PTR SS:[EBP-24]
00409BC6    85DB            TEST EBX,EBX
00409BC8    74 09           JE SHORT 2.00409BD3
00409BCA    53              PUSH EBX
00409BCB    E8 230B0000     CALL 2.0040A6F3
00409BD0    83C4 04         ADD ESP,4
00409BD3    8B45 D8         MOV EAX,DWORD PTR SS:[EBP-28]
00409BD6    50              PUSH EAX
00409BD7    8B5D F0         MOV EBX,DWORD PTR SS:[EBP-10]
00409BDA    85DB            TEST EBX,EBX
00409BDC    74 09           JE SHORT 2.00409BE7
00409BDE    53              PUSH EBX
00409BDF    E8 0F0B0000     CALL 2.0040A6F3
00409BE4    83C4 04         ADD ESP,4
00409BE7    58              POP EAX                                  ;  ASCII "e86b57"出栈了;
00409BE8    8945 F0         MOV DWORD PTR SS:[EBP-10],EAX
00409BEB    68 01030080     PUSH 80000301
00409BF0    6A 00           PUSH 0
00409BF2    68 02000000     PUSH 2
00409BF7    68 01030080     PUSH 80000301
00409BFC    6A 00           PUSH 0
00409BFE    68 0F000000     PUSH 0F                                  ; 表示十五位;
00409C03    68 04000080     PUSH 80000004
00409C08    6A 00           PUSH 0
00409C0A    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00409C0D    85C0            TEST EAX,EAX
00409C0F    75 05           JNZ SHORT 2.00409C16
00409C11    B8 00000000     MOV EAX,0
00409C16    50              PUSH EAX
00409C17    68 03000000     PUSH 3
00409C1C    BB 3C010000     MOV EBX,13C
00409C21    E8 D30A0000     CALL 2.0040A6F9
00409C26    83C4 28         ADD ESP,28
00409C29    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX            ;  MD5值第十五位开始取两位:97
00409C2C    FF75 DC         PUSH DWORD PTR SS:[EBP-24]               ; E86B97压栈;
00409C2F    FF75 F4         PUSH DWORD PTR SS:[EBP-C]                ; 97压栈;
00409C32    B9 02000000     MOV ECX,2
00409C37    E8 76FCFFFF     CALL 2.004098B2
00409C3C    83C4 08         ADD ESP,8
00409C3F    8945 D8         MOV DWORD PTR SS:[EBP-28],EAX            ; @1 相连:E86B97 (小老鼠号在后 面有说明);
00409C42    8B5D DC         MOV EBX,DWORD PTR SS:[EBP-24]
00409C45    85DB            TEST EBX,EBX
00409C47    74 09           JE SHORT 2.00409C52
00409C49    53              PUSH EBX
00409C4A    E8 A40A0000     CALL 2.0040A6F3
00409C4F    83C4 04         ADD ESP,4
00409C52    8B45 D8         MOV EAX,DWORD PTR SS:[EBP-28]
00409C55    50              PUSH EAX
00409C56    8B5D F4         MOV EBX,DWORD PTR SS:[EBP-C]
00409C59    85DB            TEST EBX,EBX
00409C5B    74 09           JE SHORT 2.00409C66
00409C5D    53              PUSH EBX
00409C5E    E8 900A0000     CALL 2.0040A6F3
00409C63    83C4 04         ADD ESP,4
00409C66    58              POP EAX
00409C67    8945 F4         MOV DWORD PTR SS:[EBP-C],EAX
00409C6A    68 01030080     PUSH 80000301
00409C6F    6A 00           PUSH 0
00409C71    68 02000000     PUSH 2
00409C76    68 01030080     PUSH 80000301
00409C7B    6A 00           PUSH 0
00409C7D    68 11000000     PUSH 11                                  ; 17位;
00409C82    68 04000080     PUSH 80000004
00409C87    6A 00           PUSH 0
00409C89    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00409C8C    85C0            TEST EAX,EAX
00409C8E    75 05           JNZ SHORT 2.00409C95
00409C90    B8 00000000     MOV EAX,0
00409C95    50              PUSH EAX
00409C96    68 03000000     PUSH 3
00409C9B    BB 3C010000     MOV EBX,13C
00409CA0    E8 540A0000     CALL 2.0040A6F9
00409CA5    83C4 28         ADD ESP,28
00409CA8    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX            ;  MD5值第十七位开始取两位:6C
00409CAB    FF75 DC         PUSH DWORD PTR SS:[EBP-24]
00409CAE    FF75 F4         PUSH DWORD PTR SS:[EBP-C]
00409CB1    B9 02000000     MOV ECX,2
00409CB6    E8 F7FBFFFF     CALL 2.004098B2
00409CBB    83C4 08         ADD ESP,8
00409CBE    8945 D8         MOV DWORD PTR SS:[EBP-28],EAX
00409CC1    8B5D DC         MOV EBX,DWORD PTR SS:[EBP-24]
00409CC4    85DB            TEST EBX,EBX
00409CC6    74 09           JE SHORT 2.00409CD1
00409CC8    53              PUSH EBX
00409CC9    E8 250A0000     CALL 2.0040A6F3                          ; 还是压栈原理:SN2=e86b976c
00409CCE    83C4 04         ADD ESP,4
00409CD1    8B45 D8         MOV EAX,DWORD PTR SS:[EBP-28]
00409CD4    50              PUSH EAX
00409CD5    8B5D EC         MOV EBX,DWORD PTR SS:[EBP-14]
00409CD8    85DB            TEST EBX,EBX
00409CDA    74 09           JE SHORT 2.00409CE5
00409CDC    53              PUSH EBX
00409CDD    E8 110A0000     CALL 2.0040A6F3
00409CE2    83C4 04         ADD ESP,4
00409CE5    58              POP EAX
00409CE6    8945 EC         MOV DWORD PTR SS:[EBP-14],EAX
00409CE9    68 01030080     PUSH 80000301
00409CEE    6A 00           PUSH 0
00409CF0    68 02000000     PUSH 2
00409CF5    68 01030080     PUSH 80000301
00409CFA    6A 00           PUSH 0
00409CFC    68 14000000     PUSH 14
00409D01    68 04000080     PUSH 80000004
00409D06    6A 00           PUSH 0
00409D08    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00409D0B    85C0            TEST EAX,EAX
00409D0D    75 05           JNZ SHORT 2.00409D14
00409D0F    B8 00000000     MOV EAX,0
00409D14    50              PUSH EAX
00409D15    68 03000000     PUSH 3
00409D1A    BB 3C010000     MOV EBX,13C
00409D1F    E8 D5090000     CALL 2.0040A6F9
00409D24    83C4 28         ADD ESP,28
00409D27    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX            ;  MD5值第二十位开始取两位:0D
00409D2A    FF75 DC         PUSH DWORD PTR SS:[EBP-24]
00409D2D    FF75 F4         PUSH DWORD PTR SS:[EBP-C]
00409D30    B9 02000000     MOV ECX,2
00409D35    E8 78FBFFFF     CALL 2.004098B2
00409D3A    83C4 08         ADD ESP,8
00409D3D    8945 D8         MOV DWORD PTR SS:[EBP-28],EAX            ; @2 连接:e86b970d
00409D40    8B5D DC         MOV EBX,DWORD PTR SS:[EBP-24]
00409D43    85DB            TEST EBX,EBX
00409D45    74 09           JE SHORT 2.00409D50
00409D47    53              PUSH EBX
00409D48    E8 A6090000     CALL 2.0040A6F3
00409D4D    83C4 04         ADD ESP,4
00409D50    8B45 D8         MOV EAX,DWORD PTR SS:[EBP-28]
00409D53    50              PUSH EAX
00409D54    8B5D F4         MOV EBX,DWORD PTR SS:[EBP-C]
00409D57    85DB            TEST EBX,EBX
00409D59    74 09           JE SHORT 2.00409D64
00409D5B    53              PUSH EBX
00409D5C    E8 92090000     CALL 2.0040A6F3
00409D61    83C4 04         ADD ESP,4
00409D64    58              POP EAX
00409D65    8945 F4         MOV DWORD PTR SS:[EBP-C],EAX
00409D68    68 01030080     PUSH 80000301
00409D6D    6A 00           PUSH 0
00409D6F    68 02000000     PUSH 2
00409D74    68 01030080     PUSH 80000301
00409D79    6A 00           PUSH 0
00409D7B    68 16000000     PUSH 16
00409D80    68 04000080     PUSH 80000004
00409D85    6A 00           PUSH 0
00409D87    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00409D8A    85C0            TEST EAX,EAX
00409D8C    75 05           JNZ SHORT 2.00409D93
00409D8E    B8 00000000     MOV EAX,0
00409D93    50              PUSH EAX
00409D94    68 03000000     PUSH 3
00409D99    BB 3C010000     MOV EBX,13C
00409D9E    E8 56090000     CALL 2.0040A6F9
00409DA3    83C4 28         ADD ESP,28
00409DA6    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX            ;  MD5值第二十二位开始取两位:4A
00409DA9    FF75 DC         PUSH DWORD PTR SS:[EBP-24]
00409DAC    FF75 F4         PUSH DWORD PTR SS:[EBP-C]
00409DAF    B9 02000000     MOV ECX,2
00409DB4    E8 F9FAFFFF     CALL 2.004098B2
00409DB9    83C4 08         ADD ESP,8
00409DBC    8945 D8         MOV DWORD PTR SS:[EBP-28],EAX
00409DBF    8B5D DC         MOV EBX,DWORD PTR SS:[EBP-24]
00409DC2    85DB            TEST EBX,EBX
00409DC4    74 09           JE SHORT 2.00409DCF
00409DC6    53              PUSH EBX
00409DC7    E8 27090000     CALL 2.0040A6F3
00409DCC    83C4 04         ADD ESP,4
00409DCF    8B45 D8         MOV EAX,DWORD PTR SS:[EBP-28]            ; 同上:SN3=e86b970d4a
00409DD2    50              PUSH EAX
00409DD3    8B5D E8         MOV EBX,DWORD PTR SS:[EBP-18]
00409DD6    85DB            TEST EBX,EBX
00409DD8    74 09           JE SHORT 2.00409DE3
00409DDA    53              PUSH EBX
00409DDB    E8 13090000     CALL 2.0040A6F3
00409DE0    83C4 04         ADD ESP,4
00409DE3    58              POP EAX
00409DE4    8945 E8         MOV DWORD PTR SS:[EBP-18],EAX
00409DE7    68 01030080     PUSH 80000301
00409DEC    6A 00           PUSH 0
00409DEE    68 02000000     PUSH 2
00409DF3    68 01030080     PUSH 80000301
00409DF8    6A 00           PUSH 0
00409DFA    68 19000000     PUSH 19
00409DFF    68 04000080     PUSH 80000004
00409E04    6A 00           PUSH 0
00409E06    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00409E09    85C0            TEST EAX,EAX
00409E0B    75 05           JNZ SHORT 2.00409E12
00409E0D    B8 00000000     MOV EAX,0
00409E12    50              PUSH EAX
00409E13    68 03000000     PUSH 3
00409E18    BB 3C010000     MOV EBX,13C
00409E1D    E8 D7080000     CALL 2.0040A6F9
00409E22    83C4 28         ADD ESP,28
00409E25    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX            ;  MD5值第二十五位开始取两位:81
00409E28    FF75 DC         PUSH DWORD PTR SS:[EBP-24]
00409E2B    FF75 F4         PUSH DWORD PTR SS:[EBP-C]
00409E2E    B9 02000000     MOV ECX,2
00409E33    E8 7AFAFFFF     CALL 2.004098B2
00409E38    83C4 08         ADD ESP,8
00409E3B    8945 D8         MOV DWORD PTR SS:[EBP-28],EAX            ; @3  连接:e86b970d81
00409E3E    8B5D DC         MOV EBX,DWORD PTR SS:[EBP-24]
00409E41    85DB            TEST EBX,EBX
00409E43    74 09           JE SHORT 2.00409E4E
00409E45    53              PUSH EBX
00409E46    E8 A8080000     CALL 2.0040A6F3
00409E4B    83C4 04         ADD ESP,4
00409E4E    8B45 D8         MOV EAX,DWORD PTR SS:[EBP-28]
00409E51    50              PUSH EAX
00409E52    8B5D F4         MOV EBX,DWORD PTR SS:[EBP-C]
00409E55    85DB            TEST EBX,EBX
00409E57    74 09           JE SHORT 2.00409E62
00409E59    53              PUSH EBX
00409E5A    E8 94080000     CALL 2.0040A6F3
00409E5F    83C4 04         ADD ESP,4
00409E62    58              POP EAX
00409E63    8945 F4         MOV DWORD PTR SS:[EBP-C],EAX
00409E66    68 01030080     PUSH 80000301
00409E6B    6A 00           PUSH 0
00409E6D    68 02000000     PUSH 2
00409E72    68 01030080     PUSH 80000301
00409E77    6A 00           PUSH 0
00409E79    68 1B000000     PUSH 1B
00409E7E    68 04000080     PUSH 80000004
00409E83    6A 00           PUSH 0
00409E85    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00409E88    85C0            TEST EAX,EAX
00409E8A    75 05           JNZ SHORT 2.00409E91
00409E8C    B8 00000000     MOV EAX,0
00409E91    50              PUSH EAX
00409E92    68 03000000     PUSH 3
00409E97    BB 3C010000     MOV EBX,13C
00409E9C    E8 58080000     CALL 2.0040A6F9
00409EA1    83C4 28         ADD ESP,28
00409EA4    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX            ;  MD5值第二十七位开始取两位:1E
00409EA7    FF75 DC         PUSH DWORD PTR SS:[EBP-24]
00409EAA    FF75 F4         PUSH DWORD PTR SS:[EBP-C]
00409EAD    B9 02000000     MOV ECX,2
00409EB2    E8 FBF9FFFF     CALL 2.004098B2
00409EB7    83C4 08         ADD ESP,8
00409EBA    8945 D8         MOV DWORD PTR SS:[EBP-28],EAX
00409EBD    8B5D DC         MOV EBX,DWORD PTR SS:[EBP-24]
00409EC0    85DB            TEST EBX,EBX
00409EC2    74 09           JE SHORT 2.00409ECD
00409EC4    53              PUSH EBX
00409EC5    E8 29080000     CALL 2.0040A6F3                          ; 同上:SN4=e86b970d811e
00409ECA    83C4 04         ADD ESP,4
00409ECD    8B45 D8         MOV EAX,DWORD PTR SS:[EBP-28]
00409ED0    50              PUSH EAX
00409ED1    8B5D E4         MOV EBX,DWORD PTR SS:[EBP-1C]
00409ED4    85DB            TEST EBX,EBX
00409ED6    74 09           JE SHORT 2.00409EE1
00409ED8    53              PUSH EBX
00409ED9    E8 15080000     CALL 2.0040A6F3
00409EDE    83C4 04         ADD ESP,4
00409EE1    58              POP EAX
00409EE2    8945 E4         MOV DWORD PTR SS:[EBP-1C],EAX
00409EE5    68 01030080     PUSH 80000301
00409EEA    6A 00           PUSH 0
00409EEC    68 02000000     PUSH 2
00409EF1    68 01030080     PUSH 80000301
00409EF6    6A 00           PUSH 0
00409EF8    68 1E000000     PUSH 1E
00409EFD    68 04000080     PUSH 80000004
00409F02    6A 00           PUSH 0
00409F04    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00409F07    85C0            TEST EAX,EAX
00409F09    75 05           JNZ SHORT 2.00409F10
00409F0B    B8 00000000     MOV EAX,0
00409F10    50              PUSH EAX
00409F11    68 03000000     PUSH 3
00409F16    BB 3C010000     MOV EBX,13C
00409F1B    E8 D9070000     CALL 2.0040A6F9
00409F20    83C4 28         ADD ESP,28
00409F23    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX            ;  MD5值第三十位开始取两位:81
00409F26    FF75 DC         PUSH DWORD PTR SS:[EBP-24]
00409F29    FF75 F4         PUSH DWORD PTR SS:[EBP-C]
00409F2C    B9 02000000     MOV ECX,2
00409F31    E8 7CF9FFFF     CALL 2.004098B2                          ; @4 连接:e86b970d8181
00409F36    83C4 08         ADD ESP,8
00409F39    8945 D8         MOV DWORD PTR SS:[EBP-28],EAX
00409F3C    8B5D DC         MOV EBX,DWORD PTR SS:[EBP-24]
00409F3F    85DB            TEST EBX,EBX
00409F41    74 09           JE SHORT 2.00409F4C
00409F43    53              PUSH EBX
00409F44    E8 AA070000     CALL 2.0040A6F3
00409F49    83C4 04         ADD ESP,4
00409F4C    8B45 D8         MOV EAX,DWORD PTR SS:[EBP-28]
00409F4F    50              PUSH EAX
00409F50    8B5D F4         MOV EBX,DWORD PTR SS:[EBP-C]
00409F53    85DB            TEST EBX,EBX
00409F55    74 09           JE SHORT 2.00409F60
00409F57    53              PUSH EBX
00409F58    E8 96070000     CALL 2.0040A6F3
00409F5D    83C4 04         ADD ESP,4
00409F60    58              POP EAX
00409F61    8945 F4         MOV DWORD PTR SS:[EBP-C],EAX
00409F64    68 01030080     PUSH 80000301
00409F69    6A 00           PUSH 0
00409F6B    68 02000000     PUSH 2
00409F70    68 01030080     PUSH 80000301
00409F75    6A 00           PUSH 0
00409F77    68 20000000     PUSH 20                                  ; 表示32位;
00409F7C    68 04000080     PUSH 80000004
00409F81    6A 00           PUSH 0
00409F83    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00409F86    85C0            TEST EAX,EAX
00409F88    75 05           JNZ SHORT 2.00409F8F
00409F8A    B8 00000000     MOV EAX,0
00409F8F    50              PUSH EAX
00409F90    68 03000000     PUSH 3
00409F95    BB 3C010000     MOV EBX,13C
00409F9A    E8 5A070000     CALL 2.0040A6F9                          ; 晕大,32起跳还要取两位,最后没数只好取倒数一位:9
00409F9F    83C4 28         ADD ESP,28
00409FA2    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX
00409FA5    FF75 DC         PUSH DWORD PTR SS:[EBP-24]
00409FA8    FF75 F4         PUSH DWORD PTR SS:[EBP-C]
00409FAB    B9 02000000     MOV ECX,2
00409FB0    E8 FDF8FFFF     CALL 2.004098B2
00409FB5    83C4 08         ADD ESP,8
00409FB8    8945 D8         MOV DWORD PTR SS:[EBP-28],EAX
00409FBB    8B5D DC         MOV EBX,DWORD PTR SS:[EBP-24]
00409FBE    85DB            TEST EBX,EBX
00409FC0    74 09           JE SHORT 2.00409FCB
00409FC2    53              PUSH EBX
00409FC3    E8 2B070000     CALL 2.0040A6F3                          ; 同上:SN5=e86b970d81819
00409FC8    83C4 04         ADD ESP,4
00409FCB    8B45 D8         MOV EAX,DWORD PTR SS:[EBP-28]
00409FCE    50              PUSH EAX
00409FCF    8B5D E0         MOV EBX,DWORD PTR SS:[EBP-20]
00409FD2    85DB            TEST EBX,EBX
00409FD4    74 09           JE SHORT 2.00409FDF
00409FD6    53              PUSH EBX
00409FD7    E8 17070000     CALL 2.0040A6F3
00409FDC    83C4 04         ADD ESP,4
00409FDF    58              POP EAX
00409FE0    8945 E0         MOV DWORD PTR SS:[EBP-20],EAX
00409FE3    68 01030080     PUSH 80000301
00409FE8    6A 00           PUSH 0
00409FEA    68 02000000     PUSH 2
00409FEF    68 01030080     PUSH 80000301
00409FF4    6A 00           PUSH 0
00409FF6    68 23000000     PUSH 23
00409FFB    68 04000080     PUSH 80000004
0040A000    6A 00           PUSH 0
0040A002    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
0040A005    85C0            TEST EAX,EAX
0040A007    75 05           JNZ SHORT 2.0040A00E
0040A009    B8 00000000     MOV EAX,0
0040A00E    50              PUSH EAX
0040A00F    68 03000000     PUSH 3
0040A014    BB 3C010000     MOV EBX,13C
0040A019    E8 DB060000     CALL 2.0040A6F9                          ; 取到三十五位????
0040A01E    83C4 28         ADD ESP,28
0040A021    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX
0040A024    FF75 DC         PUSH DWORD PTR SS:[EBP-24]
0040A027    FF75 F4         PUSH DWORD PTR SS:[EBP-C]
0040A02A    B9 02000000     MOV ECX,2
0040A02F    E8 7EF8FFFF     CALL 2.004098B2
0040A034    83C4 08         ADD ESP,8
0040A037    8945 D8         MOV DWORD PTR SS:[EBP-28],EAX            ; @5 什么也没有了!实在太超过了!:e86b970d8181
0040A03A    8B5D DC         MOV EBX,DWORD PTR SS:[EBP-24]
0040A03D    85DB            TEST EBX,EBX
0040A03F    74 09           JE SHORT 2.0040A04A
0040A041    53              PUSH EBX
0040A042    E8 AC060000     CALL 2.0040A6F3
0040A047    83C4 04         ADD ESP,4
0040A04A    8B45 D8         MOV EAX,DWORD PTR SS:[EBP-28]
0040A04D    50              PUSH EAX
0040A04E    8B5D F4         MOV EBX,DWORD PTR SS:[EBP-C]
0040A051    85DB            TEST EBX,EBX
0040A053    74 09           JE SHORT 2.0040A05E
0040A055    53              PUSH EBX
0040A056    E8 98060000     CALL 2.0040A6F3
0040A05B    83C4 04         ADD ESP,4
0040A05E    58              POP EAX                                  ; 出栈:(第一部分完了!)
0040A05F    8945 F4         MOV DWORD PTR SS:[EBP-C],EAX
0040A062    FF75 EC         PUSH DWORD PTR SS:[EBP-14]               ; SN2=e86b976c 进栈;
0040A065    FF75 F0         PUSH DWORD PTR SS:[EBP-10]               ; SN1=e86b57 进栈;
0040A068    B9 02000000     MOV ECX,2
0040A06D    E8 40F8FFFF     CALL 2.004098B2
0040A072    83C4 08         ADD ESP,8
0040A075    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX            ; 连接得 L1=e86b57e86b976c;
0040A078    8B45 DC         MOV EAX,DWORD PTR SS:[EBP-24]
0040A07B    50              PUSH EAX
0040A07C    8B5D F0         MOV EBX,DWORD PTR SS:[EBP-10]
0040A07F    85DB            TEST EBX,EBX
0040A081    74 09           JE SHORT 2.0040A08C
0040A083    53              PUSH EBX
0040A084    E8 6A060000     CALL 2.0040A6F3
0040A089    83C4 04         ADD ESP,4
0040A08C    58              POP EAX
0040A08D    8945 F0         MOV DWORD PTR SS:[EBP-10],EAX
0040A090    FF75 E8         PUSH DWORD PTR SS:[EBP-18]               ; 堆栈 SN3=e86b970d4a
0040A093    FF75 EC         PUSH DWORD PTR SS:[EBP-14]               ; 堆栈 SN2=e86b976c
0040A096    B9 02000000     MOV ECX,2
0040A09B    E8 12F8FFFF     CALL 2.004098B2
0040A0A0    83C4 08         ADD ESP,8
0040A0A3    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX            ; 连接得 L2=e86b976ce86b970d4a
0040A0A6    8B45 DC         MOV EAX,DWORD PTR SS:[EBP-24]
0040A0A9    50              PUSH EAX
0040A0AA    8B5D EC         MOV EBX,DWORD PTR SS:[EBP-14]
0040A0AD    85DB            TEST EBX,EBX
0040A0AF    74 09           JE SHORT 2.0040A0BA
0040A0B1    53              PUSH EBX
0040A0B2    E8 3C060000     CALL 2.0040A6F3
0040A0B7    83C4 04         ADD ESP,4
0040A0BA    58              POP EAX
0040A0BB    8945 EC         MOV DWORD PTR SS:[EBP-14],EAX
0040A0BE    FF75 E4         PUSH DWORD PTR SS:[EBP-1C]               ; 堆栈  SN4=e86b970d811e
0040A0C1    FF75 E8         PUSH DWORD PTR SS:[EBP-18]               ; 堆栈  SN3=e86b970d4a
0040A0C4    B9 02000000     MOV ECX,2
0040A0C9    E8 E4F7FFFF     CALL 2.004098B2
0040A0CE    83C4 08         ADD ESP,8
0040A0D1    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX            ; 连接得:L3=e86b970d4ae86b970d811e
0040A0D4    8B45 DC         MOV EAX,DWORD PTR SS:[EBP-24]
0040A0D7    50              PUSH EAX
0040A0D8    8B5D E8         MOV EBX,DWORD PTR SS:[EBP-18]
0040A0DB    85DB            TEST EBX,EBX
0040A0DD    74 09           JE SHORT 2.0040A0E8
0040A0DF    53              PUSH EBX
0040A0E0    E8 0E060000     CALL 2.0040A6F3
0040A0E5    83C4 04         ADD ESP,4
0040A0E8    58              POP EAX
0040A0E9    8945 E8         MOV DWORD PTR SS:[EBP-18],EAX
0040A0EC    FF75 E0         PUSH DWORD PTR SS:[EBP-20]               ; 堆栈  SN5=e86b970d81819
0040A0EF    FF75 E4         PUSH DWORD PTR SS:[EBP-1C]               ; 堆栈  SN4=e86b970d811e
0040A0F2    B9 02000000     MOV ECX,2
0040A0F7    E8 B6F7FFFF     CALL 2.004098B2
0040A0FC    83C4 08         ADD ESP,8
0040A0FF    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX            ; 连接得:L4=e86b970d811ee86b970d81819
0040A102    8B45 DC         MOV EAX,DWORD PTR SS:[EBP-24]
0040A105    50              PUSH EAX
0040A106    8B5D E4         MOV EBX,DWORD PTR SS:[EBP-1C]
0040A109    85DB            TEST EBX,EBX
0040A10B    74 09           JE SHORT 2.0040A116
0040A10D    53              PUSH EBX
0040A10E    E8 E0050000     CALL 2.0040A6F3
0040A113    83C4 04         ADD ESP,4
0040A116    58              POP EAX
0040A117    8945 E4         MOV DWORD PTR SS:[EBP-1C],EAX
0040A11A    FF75 E4         PUSH DWORD PTR SS:[EBP-1C]               ; 堆栈 L4=e86b970d811ee86b970d81819
0040A11D    FF75 E8         PUSH DWORD PTR SS:[EBP-18]               ; 堆栈 L3=e86b970d4ae86b970d811e
0040A120    FF75 EC         PUSH DWORD PTR SS:[EBP-14]               ; 堆栈 L2=e86b976ce86b970d4a
0040A123    FF75 F0         PUSH DWORD PTR SS:[EBP-10]               ; 堆栈 L1=e86b57e86b976c
0040A126    B9 04000000     MOV ECX,4
0040A12B    E8 82F7FFFF     CALL 2.004098B2                          ; 长连接得到: CL1=e86b57e86b976ce86b976ce86b970d4ae86b970d4ae86b970d811ee86b970d811ee86b970d81819
0040A130    83C4 10         ADD ESP,10
0040A133    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX
0040A136    8B45 DC         MOV EAX,DWORD PTR SS:[EBP-24]
0040A139    50              PUSH EAX
0040A13A    8B5D E0         MOV EBX,DWORD PTR SS:[EBP-20]
0040A13D    85DB            TEST EBX,EBX
0040A13F    74 09           JE SHORT 2.0040A14A
0040A141    53              PUSH EBX
0040A142    E8 AC050000     CALL 2.0040A6F3
0040A147    83C4 04         ADD ESP,4
0040A14A    58              POP EAX                                  ; 出栈;
0040A14B    8945 E0         MOV DWORD PTR SS:[EBP-20],EAX
0040A14E    68 04000080     PUSH 80000004
0040A153    6A 00           PUSH 0
0040A155    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]             ; //这里的代码在后面根本没用到,用物理来说的话都在做无用功;
0040A158    85C0            TEST EAX,EAX                             ; //耗内存;
0040A15A    75 05           JNZ SHORT 2.0040A161
0040A15C    B8 00000000     MOV EAX,0
0040A161    50              PUSH EAX                                 ;  (ASCII "e86b970d8181")入栈;
0040A162    68 01000000     PUSH 1
0040A167    BB 00000000     MOV EBX,0
0040A16C    B8 01000000     MOV EAX,1
0040A171    E8 89050000     CALL 2.0040A6FF                          ; e86b970d8181:取MD5值
0040A176    83C4 10         ADD ESP,10
0040A179    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX            ; MD5值为:ca075acb969d85760fe944ecf0aff5df
0040A17C    8B45 DC         MOV EAX,DWORD PTR SS:[EBP-24]
0040A17F    50              PUSH EAX
0040A180    8B5D F4         MOV EBX,DWORD PTR SS:[EBP-C]
0040A183    85DB            TEST EBX,EBX
0040A185    74 09           JE SHORT 2.0040A190
0040A187    53              PUSH EBX
0040A188    E8 66050000     CALL 2.0040A6F3
0040A18D    83C4 04         ADD ESP,4
0040A190    58              POP EAX
0040A191    8945 F4         MOV DWORD PTR SS:[EBP-C],EAX
0040A194    68 04000080     PUSH 80000004
0040A199    6A 00           PUSH 0
0040A19B    8B45 E0         MOV EAX,DWORD PTR SS:[EBP-20]
0040A19E    85C0            TEST EAX,EAX
0040A1A0    75 05           JNZ SHORT 2.0040A1A7
0040A1A2    B8 00000000     MOV EAX,0
0040A1A7    50              PUSH EAX                                 ;  (ASCII "e86b57e86b976ce86b976ce86b970d4ae86b970d4ae86b970d811ee86b970d811ee86b970d81819")进栈;
0040A1A8    68 01000000     PUSH 1
0040A1AD    BB 00000000     MOV EBX,0
0040A1B2    B8 01000000     MOV EAX,1
0040A1B7    E8 43050000     CALL 2.0040A6FF                          ; 取MD5值;
0040A1BC    83C4 10         ADD ESP,10
0040A1BF    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX            ; 转换后的 MD5_2 =99c73abe5fa3d5005192f9fc9f7d5e81
0040A1C2    8B45 DC         MOV EAX,DWORD PTR SS:[EBP-24]
0040A1C5    50              PUSH EAX
0040A1C6    8B5D E0         MOV EBX,DWORD PTR SS:[EBP-20]
0040A1C9    85DB            TEST EBX,EBX
0040A1CB    74 09           JE SHORT 2.0040A1D6
0040A1CD    53              PUSH EBX
0040A1CE    E8 20050000     CALL 2.0040A6F3
0040A1D3    83C4 04         ADD ESP,4
0040A1D6    58              POP EAX
0040A1D7    8945 E0         MOV DWORD PTR SS:[EBP-20],EAX
0040A1DA    68 01030080     PUSH 80000301
0040A1DF    6A 00           PUSH 0
0040A1E1    68 05000000     PUSH 5                                   ; 取五位;
0040A1E6    68 04000080     PUSH 80000004
0040A1EB    6A 00           PUSH 0                                   ; 第一位起;
0040A1ED    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
0040A1F0    85C0            TEST EAX,EAX
0040A1F2    75 05           JNZ SHORT 2.0040A1F9
0040A1F4    B8 00000000     MOV EAX,0
0040A1F9    50              PUSH EAX
0040A1FA    68 02000000     PUSH 2
0040A1FF    BB 34010000     MOV EBX,134
0040A204    E8 F0040000     CALL 2.0040A6F9
0040A209    83C4 1C         ADD ESP,1C
0040A20C    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX            ; 从第一位起取五位:CD1=99c73
0040A20F    68 01030080     PUSH 80000301
0040A214    6A 00           PUSH 0
0040A216    68 05000000     PUSH 5
0040A21B    68 01030080     PUSH 80000301
0040A220    6A 00           PUSH 0
0040A222    68 09000000     PUSH 9
0040A227    68 04000080     PUSH 80000004
0040A22C    6A 00           PUSH 0
0040A22E    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
0040A231    85C0            TEST EAX,EAX
0040A233    75 05           JNZ SHORT 2.0040A23A
0040A235    B8 00000000     MOV EAX,0
0040A23A    50              PUSH EAX
0040A23B    68 03000000     PUSH 3
0040A240    BB 3C010000     MOV EBX,13C
0040A245    E8 AF040000     CALL 2.0040A6F9
0040A24A    83C4 28         ADD ESP,28
0040A24D    8945 D8         MOV DWORD PTR SS:[EBP-28],EAX            ; 从第九位起取五位:CD2=5fa3d
0040A250    68 01030080     PUSH 80000301
0040A255    6A 00           PUSH 0
0040A257    68 05000000     PUSH 5
0040A25C    68 01030080     PUSH 80000301
0040A261    6A 00           PUSH 0
0040A263    68 10000000     PUSH 10
0040A268    68 04000080     PUSH 80000004
0040A26D    6A 00           PUSH 0
0040A26F    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
0040A272    85C0            TEST EAX,EAX
0040A274    75 05           JNZ SHORT 2.0040A27B
0040A276    B8 00000000     MOV EAX,0
0040A27B    50              PUSH EAX
0040A27C    68 03000000     PUSH 3
0040A281    BB 3C010000     MOV EBX,13C
0040A286    E8 6E040000     CALL 2.0040A6F9                          ; 从第十六位起取五位:CD3=05192
0040A28B    83C4 28         ADD ESP,28
0040A28E    8945 D4         MOV DWORD PTR SS:[EBP-2C],EAX
0040A291    68 01030080     PUSH 80000301
0040A296    6A 00           PUSH 0
0040A298    68 05000000     PUSH 5
0040A29D    68 01030080     PUSH 80000301
0040A2A2    6A 00           PUSH 0
0040A2A4    68 18000000     PUSH 18
0040A2A9    68 04000080     PUSH 80000004
0040A2AE    6A 00           PUSH 0
0040A2B0    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
0040A2B3    85C0            TEST EAX,EAX
0040A2B5    75 05           JNZ SHORT 2.0040A2BC
0040A2B7    B8 00000000     MOV EAX,0
0040A2BC    50              PUSH EAX
0040A2BD    68 03000000     PUSH 3
0040A2C2    BB 3C010000     MOV EBX,13C
0040A2C7    E8 2D040000     CALL 2.0040A6F9                          ; 从第二十四位起取五位:CD4=c9f7d
0040A2CC    83C4 28         ADD ESP,28
0040A2CF    8945 D0         MOV DWORD PTR SS:[EBP-30],EAX
0040A2D2    FF75 D0         PUSH DWORD PTR SS:[EBP-30]
0040A2D5    FF75 D4         PUSH DWORD PTR SS:[EBP-2C]
0040A2D8    FF75 D8         PUSH DWORD PTR SS:[EBP-28]
0040A2DB    FF75 DC         PUSH DWORD PTR SS:[EBP-24]
0040A2DE    B9 04000000     MOV ECX,4
0040A2E3    E8 CAF5FFFF     CALL 2.004098B2
0040A2E8    83C4 10         ADD ESP,10
0040A2EB    8945 CC         MOV DWORD PTR SS:[EBP-34],EAX
0040A2EE    8B5D DC         MOV EBX,DWORD PTR SS:[EBP-24]
0040A2F1    85DB            TEST EBX,EBX
0040A2F3    74 09           JE SHORT 2.0040A2FE
0040A2F5    53              PUSH EBX
0040A2F6    E8 F8030000     CALL 2.0040A6F3
0040A2FB    83C4 04         ADD ESP,4
0040A2FE    8B5D D8         MOV EBX,DWORD PTR SS:[EBP-28]
0040A301    85DB            TEST EBX,EBX
0040A303    74 09           JE SHORT 2.0040A30E
0040A305    53              PUSH EBX
0040A306    E8 E8030000     CALL 2.0040A6F3
0040A30B    83C4 04         ADD ESP,4
0040A30E    8B5D D4         MOV EBX,DWORD PTR SS:[EBP-2C]
0040A311    85DB            TEST EBX,EBX
0040A313    74 09           JE SHORT 2.0040A31E
0040A315    53              PUSH EBX
0040A316    E8 D8030000     CALL 2.0040A6F3
0040A31B    83C4 04         ADD ESP,4
0040A31E    8B5D D0         MOV EBX,DWORD PTR SS:[EBP-30]
0040A321    85DB            TEST EBX,EBX
0040A323    74 09           JE SHORT 2.0040A32E
0040A325    53              PUSH EBX
0040A326    E8 C8030000     CALL 2.0040A6F3
0040A32B >  83C4 04         ADD ESP,4
0040A32E    8B45 CC         MOV EAX,DWORD PTR SS:[EBP-34]            ; 连接四个结果:CDKEY=99c735fa3d05192c9f7d
0040A331    50              PUSH EAX
0040A332    8B5D F4         MOV EBX,DWORD PTR SS:[EBP-C]
0040A335    85DB            TEST EBX,EBX
0040A337    74 09           JE SHORT 2.0040A342
0040A339    53              PUSH EBX
0040A33A    E8 B4030000     CALL 2.0040A6F3
0040A33F    83C4 04         ADD ESP,4
0040A342    58              POP EAX                                  ; 出栈;(第二部分完了!)

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (8)
雪    币: 261
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
.版本 2
.支持库 MD5

.程序集 窗口程序集1

.子程序 _按钮2_被单击

结束 ()

.子程序 _按钮1_被单击
.局部变量 md5, MD5
.局部变量 MD5_1, 文本型
.局部变量 MD5_2, 文本型
.局部变量 MD5_3, 文本型
.局部变量 MD5_4, 文本型
.局部变量 sn1, 文本型
.局部变量 sn2, 文本型
.局部变量 sn3, 文本型
.局部变量 sn4, 文本型
.局部变量 sn5, 文本型
.局部变量 临时值, 文本型
.局部变量 临时值1, 文本型
.局部变量 临时值2, 文本型
.局部变量 临时值3, 文本型
.局部变量 临时值4, 文本型
.局部变量 l1, 文本型
.局部变量 l2, 文本型
.局部变量 l3, 文本型
.局部变量 l4, 文本型
.局部变量 cl1, 文本型
.局部变量 cl2, 文本型
.局部变量 CDKEY, 文本型

   '########################################################################
    .判断开始 (编辑框1.内容 ≠ “”)
    md5.压入数据 (到字节集 (编辑框1.内容))
    MD5_1 = md5.收尾 ()
    临时值 = 取文本中间 (MD5_1, 5, 2) + 取文本中间 (MD5_1, 10, 2)
    临时值1 = 临时值 + 取文本中间 (MD5_1, 15, 2)
    临时值2 = 临时值1 + 取文本中间 (MD5_1, 20, 2)
    临时值3 = 临时值2 + 取文本中间 (MD5_1, 25, 2)
    临时值4 = 临时值3 + 取文本中间 (MD5_1, 30, 2)
    ' ##########################################################################
    sn1 = 临时值 + 取文本中间 (MD5_1, 12, 2)
    sn2 = 临时值1 + 取文本中间 (MD5_1, 17, 2)
    sn3 = 临时值2 + 取文本中间 (MD5_1, 22, 2)
    sn4 = 临时值3 + 取文本中间 (MD5_1, 27, 2)
    sn5 = 临时值4 + 取文本中间 (MD5_1, 32, 2)
    ' ##########################################################################
    l1 = sn1 + sn2
    l2 = sn2 + sn3
    l3 = sn3 + sn4
    l4 = sn4 + sn5
   ' ##########################################################################
    ' 把四个连接好的结果再连接起来
    cl1 = l1 + l2 + l3 + l4
    ' ##########################################################################
    md5.压入数据 (到字节集 (cl1))
    MD5_2 = md5.收尾 ()
   ' ##########################################################################
    ' CDKEY=CD1+CD2+CD3+CD4我就不做分步计算,直接一不到位;
    CDKEY = 取文本左边 (MD5_2, 5) + 取文本中间 (MD5_2, 9, 5) + 取文本中间 (MD5_2, 16, 5) + 取文本中间 (MD5_2, 24, 5)
   ' ##########################################################################
    md5.压入数据 (到字节集 (CDKEY))
    MD5_3 = md5.收尾 ()
    ' ##########################################################################
    ' 连接两次的结果
    cl2 = MD5_3 + MD5_3
   ' ##########################################################################
    md5.压入数据 (到字节集 (cl2))
    MD5_4 = md5.收尾 ()
    ' ##########################################################################
    编辑框2.内容 = MD5_4
.默认
    信息框 (“请输入用户名!谢谢合作!”, 0, “注意:”)
.判断结束
上传的附件:
2009-1-12 11:07
0
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
嘿嘿牛人啊  我都还不怎么懂呢继续深造
2009-1-12 13:31
0
雪    币: 2362
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我爱死你了!
我错了,不该做这么无聊的CM 555~~~~
2009-1-12 14:30
0
雪    币: 261
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
正所谓十年磨一剑,在看雪学院泡了大半年才能博得一个精华!实在高兴至极!
2009-1-12 17:47
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
6
欢迎加入普通会员
2009-1-12 17:49
0
雪    币: 563
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
不错收藏了
2009-1-12 21:22
0
雪    币: 471
活跃值: (4058)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
8
易语言不感兴趣,浮点运算头大
2009-1-15 12:47
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9

易语言的浮点多,
delphi的好看多。
VB写的代码超长,
VC写的最正常啊!


说的太好,比喻很恰当
2009-1-15 14:40
0
游客
登录 | 注册 方可回帖
返回
//