首页
社区
课程
招聘
[原创]KuNgBiM献给所有爱好破解的初学者的Crackme的简单分析
发表于: 2006-12-26 13:58 34864

[原创]KuNgBiM献给所有爱好破解的初学者的Crackme的简单分析

2006-12-26 13:58
34864

【文章标题】: KuNgBiM的“的Crackme”的算法分析
【文章作者】: dewar
【软件名称】: 献给所有爱好破解的初学者的Crackme.exe
【下载地址】: 初入门新手crackme博物馆30楼
【加壳方式】: 无
【保护方式】: 无
【编写语言】: VB
【使用工具】: OD
【操作平台】: WINXP
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  本人属初入门级的菜鸟,昨天发了第一篇破文,不想加精了!大大激发了我的继续写的热情。为此我便将这篇破文写出, 为了让和我一样的菜鸟能看懂,我尽量写详细点。如有什么不明白的地方,可以提问,我会尽我知道的回答你!有意思和  我一起玩破解的可加我的QQ,希望大家一起进步^_^
  好了,废话少说,言归正传。
  1.首先,OD载入,按ALT+E打开模块窗口,双击MSVBVM60.DLL,再按CTRL+N,然后找到“vbaStrCmp”,这是VB用于比较字符串的函数,在这个函数上下F2断点。F9运行,输入注册名:dewar  注册码:1234 ,点注册。我们看到程序被断下,断在模块MSVBVM60内,这里我们是不能动的,你要是动了这里,极有可能导致所有VB程序运行不正常^&^好,我们ALT+F9,返回我们程序的领空,到了00402C98处。
  2.这时你可以取消前面设的断点,然后单步跟踪,当跟到004040DC处你可看到右上EAX中的内容就是真正的注册码,而EDX中是我们输入的假码。
  再单步向下到00403100处,这里就是关键跳转了,把JE改为JMP就可爆破。一路跟下来,我们并没有发现计算注册码的地方,可见程序在00402C98前就已经计算出了正确的注册码。于是向前观察各个CALL,只要是CALL向系统代码的都应该不是计算注册码的。当来到00402BEE时,我们发现它CALL向本程序的一个地址,极有可能是关键CALL,在这里下F2断点,重新载入,运行,输入。。。。。
  ......
  00402BEE   .  FF90 F8060000 CALL    DWORD PTR DS:[EAX+6F8]                    ;  <===计算注册码(关键CALL),F7进入
  00402BF4   .  3BC3          CMP     EAX, EBX
  00402BF6   .  7D 12         JGE     SHORT 00402C0A
  00402BF8   .  68 F8060000   PUSH    6F8                                       ; /Arg4 = 000006F8
  00402BFD   .  68 D8244000   PUSH    004024D8                                  ; |Arg3 = 004024D8
  00402C02   .  56            PUSH    ESI                                       ; |Arg2
  00402C03   .  50            PUSH    EAX                                       ; |Arg1
  00402C04   .  FF15 3C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaHresultChec>; \__vbaHresultCheckObj
  00402C0A   >  8D4D B8       LEA     ECX, DWORD PTR SS:[EBP-48]
  00402C0D   .  FF15 14104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeVar>]   ;  MSVBVM60.__vbaFreeVar
  00402C13   .  8B16          MOV     EDX, DWORD PTR DS:[ESI]
  00402C15   .  56            PUSH    ESI
  00402C16   .  FF92 08030000 CALL    DWORD PTR DS:[EDX+308]
  00402C1C   .  50            PUSH    EAX                                       ; /Arg2
  00402C1D   .  8D45 CC       LEA     EAX, DWORD PTR SS:[EBP-34]                ; |
  00402C20   .  50            PUSH    EAX                                       ; |Arg1
  00402C21   .  FF15 48104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaObjSet>]    ; \__vbaObjSet
  00402C27   .  8D55 D8       LEA     EDX, DWORD PTR SS:[EBP-28]
  00402C2A   .  8BF8          MOV     EDI, EAX
  00402C2C   .  8B0F          MOV     ECX, DWORD PTR DS:[EDI]
  00402C2E   .  52            PUSH    EDX
  00402C2F   .  57            PUSH    EDI
  00402C30   .  FF91 A0000000 CALL    DWORD PTR DS:[ECX+A0]                     ;  获取用户名
  00402C36   .  DBE2          FCLEX
  00402C38   .  3BC3          CMP     EAX, EBX
  00402C3A   .  7D 12         JGE     SHORT 00402C4E
  00402C3C   .  68 A0000000   PUSH    0A0                                       ; /Arg4 = 000000A0
  00402C41   .  68 60264000   PUSH    00402660                                  ; |Arg3 = 00402660
  00402C46   .  57            PUSH    EDI                                       ; |Arg2
  00402C47   .  50            PUSH    EAX                                       ; |Arg1
  00402C48   .  FF15 3C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaHresultChec>; \__vbaHresultCheckObj
  00402C4E   >  8B06          MOV     EAX, DWORD PTR DS:[ESI]
  00402C50   .  56            PUSH    ESI
  00402C51   .  FF90 00030000 CALL    DWORD PTR DS:[EAX+300]
  00402C57   .  50            PUSH    EAX                                       ; /Arg2
  00402C58   .  8D4D C8       LEA     ECX, DWORD PTR SS:[EBP-38]                ; |
  00402C5B   .  51            PUSH    ECX                                       ; |Arg1
  00402C5C   .  FF15 48104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaObjSet>]    ; \__vbaObjSet
  00402C62   .  8BF8          MOV     EDI, EAX
  00402C64   .  8B17          MOV     EDX, DWORD PTR DS:[EDI]
  00402C66   .  8D45 D4       LEA     EAX, DWORD PTR SS:[EBP-2C]
  00402C69   .  50            PUSH    EAX
  00402C6A   .  57            PUSH    EDI
  00402C6B   .  FF92 A0000000 CALL    DWORD PTR DS:[EDX+A0]                     ;  获取注册码
  00402C71   .  DBE2          FCLEX
  00402C73   .  3BC3          CMP     EAX, EBX
  00402C75   .  7D 12         JGE     SHORT 00402C89
  00402C77   .  68 A0000000   PUSH    0A0                                       ; /Arg4 = 000000A0
  00402C7C   .  68 60264000   PUSH    00402660                                  ; |Arg3 = 00402660
  00402C81   .  57            PUSH    EDI                                       ; |Arg2
  00402C82   .  50            PUSH    EAX                                       ; |Arg1
  00402C83   .  FF15 3C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaHresultChec>; \__vbaHresultCheckObj
  00402C89   >  8B4D D4       MOV     ECX, DWORD PTR SS:[EBP-2C]
  00402C8C   .  51            PUSH    ECX                                       ; /Arg2
  00402C8D   .  68 74264000   PUSH    00402674                                  ; |Arg1 = 00402674
  00402C92   .  FF15 6C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaStrCmp>]    ; \注册码是否为空
  00402C98   .  8B55 D8       MOV     EDX, DWORD PTR SS:[EBP-28]                ;<====ALT+F9后返回这里
  00402C9B   .  8BF8          MOV     EDI, EAX
  00402C9D   .  F7DF          NEG     EDI
  00402C9F   .  1BFF          SBB     EDI, EDI
  00402CA1   .  52            PUSH    EDX                                       ; /Arg2
  00402CA2   .  47            INC     EDI                                       ; |
  00402CA3   .  68 74264000   PUSH    00402674                                  ; |Arg1 = 00402674
  00402CA8   .  F7DF          NEG     EDI                                       ; |
  00402CAA   .  FF15 6C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaStrCmp>]    ; \注册名是否为空
  00402CB0   .  F7D8          NEG     EAX
  00402CB2   .  1BC0          SBB     EAX, EAX
  00402CB4   .  40            INC     EAX
  00402CB5   .  F7D8          NEG     EAX
  00402CB7   .  0BF8          OR      EDI, EAX                                  ;  两次比较结果相或
  00402CB9   .  8D45 D4       LEA     EAX, DWORD PTR SS:[EBP-2C]
  00402CBC   .  50            PUSH    EAX
  00402CBD   .  8D4D D8       LEA     ECX, DWORD PTR SS:[EBP-28]
  00402CC0   .  51            PUSH    ECX
  00402CC1   .  6A 02         PUSH    2
  00402CC3   .  FF15 B0104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeStrList>;  MSVBVM60.__vbaFreeStrList
  00402CC9   .  8D55 C8       LEA     EDX, DWORD PTR SS:[EBP-38]
  00402CCC   .  52            PUSH    EDX
  00402CCD   .  8D45 CC       LEA     EAX, DWORD PTR SS:[EBP-34]
  00402CD0   .  50            PUSH    EAX
  00402CD1   .  6A 02         PUSH    2
  00402CD3   .  FF15 2C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeObjList>;  MSVBVM60.__vbaFreeObjList
  00402CD9   .  83C4 18       ADD     ESP, 18
  00402CDC   .  66:3BFB       CMP     DI, BX
  00402CDF      0F84 91000000 JE      00402D76                                  ;  注册名和注册码都有输入就不跳
  00402CE5   .  B9 0A000000   MOV     ECX, 0A                                   ;  否则显示“忘记了什么”
  00402CEA   .  B8 04000280   MOV     EAX, 80020004
  00402CEF   .  894D 88       MOV     DWORD PTR SS:[EBP-78], ECX
  00402CF2   .  894D 98       MOV     DWORD PTR SS:[EBP-68], ECX
  00402CF5   .  BF 08000000   MOV     EDI, 8
  00402CFA   .  8D95 F8FEFFFF LEA     EDX, DWORD PTR SS:[EBP-108]
  00402D00   .  8D4D A8       LEA     ECX, DWORD PTR SS:[EBP-58]
  00402D03   .  8945 90       MOV     DWORD PTR SS:[EBP-70], EAX
  00402D06   .  8945 A0       MOV     DWORD PTR SS:[EBP-60], EAX
  00402D09   .  C785 00FFFFFF>MOV     DWORD PTR SS:[EBP-100], 004026A4
  00402D13   .  89BD F8FEFFFF MOV     DWORD PTR SS:[EBP-108], EDI
  00402D19   .  FF15 C4104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaVarDup>]    ;  MSVBVM60.__vbaVarDup
  00402D1F   .  8D95 08FFFFFF LEA     EDX, DWORD PTR SS:[EBP-F8]
  00402D25   .  8D4D B8       LEA     ECX, DWORD PTR SS:[EBP-48]
  00402D28   .  C785 10FFFFFF>MOV     DWORD PTR SS:[EBP-F0], 0040267C
  00402D32   .  89BD 08FFFFFF MOV     DWORD PTR SS:[EBP-F8], EDI
  00402D38   .  FF15 C4104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaVarDup>]    ;  MSVBVM60.__vbaVarDup
  00402D3E   .  8D4D 88       LEA     ECX, DWORD PTR SS:[EBP-78]
  00402D41   .  51            PUSH    ECX
  00402D42   .  8D55 98       LEA     EDX, DWORD PTR SS:[EBP-68]
  00402D45   .  52            PUSH    EDX
  00402D46   .  8D45 A8       LEA     EAX, DWORD PTR SS:[EBP-58]
  00402D49   .  50            PUSH    EAX
  00402D4A   .  6A 30         PUSH    30
  00402D4C   .  8D4D B8       LEA     ECX, DWORD PTR SS:[EBP-48]
  00402D4F   .  51            PUSH    ECX
  00402D50   .  FF15 4C104000 CALL    DWORD PTR DS:[<&MSVBVM60.#595>]           ;  显示“忘记了点什么”
  00402D56   .  8D55 88       LEA     EDX, DWORD PTR SS:[EBP-78]
  00402D59   .  52            PUSH    EDX
  00402D5A   .  8D45 98       LEA     EAX, DWORD PTR SS:[EBP-68]
  00402D5D   .  50            PUSH    EAX
  00402D5E   .  8D4D A8       LEA     ECX, DWORD PTR SS:[EBP-58]
  00402D61   .  51            PUSH    ECX
  00402D62   .  8D55 B8       LEA     EDX, DWORD PTR SS:[EBP-48]
  00402D65   .  52            PUSH    EDX
  00402D66   .  6A 04         PUSH    4
  00402D68   .  FF15 20104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeVarList>;  MSVBVM60.__vbaFreeVarList
  00402D6E   .  83C4 14       ADD     ESP, 14
  00402D71   .  E9 64060000   JMP     004033DA
  00402D76   >  8B06          MOV     EAX, DWORD PTR DS:[ESI]                   ;  都有输入就到这里
  00402D78   .  56            PUSH    ESI
  00402D79   .  FF90 00030000 CALL    DWORD PTR DS:[EAX+300]
  00402D7F   .  50            PUSH    EAX                                       ; /Arg2
  00402D80   .  8D4D CC       LEA     ECX, DWORD PTR SS:[EBP-34]                ; |
  00402D83   .  51            PUSH    ECX                                       ; |Arg1
  00402D84   .  FF15 48104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaObjSet>]    ; \__vbaObjSet
  00402D8A   .  8BF8          MOV     EDI, EAX
  00402D8C   .  8B17          MOV     EDX, DWORD PTR DS:[EDI]
  00402D8E   .  8D45 D8       LEA     EAX, DWORD PTR SS:[EBP-28]
  00402D91   .  50            PUSH    EAX
  00402D92   .  57            PUSH    EDI
  00402D93   .  FF92 A0000000 CALL    DWORD PTR DS:[EDX+A0]                     ;  获取注册码
  00402D99   .  DBE2          FCLEX
  00402D9B   .  3BC3          CMP     EAX, EBX
  00402D9D   .  7D 12         JGE     SHORT 00402DB1
  00402D9F   .  68 A0000000   PUSH    0A0                                       ; /Arg4 = 000000A0
  00402DA4   .  68 60264000   PUSH    00402660                                  ; |Arg3 = 00402660
  00402DA9   .  57            PUSH    EDI                                       ; |Arg2
  00402DAA   .  50            PUSH    EAX                                       ; |Arg1
  00402DAB   .  FF15 3C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaHresultChec>; \__vbaHresultCheckObj
  00402DB1   >  8B4D D8       MOV     ECX, DWORD PTR SS:[EBP-28]
  00402DB4   .  51            PUSH    ECX                                       ; /Arg2
  00402DB5   .  68 B4264000   PUSH    004026B4                                  ; |Arg1 = 004026B4
  00402DBA   .  FF15 6C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaStrCmp>]    ; \注册码与[004026B4]处值进行比较
  00402DC0   .  8BF8          MOV     EDI, EAX
  00402DC2   .  F7DF          NEG     EDI
  00402DC4   .  1BFF          SBB     EDI, EDI
  00402DC6   .  47            INC     EDI
  00402DC7   .  8D4D D8       LEA     ECX, DWORD PTR SS:[EBP-28]
  00402DCA   .  F7DF          NEG     EDI
  00402DCC   .  FF15 DC104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeStr>]   ;  MSVBVM60.__vbaFreeStr
  00402DD2   .  8D4D CC       LEA     ECX, DWORD PTR SS:[EBP-34]
  00402DD5   .  FF15 E0104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeObj>]   ;  MSVBVM60.__vbaFreeObj
  00402DDB   .  66:3BFB       CMP     DI, BX
  00402DDE      0F84 4F010000 JE      00402F33                                  ;  不等就跳
  00402DE4   .  B9 0A000000   MOV     ECX, 0A                                   ;  相等就判断为名字太长
  00402DE9   .  B8 04000280   MOV     EAX, 80020004
  00402DEE   .  898D 58FFFFFF MOV     DWORD PTR SS:[EBP-A8], ECX
  00402DF4   .  898D 68FFFFFF MOV     DWORD PTR SS:[EBP-98], ECX
  00402DFA   .  BF 08000000   MOV     EDI, 8
  00402DFF   .  8D95 D8FEFFFF LEA     EDX, DWORD PTR SS:[EBP-128]
  00402E05   .  8D8D 78FFFFFF LEA     ECX, DWORD PTR SS:[EBP-88]
  00402E0B   .  8985 60FFFFFF MOV     DWORD PTR SS:[EBP-A0], EAX
  00402E11   .  8985 70FFFFFF MOV     DWORD PTR SS:[EBP-90], EAX
  00402E17   .  C785 E0FEFFFF>MOV     DWORD PTR SS:[EBP-120], 004026A4
  00402E21   .  89BD D8FEFFFF MOV     DWORD PTR SS:[EBP-128], EDI
  00402E27   .  FF15 C4104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaVarDup>]    ;  MSVBVM60.__vbaVarDup
  00402E2D   .  8D95 58FFFFFF LEA     EDX, DWORD PTR SS:[EBP-A8]
  00402E33   .  52            PUSH    EDX
  00402E34   .  8D85 68FFFFFF LEA     EAX, DWORD PTR SS:[EBP-98]
  00402E3A   .  50            PUSH    EAX
  00402E3B   .  8D8D 78FFFFFF LEA     ECX, DWORD PTR SS:[EBP-88]
  00402E41   .  51            PUSH    ECX
  00402E42   .  6A 30         PUSH    30
  00402E44   .  8D95 08FFFFFF LEA     EDX, DWORD PTR SS:[EBP-F8]
  00402E4A   .  52            PUSH    EDX
  00402E4B   .  8D45 DC       LEA     EAX, DWORD PTR SS:[EBP-24]
  00402E4E   .  50            PUSH    EAX
  00402E4F   .  8D4D B8       LEA     ECX, DWORD PTR SS:[EBP-48]
  00402E52   .  89BD 08FFFFFF MOV     DWORD PTR SS:[EBP-F8], EDI
  00402E58   .  89BD F8FEFFFF MOV     DWORD PTR SS:[EBP-108], EDI
  00402E5E   .  89BD E8FEFFFF MOV     DWORD PTR SS:[EBP-118], EDI
  00402E64   .  8B3D C0104000 MOV     EDI, DWORD PTR DS:[<&MSVBVM60.__vbaVarAdd>;  MSVBVM60.__vbaVarAdd
  00402E6A   .  51            PUSH    ECX
  00402E6B   .  C785 10FFFFFF>MOV     DWORD PTR SS:[EBP-F0], 004026D4
  00402E75   .  C785 00FFFFFF>MOV     DWORD PTR SS:[EBP-100], 004026EC
  00402E7F   .  C785 F0FEFFFF>MOV     DWORD PTR SS:[EBP-110], 00402718
  00402E89   .  FFD7          CALL    EDI                                       ;  <&MSVBVM60.__vbaVarAdd>
  00402E8B   .  50            PUSH    EAX
  00402E8C   .  8D95 F8FEFFFF LEA     EDX, DWORD PTR SS:[EBP-108]
  00402E92   .  52            PUSH    EDX
  00402E93   .  8D45 A8       LEA     EAX, DWORD PTR SS:[EBP-58]
  00402E96   .  50            PUSH    EAX
  00402E97   .  FFD7          CALL    EDI
  00402E99   .  50            PUSH    EAX
  00402E9A   .  8D4D DC       LEA     ECX, DWORD PTR SS:[EBP-24]
  00402E9D   .  51            PUSH    ECX
  00402E9E   .  8D55 98       LEA     EDX, DWORD PTR SS:[EBP-68]
  00402EA1   .  52            PUSH    EDX
  00402EA2   .  FFD7          CALL    EDI
  00402EA4   .  50            PUSH    EAX
  00402EA5   .  8D85 E8FEFFFF LEA     EAX, DWORD PTR SS:[EBP-118]
  00402EAB   .  50            PUSH    EAX
  00402EAC   .  8D4D 88       LEA     ECX, DWORD PTR SS:[EBP-78]
  00402EAF   .  51            PUSH    ECX
  00402EB0   .  FFD7          CALL    EDI
  00402EB2   .  50            PUSH    EAX
  00402EB3   .  FF15 4C104000 CALL    DWORD PTR DS:[<&MSVBVM60.#595>]           ; 显示“输入的注册名太长了”
  00402EB9   .  8D95 58FFFFFF LEA     EDX, DWORD PTR SS:[EBP-A8]
  00402EBF   .  52            PUSH    EDX
  00402EC0   .  8D85 68FFFFFF LEA     EAX, DWORD PTR SS:[EBP-98]
  00402EC6   .  50            PUSH    EAX
  00402EC7   .  8D8D 78FFFFFF LEA     ECX, DWORD PTR SS:[EBP-88]
  00402ECD   .  51            PUSH    ECX
  00402ECE   .  8D55 88       LEA     EDX, DWORD PTR SS:[EBP-78]
  00402ED1   .  52            PUSH    EDX
  00402ED2   .  8D45 98       LEA     EAX, DWORD PTR SS:[EBP-68]
  00402ED5   .  50            PUSH    EAX
  00402ED6   .  8D4D A8       LEA     ECX, DWORD PTR SS:[EBP-58]
  00402ED9   .  51            PUSH    ECX
  00402EDA   .  8D55 B8       LEA     EDX, DWORD PTR SS:[EBP-48]
  00402EDD   .  52            PUSH    EDX
  00402EDE   .  6A 07         PUSH    7
  00402EE0   .  FF15 20104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeVarList>;  MSVBVM60.__vbaFreeVarList
  00402EE6   .  8B06          MOV     EAX, DWORD PTR DS:[ESI]
  00402EE8   .  83C4 20       ADD     ESP, 20
  00402EEB   .  56            PUSH    ESI
  00402EEC   .  FF90 08030000 CALL    DWORD PTR DS:[EAX+308]
  00402EF2   .  50            PUSH    EAX                                       ; /Arg2
  00402EF3   .  8D4D CC       LEA     ECX, DWORD PTR SS:[EBP-34]                ; |
  00402EF6   .  51            PUSH    ECX                                       ; |Arg1
  00402EF7   .  FF15 48104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaObjSet>]    ; \__vbaObjSet
  00402EFD   .  8BF8          MOV     EDI, EAX
  00402EFF   .  8B17          MOV     EDX, DWORD PTR DS:[EDI]
  00402F01   .  68 74264000   PUSH    00402674
  00402F06   .  57            PUSH    EDI
  00402F07   .  FF92 A4000000 CALL    DWORD PTR DS:[EDX+A4]
  00402F0D   .  DBE2          FCLEX
  00402F0F   .  3BC3          CMP     EAX, EBX
  00402F11   .  7D 12         JGE     SHORT 00402F25
  00402F13   .  68 A4000000   PUSH    0A4                                       ; /Arg4 = 000000A4
  00402F18   .  68 60264000   PUSH    00402660                                  ; |Arg3 = 00402660
  00402F1D   .  57            PUSH    EDI                                       ; |Arg2
  00402F1E   .  50            PUSH    EAX                                       ; |Arg1
  00402F1F   .  FF15 3C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaHresultChec>; \__vbaHresultCheckObj
  00402F25   >  8D4D CC       LEA     ECX, DWORD PTR SS:[EBP-34]
  00402F28   .  FF15 E0104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeObj>]   ;  MSVBVM60.__vbaFreeObj
  00402F2E   .  E9 A7040000   JMP     004033DA
  00402F33   >  8B06          MOV     EAX, DWORD PTR DS:[ESI]
  00402F35   .  56            PUSH    ESI
  00402F36   .  FF90 08030000 CALL    DWORD PTR DS:[EAX+308]
  00402F3C   .  50            PUSH    EAX                                       ; /Arg2
  00402F3D   .  8D4D CC       LEA     ECX, DWORD PTR SS:[EBP-34]                ; |
  00402F40   .  51            PUSH    ECX                                       ; |Arg1
  00402F41   .  FF15 48104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaObjSet>]    ; \__vbaObjSet
  00402F47   .  8BF8          MOV     EDI, EAX
  00402F49   .  8B17          MOV     EDX, DWORD PTR DS:[EDI]
  00402F4B   .  8D45 D8       LEA     EAX, DWORD PTR SS:[EBP-28]
  00402F4E   .  50            PUSH    EAX
  00402F4F   .  57            PUSH    EDI
  00402F50   .  FF92 A0000000 CALL    DWORD PTR DS:[EDX+A0]
  00402F56   .  DBE2          FCLEX
  00402F58   .  3BC3          CMP     EAX, EBX
  00402F5A   .  7D 12         JGE     SHORT 00402F6E
  00402F5C   .  68 A0000000   PUSH    0A0                                       ; /Arg4 = 000000A0
  00402F61   .  68 60264000   PUSH    00402660                                  ; |Arg3 = 00402660
  00402F66   .  57            PUSH    EDI                                       ; |Arg2
  00402F67   .  50            PUSH    EAX                                       ; |Arg1
  00402F68   .  FF15 3C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaHresultChec>; \__vbaHresultCheckObj
  00402F6E   >  8B0E          MOV     ECX, DWORD PTR DS:[ESI]
  00402F70   .  56            PUSH    ESI
  00402F71   .  FF91 00030000 CALL    DWORD PTR DS:[ECX+300]
  00402F77   .  50            PUSH    EAX                                       ; /Arg2
  00402F78   .  8D55 C8       LEA     EDX, DWORD PTR SS:[EBP-38]                ; |
  00402F7B   .  52            PUSH    EDX                                       ; |Arg1
  00402F7C   .  FF15 48104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaObjSet>]    ; \__vbaObjSet
  00402F82   .  8D4D D4       LEA     ECX, DWORD PTR SS:[EBP-2C]
  00402F85   .  8BF8          MOV     EDI, EAX
  00402F87   .  8B07          MOV     EAX, DWORD PTR DS:[EDI]
  00402F89   .  51            PUSH    ECX
  00402F8A   .  57            PUSH    EDI
  00402F8B   .  FF90 A0000000 CALL    DWORD PTR DS:[EAX+A0]
  00402F91   .  DBE2          FCLEX
  00402F93   .  3BC3          CMP     EAX, EBX
  00402F95   .  7D 12         JGE     SHORT 00402FA9
  00402F97   .  68 A0000000   PUSH    0A0                                       ; /Arg4 = 000000A0
  00402F9C   .  68 60264000   PUSH    00402660                                  ; |Arg3 = 00402660
  00402FA1   .  57            PUSH    EDI                                       ; |Arg2
  00402FA2   .  50            PUSH    EAX                                       ; |Arg1
  00402FA3   .  FF15 3C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaHresultChec>; \__vbaHresultCheckObj
  00402FA9   >  8B55 D4       MOV     EDX, DWORD PTR SS:[EBP-2C]
  00402FAC   .  52            PUSH    EDX                                       ; /Arg2
  00402FAD   .  68 48274000   PUSH    00402748                                  ; |Arg1 = 00402748
  00402FB2   .  FF15 6C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaStrCmp>]    ; \注册码与[00402748]处内容比较
  00402FB8   .  8BF8          MOV     EDI, EAX
  00402FBA   .  8B45 D8       MOV     EAX, DWORD PTR SS:[EBP-28]
  00402FBD   .  F7DF          NEG     EDI
  00402FBF   .  1BFF          SBB     EDI, EDI
  00402FC1   .  50            PUSH    EAX                                       ; /Arg2
  00402FC2   .  47            INC     EDI                                       ; |
  00402FC3   .  68 38274000   PUSH    00402738                                  ; |Arg1 = 00402738
  00402FC8   .  F7DF          NEG     EDI                                       ; |
  00402FCA   .  FF15 6C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaStrCmp>]    ; \注册名与[00402738]处内容比较
  00402FD0   .  F7D8          NEG     EAX
  00402FD2   .  1BC0          SBB     EAX, EAX
  00402FD4   .  8D4D D4       LEA     ECX, DWORD PTR SS:[EBP-2C]
  00402FD7   .  51            PUSH    ECX
  00402FD8   .  8D55 D8       LEA     EDX, DWORD PTR SS:[EBP-28]
  00402FDB   .  40            INC     EAX
  00402FDC   .  52            PUSH    EDX
  00402FDD   .  F7D8          NEG     EAX
  00402FDF   .  6A 02         PUSH    2
  00402FE1   .  23F8          AND     EDI, EAX                                  ;  两次比较结果相与
  00402FE3   .  FF15 B0104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeStrList>;  MSVBVM60.__vbaFreeStrList
  00402FE9   .  8D45 C8       LEA     EAX, DWORD PTR SS:[EBP-38]
  00402FEC   .  50            PUSH    EAX
  00402FED   .  8D4D CC       LEA     ECX, DWORD PTR SS:[EBP-34]
  00402FF0   .  51            PUSH    ECX
  00402FF1   .  6A 02         PUSH    2
  00402FF3   .  FF15 2C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeObjList>;  MSVBVM60.__vbaFreeObjList
  00402FF9   .  83C4 18       ADD     ESP, 18
  00402FFC   .  66:3BFB       CMP     DI, BX
  00402FFF      0F84 91000000 JE      00403096                                  ;  有一处不等就跳
  00403005   .  B9 0A000000   MOV     ECX, 0A                                   ;  两处都相等就不跳(试用注册信息)
  0040300A   .  B8 04000280   MOV     EAX, 80020004
  0040300F   .  894D 88       MOV     DWORD PTR SS:[EBP-78], ECX
  00403012   .  894D 98       MOV     DWORD PTR SS:[EBP-68], ECX
  00403015   .  BF 08000000   MOV     EDI, 8
  0040301A   .  8D95 F8FEFFFF LEA     EDX, DWORD PTR SS:[EBP-108]
  00403020   .  8D4D A8       LEA     ECX, DWORD PTR SS:[EBP-58]
  00403023   .  8945 90       MOV     DWORD PTR SS:[EBP-70], EAX
  00403026   .  8945 A0       MOV     DWORD PTR SS:[EBP-60], EAX
  00403029   .  C785 00FFFFFF>MOV     DWORD PTR SS:[EBP-100], 00402788
  00403033   .  89BD F8FEFFFF MOV     DWORD PTR SS:[EBP-108], EDI
  00403039   .  FF15 C4104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaVarDup>]    ;  MSVBVM60.__vbaVarDup
  0040303F   .  8D95 08FFFFFF LEA     EDX, DWORD PTR SS:[EBP-F8]
  00403045   .  8D4D B8       LEA     ECX, DWORD PTR SS:[EBP-48]
  00403048   .  C785 10FFFFFF>MOV     DWORD PTR SS:[EBP-F0], 00402758
  00403052   .  89BD 08FFFFFF MOV     DWORD PTR SS:[EBP-F8], EDI
  00403058   .  FF15 C4104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaVarDup>]    ;  MSVBVM60.__vbaVarDup
  0040305E   .  8D55 88       LEA     EDX, DWORD PTR SS:[EBP-78]
  00403061   .  52            PUSH    EDX
  00403062   .  8D45 98       LEA     EAX, DWORD PTR SS:[EBP-68]
  00403065   .  50            PUSH    EAX
  00403066   .  8D4D A8       LEA     ECX, DWORD PTR SS:[EBP-58]
  00403069   .  51            PUSH    ECX
  0040306A   .  6A 40         PUSH    40
  0040306C   .  8D55 B8       LEA     EDX, DWORD PTR SS:[EBP-48]
  0040306F   .  52            PUSH    EDX
  00403070   .  FF15 4C104000 CALL    DWORD PTR DS:[<&MSVBVM60.#595>]           ;  显示试用注册信息成功
  00403076   .  8D45 88       LEA     EAX, DWORD PTR SS:[EBP-78]
  00403079   .  50            PUSH    EAX
  0040307A   .  8D4D 98       LEA     ECX, DWORD PTR SS:[EBP-68]
  0040307D   .  51            PUSH    ECX
  0040307E   .  8D55 A8       LEA     EDX, DWORD PTR SS:[EBP-58]
  00403081   .  52            PUSH    EDX
  00403082   .  8D45 B8       LEA     EAX, DWORD PTR SS:[EBP-48]
  00403085   .  50            PUSH    EAX
  00403086   .  6A 04         PUSH    4
  00403088   .  FF15 20104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeVarList>;  MSVBVM60.__vbaFreeVarList
  0040308E   .  83C4 14       ADD     ESP, 14
  00403091   .  E9 44030000   JMP     004033DA
  00403096   >  8B0E          MOV     ECX, DWORD PTR DS:[ESI]
  00403098   .  56            PUSH    ESI
  00403099   .  FF91 00030000 CALL    DWORD PTR DS:[ECX+300]
  0040309F   .  50            PUSH    EAX                                       ; /Arg2
  004030A0   .  8D55 CC       LEA     EDX, DWORD PTR SS:[EBP-34]                ; |
  004030A3   .  52            PUSH    EDX                                       ; |Arg1
  004030A4   .  FF15 48104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaObjSet>]    ; \__vbaObjSet
  004030AA   .  8D4D D8       LEA     ECX, DWORD PTR SS:[EBP-28]
  004030AD   .  8BF8          MOV     EDI, EAX
  004030AF   .  8B07          MOV     EAX, DWORD PTR DS:[EDI]
  004030B1   .  51            PUSH    ECX
  004030B2   .  57            PUSH    EDI
  004030B3   .  FF90 A0000000 CALL    DWORD PTR DS:[EAX+A0]                     ;  获取输入的注册码
  004030B9   .  DBE2          FCLEX
  004030BB   .  3BC3          CMP     EAX, EBX
  004030BD   .  7D 12         JGE     SHORT 004030D1
  004030BF   .  68 A0000000   PUSH    0A0                                       ; /Arg4 = 000000A0
  004030C4   .  68 60264000   PUSH    00402660                                  ; |Arg3 = 00402660
  004030C9   .  57            PUSH    EDI                                       ; |Arg2
  004030CA   .  50            PUSH    EAX                                       ; |Arg1
  004030CB   .  FF15 3C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaHresultChec>; \__vbaHresultCheckObj
  004030D1   >  8B55 D8       MOV     EDX, DWORD PTR SS:[EBP-28]                ;  输入的注册码(假码)
  004030D4   .  8B86 94000000 MOV     EAX, DWORD PTR DS:[ESI+94]                ;  计算出的注册码(真码)
  004030DA   .  52            PUSH    EDX                                       ; /Arg2
  004030DB   .  50            PUSH    EAX                                       ; |这里d eax 可看见真正的注册码
  004030DC   .  FF15 6C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaStrCmp>]    ; \真假码比较
  004030E2   .  8BF8          MOV     EDI, EAX
  004030E4   .  F7DF          NEG     EDI
  004030E6   .  1BFF          SBB     EDI, EDI
  004030E8   .  47            INC     EDI
  004030E9   .  8D4D D8       LEA     ECX, DWORD PTR SS:[EBP-28]
  004030EC   .  F7DF          NEG     EDI
  004030EE   .  FF15 DC104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeStr>]   ;  MSVBVM60.__vbaFreeStr
  004030F4   .  8D4D CC       LEA     ECX, DWORD PTR SS:[EBP-34]
  004030F7   .  FF15 E0104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeObj>]   ;  MSVBVM60.__vbaFreeObj
  004030FD   .  66:3BFB       CMP     DI, BX
  00403100      0F84 10010000 JE      00403216                                  ;  关键跳,不同就跳向出错(爆破点)
  00403106   .  8B0E          MOV     ECX, DWORD PTR DS:[ESI]
  00403108   .  56            PUSH    ESI
  00403109   .  FF91 08030000 CALL    DWORD PTR DS:[ECX+308]
  0040310F   .  50            PUSH    EAX                                       ; /Arg2
  00403110   .  8D55 CC       LEA     EDX, DWORD PTR SS:[EBP-34]                ; |
  00403113   .  52            PUSH    EDX                                       ; |Arg1
  00403114   .  FF15 48104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaObjSet>]    ; \__vbaObjSet
  0040311A   .  8D4D D8       LEA     ECX, DWORD PTR SS:[EBP-28]
  0040311D   .  8BF8          MOV     EDI, EAX
  0040311F   .  8B07          MOV     EAX, DWORD PTR DS:[EDI]
  00403121   .  51            PUSH    ECX
  00403122   .  57            PUSH    EDI
  00403123   .  FF90 A0000000 CALL    DWORD PTR DS:[EAX+A0]
  00403129   .  DBE2          FCLEX
  0040312B   .  3BC3          CMP     EAX, EBX
  0040312D   .  7D 12         JGE     SHORT 00403141
  0040312F   .  68 A0000000   PUSH    0A0                                       ; /Arg4 = 000000A0
  00403134   .  68 60264000   PUSH    00402660                                  ; |Arg3 = 00402660
  00403139   .  57            PUSH    EDI                                       ; |Arg2
  0040313A   .  50            PUSH    EAX                                       ; |Arg1
  0040313B   .  FF15 3C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaHresultChec>; \__vbaHresultCheckObj
  00403141   >  B9 0A000000   MOV     ECX, 0A
  00403146   .  B8 04000280   MOV     EAX, 80020004
  0040314B   .  894D 88       MOV     DWORD PTR SS:[EBP-78], ECX
  0040314E   .  894D 98       MOV     DWORD PTR SS:[EBP-68], ECX
  00403151   .  BF 08000000   MOV     EDI, 8
  00403156   .  8D95 08FFFFFF LEA     EDX, DWORD PTR SS:[EBP-F8]
  0040315C   .  8D4D A8       LEA     ECX, DWORD PTR SS:[EBP-58]
  0040315F   .  8945 90       MOV     DWORD PTR SS:[EBP-70], EAX
  00403162   .  8945 A0       MOV     DWORD PTR SS:[EBP-60], EAX
  00403165   .  C785 10FFFFFF>MOV     DWORD PTR SS:[EBP-F0], 004027DC
  0040316F   .  89BD 08FFFFFF MOV     DWORD PTR SS:[EBP-F8], EDI
  00403175   .  FF15 C4104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaVarDup>]    ;  MSVBVM60.__vbaVarDup
  0040317B   .  8B55 D8       MOV     EDX, DWORD PTR SS:[EBP-28]
  0040317E   .  68 A0274000   PUSH    004027A0
  00403183   .  52            PUSH    EDX
  00403184   .  FF15 38104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaStrCat>]    ;  MSVBVM60.__vbaStrCat
  0040318A   .  8BD0          MOV     EDX, EAX
  0040318C   .  8D4D D4       LEA     ECX, DWORD PTR SS:[EBP-2C]
  0040318F   .  FF15 CC104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaStrMove>]   ;  MSVBVM60.__vbaStrMove
  00403195   .  50            PUSH    EAX
  00403196   .  68 A8274000   PUSH    004027A8
  0040319B   .  FF15 38104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaStrCat>]    ;  MSVBVM60.__vbaStrCat
  004031A1   .  8BD0          MOV     EDX, EAX
  004031A3   .  8D4D D0       LEA     ECX, DWORD PTR SS:[EBP-30]
  004031A6   .  FF15 CC104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaStrMove>]   ;  MSVBVM60.__vbaStrMove
  004031AC   .  50            PUSH    EAX
  004031AD   .  68 B4274000   PUSH    004027B4
  004031B2   .  FF15 38104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaStrCat>]    ;  MSVBVM60.__vbaStrCat
  004031B8   .  8945 C0       MOV     DWORD PTR SS:[EBP-40], EAX
  004031BB   .  8D45 88       LEA     EAX, DWORD PTR SS:[EBP-78]
  004031BE   .  50            PUSH    EAX
  004031BF   .  8D4D 98       LEA     ECX, DWORD PTR SS:[EBP-68]
  004031C2   .  51            PUSH    ECX
  004031C3   .  8D55 A8       LEA     EDX, DWORD PTR SS:[EBP-58]
  004031C6   .  52            PUSH    EDX
  004031C7   .  6A 40         PUSH    40
  004031C9   .  8D45 B8       LEA     EAX, DWORD PTR SS:[EBP-48]
  004031CC   .  50            PUSH    EAX
  004031CD   .  897D B8       MOV     DWORD PTR SS:[EBP-48], EDI
  004031D0   .  FF15 4C104000 CALL    DWORD PTR DS:[<&MSVBVM60.#595>]           ;  显示注册成功
  004031D6   .  8D4D D0       LEA     ECX, DWORD PTR SS:[EBP-30]
  004031D9   .  51            PUSH    ECX
  004031DA   .  8D55 D4       LEA     EDX, DWORD PTR SS:[EBP-2C]
  004031DD   .  52            PUSH    EDX
  004031DE   .  8D45 D8       LEA     EAX, DWORD PTR SS:[EBP-28]
  004031E1   .  50            PUSH    EAX
  004031E2   .  6A 03         PUSH    3
  004031E4   .  FF15 B0104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeStrList>;  MSVBVM60.__vbaFreeStrList
  004031EA   .  83C4 10       ADD     ESP, 10
  004031ED   .  8D4D CC       LEA     ECX, DWORD PTR SS:[EBP-34]
  004031F0   .  FF15 E0104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeObj>]   ;  MSVBVM60.__vbaFreeObj
  004031F6   .  8D4D 88       LEA     ECX, DWORD PTR SS:[EBP-78]
  004031F9   .  51            PUSH    ECX
  004031FA   .  8D55 98       LEA     EDX, DWORD PTR SS:[EBP-68]
  004031FD   .  52            PUSH    EDX
  004031FE   .  8D45 A8       LEA     EAX, DWORD PTR SS:[EBP-58]
  00403201   .  50            PUSH    EAX
  00403202   .  8D4D B8       LEA     ECX, DWORD PTR SS:[EBP-48]
  00403205   .  51            PUSH    ECX
  00403206   .  6A 04         PUSH    4
  00403208   .  FF15 20104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeVarList>;  MSVBVM60.__vbaFreeVarList
  0040320E   .  83C4 14       ADD     ESP, 14
  00403211   .  E9 C4010000   JMP     004033DA
  00403216   >  8B16          MOV     EDX, DWORD PTR DS:[ESI]
  00403218   .  56            PUSH    ESI
  00403219   .  FF92 08030000 CALL    DWORD PTR DS:[EDX+308]
  0040321F   .  50            PUSH    EAX                                       ; /Arg2
  00403220   .  8D45 CC       LEA     EAX, DWORD PTR SS:[EBP-34]                ; |
  00403223   .  50            PUSH    EAX                                       ; |Arg1
  00403224   .  FF15 48104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaObjSet>]    ; \__vbaObjSet
  0040322A   .  8D55 D8       LEA     EDX, DWORD PTR SS:[EBP-28]
  0040322D   .  8BF8          MOV     EDI, EAX
  0040322F   .  8B0F          MOV     ECX, DWORD PTR DS:[EDI]
  00403231   .  52            PUSH    EDX
  00403232   .  57            PUSH    EDI
  00403233   .  FF91 A0000000 CALL    DWORD PTR DS:[ECX+A0]
  00403239   .  DBE2          FCLEX
  0040323B   .  3BC3          CMP     EAX, EBX
  0040323D   .  7D 12         JGE     SHORT 00403251
  0040323F   .  68 A0000000   PUSH    0A0                                       ; /Arg4 = 000000A0
  00403244   .  68 60264000   PUSH    00402660                                  ; |Arg3 = 00402660
  00403249   .  57            PUSH    EDI                                       ; |Arg2
  0040324A   .  50            PUSH    EAX                                       ; |Arg1
  0040324B   .  FF15 3C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaHresultChec>; \__vbaHresultCheckObj
  00403251   >  B9 0A000000   MOV     ECX, 0A
  00403256   .  B8 04000280   MOV     EAX, 80020004
  0040325B   .  898D 18FFFFFF MOV     DWORD PTR SS:[EBP-E8], ECX
  00403261   .  898D 28FFFFFF MOV     DWORD PTR SS:[EBP-D8], ECX
  00403267   .  BF 08000000   MOV     EDI, 8
  0040326C   .  8D95 B8FEFFFF LEA     EDX, DWORD PTR SS:[EBP-148]
  00403272   .  8D8D 38FFFFFF LEA     ECX, DWORD PTR SS:[EBP-C8]
  00403278   .  8985 20FFFFFF MOV     DWORD PTR SS:[EBP-E0], EAX
  0040327E   .  8985 30FFFFFF MOV     DWORD PTR SS:[EBP-D0], EAX
  00403284   .  C785 C0FEFFFF>MOV     DWORD PTR SS:[EBP-140], 00402844
  0040328E   .  89BD B8FEFFFF MOV     DWORD PTR SS:[EBP-148], EDI
  00403294   .  FF15 C4104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaVarDup>]    ;  MSVBVM60.__vbaVarDup
  0040329A   .  8B45 D8       MOV     EAX, DWORD PTR SS:[EBP-28]
  0040329D   .  8945 A0       MOV     DWORD PTR SS:[EBP-60], EAX
  004032A0   .  8D85 18FFFFFF LEA     EAX, DWORD PTR SS:[EBP-E8]
  004032A6   .  50            PUSH    EAX
  004032A7   .  8D8D 28FFFFFF LEA     ECX, DWORD PTR SS:[EBP-D8]
  004032AD   .  51            PUSH    ECX
  004032AE   .  8D95 38FFFFFF LEA     EDX, DWORD PTR SS:[EBP-C8]
  004032B4   .  52            PUSH    EDX
  004032B5   .  6A 10         PUSH    10
  004032B7   .  8D85 08FFFFFF LEA     EAX, DWORD PTR SS:[EBP-F8]
  004032BD   .  50            PUSH    EAX
  004032BE   .  8D4D DC       LEA     ECX, DWORD PTR SS:[EBP-24]
  004032C1   .  51            PUSH    ECX
  004032C2   .  8D55 B8       LEA     EDX, DWORD PTR SS:[EBP-48]
  004032C5   .  89BD 08FFFFFF MOV     DWORD PTR SS:[EBP-F8], EDI
  004032CB   .  89BD F8FEFFFF MOV     DWORD PTR SS:[EBP-108], EDI
  004032D1   .  897D 98       MOV     DWORD PTR SS:[EBP-68], EDI
  004032D4   .  89BD E8FEFFFF MOV     DWORD PTR SS:[EBP-118], EDI
  004032DA   .  89BD D8FEFFFF MOV     DWORD PTR SS:[EBP-128], EDI
  004032E0   .  89BD C8FEFFFF MOV     DWORD PTR SS:[EBP-138], EDI
  004032E6   .  8B3D C0104000 MOV     EDI, DWORD PTR DS:[<&MSVBVM60.__vbaVarAdd>;  MSVBVM60.__vbaVarAdd
  004032EC   .  52            PUSH    EDX
  004032ED   .  C785 10FFFFFF>MOV     DWORD PTR SS:[EBP-F0], 004027E8
  004032F7   .  C785 00FFFFFF>MOV     DWORD PTR SS:[EBP-100], 004027A0
  00403301   .  895D D8       MOV     DWORD PTR SS:[EBP-28], EBX
  00403304   .  C785 F0FEFFFF>MOV     DWORD PTR SS:[EBP-110], 004027A8
  0040330E   .  C785 E0FEFFFF>MOV     DWORD PTR SS:[EBP-120], 00402804          ;  ASCII "筻ZPC"
  00403318   .  C785 D0FEFFFF>MOV     DWORD PTR SS:[EBP-130], 00402830
  00403322   .  FFD7          CALL    EDI                                       ;  <&MSVBVM60.__vbaVarAdd>
  00403324   .  50            PUSH    EAX
  00403325   .  8D85 F8FEFFFF LEA     EAX, DWORD PTR SS:[EBP-108]
  0040332B   .  50            PUSH    EAX
  0040332C   .  8D4D A8       LEA     ECX, DWORD PTR SS:[EBP-58]
  0040332F   .  51            PUSH    ECX
  00403330   .  FFD7          CALL    EDI
  00403332   .  50            PUSH    EAX
  00403333   .  8D55 98       LEA     EDX, DWORD PTR SS:[EBP-68]
  00403336   .  52            PUSH    EDX
  00403337   .  8D45 88       LEA     EAX, DWORD PTR SS:[EBP-78]
  0040333A   .  50            PUSH    EAX
  0040333B   .  FFD7          CALL    EDI
  0040333D   .  50            PUSH    EAX
  0040333E   .  8D8D E8FEFFFF LEA     ECX, DWORD PTR SS:[EBP-118]
  00403344   .  51            PUSH    ECX
  00403345   .  8D95 78FFFFFF LEA     EDX, DWORD PTR SS:[EBP-88]
  0040334B   .  52            PUSH    EDX
  0040334C   .  FFD7          CALL    EDI
  0040334E   .  50            PUSH    EAX
  0040334F   .  8D85 D8FEFFFF LEA     EAX, DWORD PTR SS:[EBP-128]
  00403355   .  50            PUSH    EAX
  00403356   .  8D8D 68FFFFFF LEA     ECX, DWORD PTR SS:[EBP-98]
  0040335C   .  51            PUSH    ECX
  0040335D   .  FFD7          CALL    EDI
  0040335F   .  50            PUSH    EAX
  00403360   .  8D55 DC       LEA     EDX, DWORD PTR SS:[EBP-24]
  00403363   .  52            PUSH    EDX
  00403364   .  8D85 58FFFFFF LEA     EAX, DWORD PTR SS:[EBP-A8]
  0040336A   .  50            PUSH    EAX
  0040336B   .  FFD7          CALL    EDI
  0040336D   .  50            PUSH    EAX
  0040336E   .  8D8D C8FEFFFF LEA     ECX, DWORD PTR SS:[EBP-138]
  00403374   .  51            PUSH    ECX
  00403375   .  8D95 48FFFFFF LEA     EDX, DWORD PTR SS:[EBP-B8]
  0040337B   .  52            PUSH    EDX
  0040337C   .  FFD7          CALL    EDI
  0040337E   .  50            PUSH    EAX
  0040337F   .  FF15 4C104000 CALL    DWORD PTR DS:[<&MSVBVM60.#595>]           ;  显示输入的注册码不对
  00403385   .  8D4D CC       LEA     ECX, DWORD PTR SS:[EBP-34]
  ......
  3.断在了00402BEE处,我们F7进入。进入后是一个JMP 00403490,单步过去,来到这里:
  ......
  00403490   > \55            PUSH    EBP                                       ;  <====JMP到这里
  00403491   .  8BEC          MOV     EBP, ESP
  00403493   .  83EC 0C       SUB     ESP, 0C
  ......
  00403561   .  FF92 A0000000 CALL    DWORD PTR DS:[EDX+A0]                     ;  取得注册名
  00403567   .  DBE2          FCLEX
  00403569   .  3BC3          CMP     EAX, EBX
  0040356B   .  7D 12         JGE     SHORT 0040357F
  0040356D   .  68 A0000000   PUSH    0A0                                       ; /Arg4 = 000000A0
  00403572   .  68 60264000   PUSH    00402660                                  ; |Arg3 = 00402660
  00403577   .  57            PUSH    EDI                                       ; |Arg2
  00403578   .  50            PUSH    EAX                                       ; |Arg1
  00403579   .  FF15 3C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaHresultChec>; \__vbaHresultCheckObj
  0040357F   >  8B4D D8       MOV     ECX, DWORD PTR SS:[EBP-28]
  00403582   .  51            PUSH    ECX                                       ; /Arg1
  00403583   .  FF15 18104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaLenBstr>]   ; \取得注册名长度
  00403589   .  8D4E 70       LEA     ECX, DWORD PTR DS:[ESI+70]
  0040358C   .  8D55 A0       LEA     EDX, DWORD PTR SS:[EBP-60]
  0040358F   .  8945 A8       MOV     DWORD PTR SS:[EBP-58], EAX
  00403592   .  C745 A0 03000>MOV     DWORD PTR SS:[EBP-60], 3
  00403599   .  FF15 0C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaVarMove>]   ;  MSVBVM60.__vbaVarMove
  0040359F   .  8D4D D8       LEA     ECX, DWORD PTR SS:[EBP-28]
  004035A2   .  FF15 DC104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeStr>]   ;  MSVBVM60.__vbaFreeStr
  004035A8   .  8D4D D0       LEA     ECX, DWORD PTR SS:[EBP-30]
  004035AB   .  FF15 E0104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeObj>]   ;  MSVBVM60.__vbaFreeObj
  004035B1   >  8B96 80000000 MOV     EDX, DWORD PTR DS:[ESI+80]                ;  EDX=循环变量(初始为1)
  004035B7   .  8D45 A0       LEA     EAX, DWORD PTR SS:[EBP-60]
  004035BA   .  50            PUSH    EAX
  004035BB   .  8D46 70       LEA     EAX, DWORD PTR DS:[ESI+70]
  004035BE   .  50            PUSH    EAX
  004035BF   .  8955 A8       MOV     DWORD PTR SS:[EBP-58], EDX
  004035C2   .  C745 A0 03800>MOV     DWORD PTR SS:[EBP-60], 8003
  004035C9   .  FF15 44104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaVarTstLe>]  ;  循环变量是否小于等于注册名长度
  004035CF   .  66:85C0       TEST    AX, AX
  004035D2      0F84 AA010000 JE      00403782                                  ;  不是就跳
  004035D8   .  8B96 80000000 MOV     EDX, DWORD PTR DS:[ESI+80]                ;  是就向下继续计算注册码
  004035DE   .  8D4D C0       LEA     ECX, DWORD PTR SS:[EBP-40]
  004035E1   .  51            PUSH    ECX                                       ; /Arg4
  004035E2   .  8D46 6C       LEA     EAX, DWORD PTR DS:[ESI+6C]                ; |
  004035E5   .  8945 A8       MOV     DWORD PTR SS:[EBP-58], EAX                ; |
  004035E8   .  52            PUSH    EDX                                       ; |Arg3
  004035E9   .  8D45 A0       LEA     EAX, DWORD PTR SS:[EBP-60]                ; |
  004035EC   .  50            PUSH    EAX                                       ; |Arg2
  004035ED   .  8D4D B0       LEA     ECX, DWORD PTR SS:[EBP-50]                ; |
  004035F0   .  51            PUSH    ECX                                       ; |Arg1
  004035F1   .  C745 C8 01000>MOV     DWORD PTR SS:[EBP-38], 1                  ; |
  004035F8   .  C745 C0 02000>MOV     DWORD PTR SS:[EBP-40], 2                  ; |
  004035FF   .  C745 A0 08400>MOV     DWORD PTR SS:[EBP-60], 4008               ; |
  00403606   .  FF15 5C104000 CALL    DWORD PTR DS:[<&MSVBVM60.#632>]           ; \依次取注册名的各个字符
  0040360C   .  8BBE 80000000 MOV     EDI, DWORD PTR DS:[ESI+80]
  00403612   .  81FF 00010000 CMP     EDI, 100
  00403618   .  72 06         JB      SHORT 00403620
  0040361A   .  FF15 68104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaGenerateBou>;  MSVBVM60.__vbaGenerateBoundsError
  00403620   >  8B46 60       MOV     EAX, DWORD PTR DS:[ESI+60]
  00403623   .  8BCF          MOV     ECX, EDI
  00403625   .  C1E1 04       SHL     ECX, 4
  00403628   .  8D55 B0       LEA     EDX, DWORD PTR SS:[EBP-50]
  0040362B   .  03C8          ADD     ECX, EAX
  0040362D   .  FF15 0C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaVarMove>]   ;  MSVBVM60.__vbaVarMove
  00403633   .  8D55 B0       LEA     EDX, DWORD PTR SS:[EBP-50]
  00403636   .  52            PUSH    EDX
  00403637   .  8D45 C0       LEA     EAX, DWORD PTR SS:[EBP-40]
  0040363A   .  50            PUSH    EAX
  0040363B   .  6A 02         PUSH    2
  0040363D   .  FF15 20104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeVarList>;  MSVBVM60.__vbaFreeVarList
  00403643   .  8BBE 80000000 MOV     EDI, DWORD PTR DS:[ESI+80]
  00403649   .  83C4 0C       ADD     ESP, 0C
  0040364C   .  81FF 00010000 CMP     EDI, 100
  00403652   .  72 06         JB      SHORT 0040365A
  00403654   .  FF15 68104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaGenerateBou>;  MSVBVM60.__vbaGenerateBoundsError
  0040365A   >  8B9E 80000000 MOV     EBX, DWORD PTR DS:[ESI+80]
  00403660   .  81FB 00010000 CMP     EBX, 100
  00403666   .  72 06         JB      SHORT 0040366E
  00403668   .  FF15 68104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaGenerateBou>;  MSVBVM60.__vbaGenerateBoundsError
  0040366E   >  8B4E 60       MOV     ECX, DWORD PTR DS:[ESI+60]
  00403671   .  C1E7 04       SHL     EDI, 4
  00403674   .  03F9          ADD     EDI, ECX
  00403676   .  57            PUSH    EDI                                       ; /Arg2
  00403677   .  8D4D D8       LEA     ECX, DWORD PTR SS:[EBP-28]                ; |
  0040367A   .  51            PUSH    ECX                                       ; |Arg1
  0040367B   .  FF15 94104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaStrVarVal>] ; \__vbaStrVarVal
  00403681   .  50            PUSH    EAX                                       ; /Arg1
  00403682   .  FF15 30104000 CALL    DWORD PTR DS:[<&MSVBVM60.#516>]           ; \得到相应字符的ASCII码
  00403688   .  0FBFD0        MOVSX   EDX, AX                                   ;  符号扩展到EDX,得数A
  0040368B   .  8B86 80000000 MOV     EAX, DWORD PTR DS:[ESI+80]                ;  EAX=循环变量的值(当前所取字符在注册名中的位置)
  00403691   .  6BC0 08       IMUL    EAX, EAX, 8                               ;  EAX=EAX×8,得数B
  00403694   .  0F80 68010000 JO      00403802
  0040369A   .  33D0          XOR     EDX, EAX                                  ;  A、B异或,得结果C
  0040369C   .  52            PUSH    EDX                                       ; /Arg1
  0040369D   .  FF15 10104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaStrI4>]     ; \__vbaStrI4
  004036A3   .  8BD0          MOV     EDX, EAX
  004036A5   .  8D4D D4       LEA     ECX, DWORD PTR SS:[EBP-2C]
  004036A8   .  FF15 CC104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaStrMove>]   ;  MSVBVM60.__vbaStrMove
  004036AE   .  8B4E 44       MOV     ECX, DWORD PTR DS:[ESI+44]
  004036B1   .  8BD0          MOV     EDX, EAX
  004036B3   .  8D0C99        LEA     ECX, DWORD PTR DS:[ECX+EBX*4]
  004036B6   .  FF15 A8104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaStrCopy>]   ;  MSVBVM60.__vbaStrCopy
  004036BC   .  8D55 D4       LEA     EDX, DWORD PTR SS:[EBP-2C]
  004036BF   .  52            PUSH    EDX
  004036C0   .  8D45 D8       LEA     EAX, DWORD PTR SS:[EBP-28]
  004036C3   .  50            PUSH    EAX
  004036C4   .  6A 02         PUSH    2
  004036C6   .  FF15 B0104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeStrList>;  MSVBVM60.__vbaFreeStrList
  004036CC   .  8BBE 80000000 MOV     EDI, DWORD PTR DS:[ESI+80]
  004036D2   .  83C4 0C       ADD     ESP, 0C
  004036D5   .  81FF 00010000 CMP     EDI, 100
  004036DB   .  72 06         JB      SHORT 004036E3
  004036DD   .  FF15 68104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaGenerateBou>;  MSVBVM60.__vbaGenerateBoundsError
  004036E3   >  8B4E 44       MOV     ECX, DWORD PTR DS:[ESI+44]
  004036E6   .  8B14B9        MOV     EDX, DWORD PTR DS:[ECX+EDI*4]
  004036E9   .  52            PUSH    EDX
  004036EA   .  FF15 AC104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaI4Str>]     ;  MSVBVM60.__vbaI4Str
  004036F0   .  50            PUSH    EAX                                       ; /Arg2
  004036F1   .  8D45 C0       LEA     EAX, DWORD PTR SS:[EBP-40]                ; |
  004036F4   .  50            PUSH    EAX                                       ; |Arg1
  004036F5   .  FF15 8C104000 CALL    DWORD PTR DS:[<&MSVBVM60.#608>]           ; \ASCII码(C)转化为相应字符
  004036FB   .  8DBE 84000000 LEA     EDI, DWORD PTR DS:[ESI+84]
  00403701   .  8D55 C0       LEA     EDX, DWORD PTR SS:[EBP-40]
  00403704   .  8BCF          MOV     ECX, EDI
  00403706   .  FF15 0C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaVarMove>]   ;  MSVBVM60.__vbaVarMove
  0040370C   .  8D4D C0       LEA     ECX, DWORD PTR SS:[EBP-40]
  0040370F   .  FF15 14104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeVar>]   ;  MSVBVM60.__vbaFreeVar
  00403715   .  8B8E 94000000 MOV     ECX, DWORD PTR DS:[ESI+94]
  0040371B   .  57            PUSH    EDI                                       ; /Arg3
  0040371C   .  8D55 A0       LEA     EDX, DWORD PTR SS:[EBP-60]                ; |
  0040371F   .  8D9E 94000000 LEA     EBX, DWORD PTR DS:[ESI+94]                ; |
  00403725   .  52            PUSH    EDX                                       ; |Arg2
  00403726   .  8D45 C0       LEA     EAX, DWORD PTR SS:[EBP-40]                ; |
  00403729   .  50            PUSH    EAX                                       ; |Arg1
  0040372A   .  894D A8       MOV     DWORD PTR SS:[EBP-58], ECX                ; |
  0040372D   .  C745 A0 08000>MOV     DWORD PTR SS:[EBP-60], 8                  ; |
  00403734   .  FF15 C0104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaVarAdd>]    ; \和上次得到的字符串相加
  0040373A   .  50            PUSH    EAX
  0040373B   .  FF15 1C104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaStrVarMove>>;  MSVBVM60.__vbaStrVarMove
  00403741   .  8BD0          MOV     EDX, EAX
  00403743   .  8D4D D8       LEA     ECX, DWORD PTR SS:[EBP-28]
  00403746   .  FF15 CC104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaStrMove>]   ;  MSVBVM60.__vbaStrMove
  0040374C   .  8BD0          MOV     EDX, EAX
  0040374E   .  8BCB          MOV     ECX, EBX
  00403750   .  FF15 A8104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaStrCopy>]   ;  MSVBVM60.__vbaStrCopy
  00403756   .  8D4D D8       LEA     ECX, DWORD PTR SS:[EBP-28]
  00403759   .  FF15 DC104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeStr>]   ;  MSVBVM60.__vbaFreeStr
  0040375F   .  8D4D C0       LEA     ECX, DWORD PTR SS:[EBP-40]
  00403762   .  FF15 14104000 CALL    DWORD PTR DS:[<&MSVBVM60.__vbaFreeVar>]   ;  MSVBVM60.__vbaFreeVar
  00403768   .  8B8E 80000000 MOV     ECX, DWORD PTR DS:[ESI+80]
  0040376E   .  83C1 01       ADD     ECX, 1                                    ;  循环变量加1
  00403771   .  0F80 8B000000 JO      00403802
  00403777   .  898E 80000000 MOV     DWORD PTR DS:[ESI+80], ECX
  0040377D   .^ E9 2FFEFFFF   JMP     004035B1                                  ;  循环
  ..........
  4.算法分析
  (1)依次取注册名的各位字符的ASCII码
  注册名 :  d    e     w    a      r
  ASCII码: 64    65   77    61    72
  (2)与各字符所在位数与8的乘积进行异或(都是十六进制数)
  注   册    名:  d    e     w    a      r
  ASCII      码: 64    65   77    61    72
  位数与8的乘积: 8     10   18    20    28  
  异或结果     : 6C    75   6F    41    5A
  对应字符     : l     u    o      A     Z
  (3)正确注册码:
  第1步得字符:l  第1步得字符串:l
  第2步得字符:u  第2步得字符串:u+l=ul
  第3步得字符:o  第3步得字符串:o+ul=oul
  第4步得字符:A  第4步得字符串:A+oul=Aoul
  第5步得字符:Z  第5步得字符串:Z+Aoul=ZAoul
  所以一组正确的注册名和注册码为:
  注册名:dewar
  注册码:ZAoul
  (4)本Crackme之所以有注册名位数的限制,我猜原因就是位数多了后,乘积就大了,异或出的结果就不全是可显示的字符了。
  全文完,谢谢你能看完^_^
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2006年12月26日 13:52:15


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

收藏
免费 7
支持
分享
最新回复 (60)
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
2
同是菜菜,支持一下,共同进步!
2006-12-26 14:03
0
雪    币: 338
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
分析的真不错.适合我等莱鸟!!
2006-12-26 19:02
0
雪    币: 297
活跃值: (21)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
4
费了我好大的劲写出来,看的人这么少 回复的人更少
2006-12-26 21:29
0
雪    币: 461
活跃值: (93)
能力值: ( LV9,RANK:1170 )
在线值:
发帖
回帖
粉丝
5
进步挺大的,支持楼主!
2006-12-26 21:33
0
雪    币: 297
活跃值: (21)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
6
最初由 bxm 发布
进步挺大的,支持楼主!

没有你们这些大侠在前面开路,我们这些菜菜永远是菜菜了,感谢所有大侠及其文章
2006-12-26 21:47
0
雪    币: 443
活跃值: (200)
能力值: ( LV9,RANK:1140 )
在线值:
发帖
回帖
粉丝
7
牛啊,咋我就做不出来呢?
2006-12-26 22:29
0
雪    币: 318
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
厉害,再学习学习
2007-2-18 11:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
先顶一下..同是菜鸟..请多多指教...

请问一下大侠..这里爆破改成JMP 会否成功呢..我觉得改成JNE 会成理由一点吧.

再单步向下到00403100处,这里就是关键跳转了,把JE改为JMP就可爆破。
2007-2-23 06:20
0
雪    币: 215
活跃值: (82)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
学习了,
2007-2-23 17:20
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
不学不行啊,搂住不错!
2007-2-25 16:21
0
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
12
最初由 dewar 发布
费了我好大的劲写出来,看的人这么少 回复的人更少


才看到,支持!
2007-2-26 00:56
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
花时间看了一下
楼主写得不错,思路很清晰
正学习中!
2007-2-26 11:52
0
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
(1)依次取注册名的各位字符的ASCII码
  注册名 :  d    e     w    a      r
  ASCII码: 64    65   77    61    72
  (2)与各字符所在位数与8的乘积进行或(都是十六进制数)
  注   册    名:  d    e     w    a      r
  ASCII      码: 64    65   77    61    72
  位数与8的乘积: 8     10   18    20    28  
  异或结果     : 6C    75   6F    41    5A
  对应字符     : l     u    o      A     Z
***********************************************************
问下LZ,你分析出来的算法如何算出来注册码的?小弟不明白你所说的,位数与8的乘积,如上面的d是指它在第一位还是在第5位,还是第4位与8的积再与什么数异或是d吗?还是什么数?
2007-3-8 21:26
0
雪    币: 297
活跃值: (21)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
15
问下LZ,你分析出来的算法如何算出来注册码的?小弟不明白你所说的,位数与8的乘积,如上面的d是指它在第一位还是在第5位,还是第4位与8的积再与什么数异或是d吗?还是什么数?

注册名:  d     e     w     a     r
位  数:  1     2     3     4     5
位数×8: 8     10    18    20    28

建议楼上的跟一下就清楚了。
2007-3-9 08:12
0
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
本人跟了整个过程,我用的是AAAA用户名,注册码是aYQI。按你的算法就不能算出来,这是怎么回事?但这可是注册成功的呀!
2007-3-9 10:24
0
雪    币: 4
活跃值: (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
不错 我等小菜学习~~
2007-3-9 10:29
0
雪    币: 297
活跃值: (21)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
18
最初由 tomenzi 发布
本人跟了整个过程,我用的是AAAA用户名,注册码是aYQI。按你的算法就不能算出来,这是怎么回事?但这可是注册成功的呀!

AAAAA的注册码应该是iaYQI
我的算法:
注册名:  A     A     A      A      A
ASCII :  41    41    41     41     41
位数×8: 8     10    18     20     28
异或结果:49    51    59     61     69
对应字符:I     Q      Y      a      i
所以注册码:iaYQI
     
2007-3-9 13:16
0
雪    币: 205
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
大侠,破解一个E语言的东西,谢谢
2007-3-19 12:28
0
雪    币: 208
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
20
大侠能否帮我破软件啊
2007-3-29 12:36
0
雪    币: 390
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
好啊 ,我练习一下了!谢谢拉!
2007-3-29 16:13
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
牛啊!这么长!
2007-4-2 22:34
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
鼓捣了半天才搞明白,谢谢啊
2007-4-5 15:30
0
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
24
vb写滴``好讨厌哦!!
2007-4-5 16:11
0
雪    币: 110
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
太强了,学习
2007-4-5 21:36
0
游客
登录 | 注册 方可回帖
返回
//