160 - 22 CarLitoZ.1

环境
Windows xp sp3

工具
exeinfope
Ollydbg

查壳
无壳的VB程序

测试

输入“1234567”
显示这个:

直接OD载入字符串搜索。

00402D20   > \55            push ebp
00402D21   .  8BEC          mov ebp,esp
00402D23   .  83EC 0C       sub esp,0xC
00402D26   .  68 66104000   push <jmp.&MSVBVM50.__vbaExceptHandler>  ;  SE 处理程序安装
00402D2B   .  64:A1 0000000>mov eax,dword ptr fs:[0]
00402D31   .  50            push eax
00402D32   .  64:8925 00000>mov dword ptr fs:[0],esp
00402D39   .  81EC 98000000 sub esp,0x98
00402D3F   .  53            push ebx
00402D40   .  56            push esi
00402D41   .  8B75 08       mov esi,dword ptr ss:[ebp+0x8]
00402D44   .  57            push edi
00402D45   .  8BC6          mov eax,esi
00402D47   .  83E6 FE       and esi,0xFFFFFFFE
00402D4A   .  8965 F4       mov dword ptr ss:[ebp-0xC],esp
00402D4D   .  83E0 01       and eax,0x1
00402D50   .  8B1E          mov ebx,dword ptr ds:[esi]
00402D52   .  C745 F8 20104>mov dword ptr ss:[ebp-0x8],CarLitoZ.0040>
00402D59   .  56            push esi
00402D5A   .  8945 FC       mov dword ptr ss:[ebp-0x4],eax
00402D5D   .  8975 08       mov dword ptr ss:[ebp+0x8],esi
00402D60   .  FF53 04       call dword ptr ds:[ebx+0x4]
00402D63   .  33FF          xor edi,edi
00402D65   .  56            push esi
00402D66   .  897D E8       mov dword ptr ss:[ebp-0x18],edi
00402D69   .  897D E4       mov dword ptr ss:[ebp-0x1C],edi
00402D6C   .  897D D4       mov dword ptr ss:[ebp-0x2C],edi
00402D6F   .  897D C4       mov dword ptr ss:[ebp-0x3C],edi
00402D72   .  897D B4       mov dword ptr ss:[ebp-0x4C],edi
00402D75   .  897D A4       mov dword ptr ss:[ebp-0x5C],edi
00402D78   .  897D 94       mov dword ptr ss:[ebp-0x6C],edi
00402D7B   .  897D 84       mov dword ptr ss:[ebp-0x7C],edi
00402D7E   .  FF93 F8060000 call dword ptr ds:[ebx+0x6F8]            ;  这里跟进去,因为这里会得出比较结果
00402D84   .  3BC7          cmp eax,edi
00402D86   .  7D 12         jge XCarLitoZ.00402D9A
00402D88   .  68 F8060000   push 0x6F8
00402D8D   .  68 0C224000   push CarLitoZ.0040220C
00402D92   .  56            push esi
00402D93   .  50            push eax
00402D94   .  FF15 34614000 call dword ptr ds:[<&MSVBVM50.__vbaHresu>;  MSVBVM50.__vbaHresultCheckObj
00402D9A   >  8D4E 34       lea ecx,dword ptr ds:[esi+0x34]
00402D9D   .  8D55 94       lea edx,dword ptr ss:[ebp-0x6C]
00402DA0   .  51            push ecx                                 ; /var18
00402DA1   .  52            push edx                                 ; |var28
00402DA2   .  C745 9C 01000>mov dword ptr ss:[ebp-0x64],0x1          ; |
00402DA9   .  C745 94 02800>mov dword ptr ss:[ebp-0x6C],0x8002       ; |
00402DB0   .  FF15 6C614000 call dword ptr ds:[<&MSVBVM50.__vbaVarTs>; \__vbaVarTstEq
00402DB6   .  8B3D C4614000 mov edi,dword ptr ds:[<&MSVBVM50.__vbaVa>;  MSVBVM50.__vbaVarDup
00402DBC   .  B9 04000280   mov ecx,0x80020004
00402DC1   .  66:85C0       test ax,ax
00402DC4   .  B8 0A000000   mov eax,0xA
00402DC9   .  894D AC       mov dword ptr ss:[ebp-0x54],ecx
00402DCC   .  894D BC       mov dword ptr ss:[ebp-0x44],ecx
00402DCF   .  8945 A4       mov dword ptr ss:[ebp-0x5C],eax
00402DD2   .  8945 B4       mov dword ptr ss:[ebp-0x4C],eax
00402DD5   .  C745 8C 08234>mov dword ptr ss:[ebp-0x74],CarLitoZ.004>;  UNICODE "CrackMe v1.0"
00402DDC   .  C745 84 08000>mov dword ptr ss:[ebp-0x7C],0x8
00402DE3   .  8D55 84       lea edx,dword ptr ss:[ebp-0x7C]
00402DE6   .  8D4D C4       lea ecx,dword ptr ss:[ebp-0x3C]
00402DE9   .  0F84 5A010000 je CarLitoZ.00402F49
00402DEF   .  FFD7          call edi                                 ;  <&MSVBVM50.__vbaVarDup>
00402DF1   .  8D55 94       lea edx,dword ptr ss:[ebp-0x6C]
00402DF4   .  8D4D D4       lea ecx,dword ptr ss:[ebp-0x2C]
00402DF7   .  C745 9C D4224>mov dword ptr ss:[ebp-0x64],CarLitoZ.004>;  UNICODE "Registration Successful"
00402DFE   .  C745 94 08000>mov dword ptr ss:[ebp-0x6C],0x8
00402E05   .  FFD7          call edi
00402E07   .  8D45 A4       lea eax,dword ptr ss:[ebp-0x5C]
00402E0A   .  8D4D B4       lea ecx,dword ptr ss:[ebp-0x4C]
00402E0D   .  50            push eax
00402E0E   .  8D55 C4       lea edx,dword ptr ss:[ebp-0x3C]
00402E11   .  51            push ecx
00402E12   .  52            push edx
00402E13   .  8D45 D4       lea eax,dword ptr ss:[ebp-0x2C]
00402E16   .  6A 30         push 0x30
00402E18   .  50            push eax
00402E19   .  FF15 40614000 call dword ptr ds:[<&MSVBVM50.#595>]     ;  MSVBVM50.rtcMsgBox
00402E1F   .  8D4D A4       lea ecx,dword ptr ss:[ebp-0x5C]
00402E22   .  8D55 B4       lea edx,dword ptr ss:[ebp-0x4C]
00402E25   .  51            push ecx
00402E26   .  8D45 C4       lea eax,dword ptr ss:[ebp-0x3C]
00402E29   .  52            push edx
00402E2A   .  8D4D D4       lea ecx,dword ptr ss:[ebp-0x2C]
00402E2D   .  50            push eax
00402E2E   .  51            push ecx
00402E2F   .  6A 04         push 0x4
00402E31   .  FF15 1C614000 call dword ptr ds:[<&MSVBVM50.__vbaFreeV>;  MSVBVM50.__vbaFreeVarList
00402E37   .  83C4 14       add esp,0x14
00402E3A   .  8D7E 44       lea edi,dword ptr ds:[esi+0x44]
00402E3D   .  68 40224000   push CarLitoZ.00402240                   ;  UNICODE "c:\windows\MTR.dat"
00402E42   .  57            push edi
00402E43   .  FF15 90614000 call dword ptr ds:[<&MSVBVM50.__vbaI2Var>;  MSVBVM50.__vbaI2Var
00402E49   .  50            push eax
00402E4A   .  6A FF         push -0x1
00402E4C   .  6A 20         push 0x20
00402E4E   .  FF15 98614000 call dword ptr ds:[<&MSVBVM50.__vbaFileO>;  MSVBVM50.__vbaFileOpen
00402E54   .  BA 6C224000   mov edx,CarLitoZ.0040226C                ;  UNICODE "trv2156j0e"
00402E59   .  8D4D E8       lea ecx,dword ptr ss:[ebp-0x18]
00402E5C   .  FF15 AC614000 call dword ptr ds:[<&MSVBVM50.__vbaStrCo>;  MSVBVM50.__vbaStrCopy
00402E62   .  57            push edi
00402E63   .  FF15 90614000 call dword ptr ds:[<&MSVBVM50.__vbaI2Var>;  MSVBVM50.__vbaI2Var
00402E69   .  50            push eax
00402E6A   .  8D55 E8       lea edx,dword ptr ss:[ebp-0x18]
00402E6D   .  6A 2D         push 0x2D
00402E6F   .  52            push edx
00402E70   .  6A 00         push 0x0
00402E72   .  FF15 24614000 call dword ptr ds:[<&MSVBVM50.__vbaPut4>>;  MSVBVM50.__vbaPut4
00402E78   .  8D4D E8       lea ecx,dword ptr ss:[ebp-0x18]
00402E7B   .  FF15 DC614000 call dword ptr ds:[<&MSVBVM50.__vbaFreeS>;  MSVBVM50.__vbaFreeStr
00402E81   .  57            push edi
00402E82   .  FF15 90614000 call dword ptr ds:[<&MSVBVM50.__vbaI2Var>;  MSVBVM50.__vbaI2Var
00402E88   .  50            push eax
00402E89   .  FF15 60614000 call dword ptr ds:[<&MSVBVM50.__vbaFileC>;  MSVBVM50.__vbaFileClose
00402E8F   .  56            push esi
00402E90   .  FF93 0C030000 call dword ptr ds:[ebx+0x30C]
00402E96   .  50            push eax
00402E97   .  8D45 E4       lea eax,dword ptr ss:[ebp-0x1C]
00402E9A   .  50            push eax
00402E9B   .  FF15 3C614000 call dword ptr ds:[<&MSVBVM50.__vbaObjSe>;  MSVBVM50.__vbaObjSet
00402EA1   .  8BF8          mov edi,eax
00402EA3   .  68 88224000   push CarLitoZ.00402288                   ;  UNICODE "REGISTERED"
00402EA8   .  57            push edi
00402EA9   .  8B0F          mov ecx,dword ptr ds:[edi]
00402EAB   .  FF51 54       call dword ptr ds:[ecx+0x54]
00402EAE   .  85C0          test eax,eax
00402EB0   .  7D 0F         jge XCarLitoZ.00402EC1
00402EB2   .  6A 54         push 0x54
00402EB4   .  68 A0224000   push CarLitoZ.004022A0
00402EB9   .  57            push edi
00402EBA   .  50            push eax
00402EBB   .  FF15 34614000 call dword ptr ds:[<&MSVBVM50.__vbaHresu>;  MSVBVM50.__vbaHresultCheckObj
00402EC1   >  8D4D E4       lea ecx,dword ptr ss:[ebp-0x1C]
00402EC4   .  FF15 E0614000 call dword ptr ds:[<&MSVBVM50.__vbaFreeO>;  MSVBVM50.__vbaFreeObj
00402ECA   .  56            push esi
00402ECB   .  FF93 04030000 call dword ptr ds:[ebx+0x304]
00402ED1   .  8D55 E4       lea edx,dword ptr ss:[ebp-0x1C]
00402ED4   .  50            push eax
00402ED5   .  52            push edx
00402ED6   .  FF15 3C614000 call dword ptr ds:[<&MSVBVM50.__vbaObjSe>;  MSVBVM50.__vbaObjSet
00402EDC   .  8BF8          mov edi,eax
00402EDE   .  6A 00         push 0x0
00402EE0   .  57            push edi
00402EE1   .  8B07          mov eax,dword ptr ds:[edi]
00402EE3   .  FF90 8C000000 call dword ptr ds:[eax+0x8C]
00402EE9   .  85C0          test eax,eax
00402EEB   .  7D 12         jge XCarLitoZ.00402EFF
00402EED   .  68 8C000000   push 0x8C
00402EF2   .  68 B0224000   push CarLitoZ.004022B0
00402EF7   .  57            push edi
00402EF8   .  50            push eax
00402EF9   .  FF15 34614000 call dword ptr ds:[<&MSVBVM50.__vbaHresu>;  MSVBVM50.__vbaHresultCheckObj
00402EFF   >  8B3D E0614000 mov edi,dword ptr ds:[<&MSVBVM50.__vbaFr>;  MSVBVM50.__vbaFreeObj
00402F05   .  8D4D E4       lea ecx,dword ptr ss:[ebp-0x1C]
00402F08   .  FFD7          call edi                                 ;  <&MSVBVM50.__vbaFreeObj>
00402F0A   .  56            push esi
00402F0B   .  FF93 08030000 call dword ptr ds:[ebx+0x308]
00402F11   .  8D4D E4       lea ecx,dword ptr ss:[ebp-0x1C]
00402F14   .  50            push eax
00402F15   .  51            push ecx
00402F16   .  FF15 3C614000 call dword ptr ds:[<&MSVBVM50.__vbaObjSe>;  MSVBVM50.__vbaObjSet
00402F1C   .  8BF0          mov esi,eax
00402F1E   .  6A 00         push 0x0
00402F20   .  56            push esi
00402F21   .  8B16          mov edx,dword ptr ds:[esi]
00402F23   .  FF92 8C000000 call dword ptr ds:[edx+0x8C]
00402F29   .  85C0          test eax,eax
00402F2B   .  7D 12         jge XCarLitoZ.00402F3F
00402F2D   .  68 8C000000   push 0x8C
00402F32   .  68 C0224000   push CarLitoZ.004022C0
00402F37   .  56            push esi
00402F38   .  50            push eax
00402F39   .  FF15 34614000 call dword ptr ds:[<&MSVBVM50.__vbaHresu>;  MSVBVM50.__vbaHresultCheckObj
00402F3F   >  8D4D E4       lea ecx,dword ptr ss:[ebp-0x1C]
00402F42   .  FFD7          call edi
00402F44   .  E9 8C000000   jmp CarLitoZ.00402FD5
00402F49   >  FFD7          call edi
00402F4B   .  8D55 94       lea edx,dword ptr ss:[ebp-0x6C]
00402F4E   .  8D4D D4       lea ecx,dword ptr ss:[ebp-0x2C]
00402F51   .  C745 9C 28234>mov dword ptr ss:[ebp-0x64],CarLitoZ.004>;  UNICODE " Wrong Code! Try Again"
00402F58   .  C745 94 08000>mov dword ptr ss:[ebp-0x6C],0x8
00402F5F   .  FFD7          call edi
00402F61   .  8D45 A4       lea eax,dword ptr ss:[ebp-0x5C]
00402F64   .  8D4D B4       lea ecx,dword ptr ss:[ebp-0x4C]
00402F67   .  50            push eax
00402F68   .  8D55 C4       lea edx,dword ptr ss:[ebp-0x3C]
00402F6B   .  51            push ecx
00402F6C   .  52            push edx
00402F6D   .  8D45 D4       lea eax,dword ptr ss:[ebp-0x2C]
00402F70   .  6A 10         push 0x10
00402F72   .  50            push eax
00402F73   .  FF15 40614000 call dword ptr ds:[<&MSVBVM50.#595>]     ;  MSVBVM50.rtcMsgBox
00402F79   .  8D4D A4       lea ecx,dword ptr ss:[ebp-0x5C]
00402F7C   .  8D55 B4       lea edx,dword ptr ss:[ebp-0x4C]
00402F7F   .  51            push ecx
00402F80   .  8D45 C4       lea eax,dword ptr ss:[ebp-0x3C]
00402F83   .  52            push edx
00402F84   .  8D4D D4       lea ecx,dword ptr ss:[ebp-0x2C]
00402F87   .  50            push eax
00402F88   .  51            push ecx
00402F89   .  6A 04         push 0x4
00402F8B   .  FF15 1C614000 call dword ptr ds:[<&MSVBVM50.__vbaFreeV>;  MSVBVM50.__vbaFreeVarList
00402F91   .  83C4 14       add esp,0x14
00402F94   .  56            push esi
00402F95   .  FF93 08030000 call dword ptr ds:[ebx+0x308]
00402F9B   .  8D55 E4       lea edx,dword ptr ss:[ebp-0x1C]
00402F9E   .  50            push eax
00402F9F   .  52            push edx
00402FA0   .  FF15 3C614000 call dword ptr ds:[<&MSVBVM50.__vbaObjSe>;  MSVBVM50.__vbaObjSet
00402FA6   .  8BF0          mov esi,eax
00402FA8   .  68 5C234000   push CarLitoZ.0040235C
00402FAD   .  56            push esi
00402FAE   .  8B06          mov eax,dword ptr ds:[esi]
00402FB0   .  FF90 A4000000 call dword ptr ds:[eax+0xA4]
00402FB6   .  85C0          test eax,eax
00402FB8   .  7D 12         jge XCarLitoZ.00402FCC
00402FBA   .  68 A4000000   push 0xA4
00402FBF   .  68 C0224000   push CarLitoZ.004022C0
00402FC4   .  56            push esi
00402FC5   .  50            push eax
00402FC6   .  FF15 34614000 call dword ptr ds:[<&MSVBVM50.__vbaHresu>;  MSVBVM50.__vbaHresultCheckObj
00402FCC   >  8D4D E4       lea ecx,dword ptr ss:[ebp-0x1C]
00402FCF   .  FF15 E0614000 call dword ptr ds:[<&MSVBVM50.__vbaFreeO>;  MSVBVM50.__vbaFreeObj
00402FD5   >  C745 FC 00000>mov dword ptr ss:[ebp-0x4],0x0
00402FDC   .  68 12304000   push CarLitoZ.00403012
00402FE1   .  EB 2E         jmp XCarLitoZ.00403011
00402FE3   .  8D4D E8       lea ecx,dword ptr ss:[ebp-0x18]
00402FE6   .  FF15 DC614000 call dword ptr ds:[<&MSVBVM50.__vbaFreeS>;  MSVBVM50.__vbaFreeStr
00402FEC   .  8D4D E4       lea ecx,dword ptr ss:[ebp-0x1C]
00402FEF   .  FF15 E0614000 call dword ptr ds:[<&MSVBVM50.__vbaFreeO>;  MSVBVM50.__vbaFreeObj
00402FF5   .  8D4D A4       lea ecx,dword ptr ss:[ebp-0x5C]
00402FF8   .  8D55 B4       lea edx,dword ptr ss:[ebp-0x4C]
00402FFB   .  51            push ecx
00402FFC   .  8D45 C4       lea eax,dword ptr ss:[ebp-0x3C]
00402FFF   .  52            push edx
00403000   .  8D4D D4       lea ecx,dword ptr ss:[ebp-0x2C]
00403003   .  50            push eax
00403004   .  51            push ecx
00403005   .  6A 04         push 0x4
00403007   .  FF15 1C614000 call dword ptr ds:[<&MSVBVM50.__vbaFreeV>;  MSVBVM50.__vbaFreeVarList
0040300D   .  83C4 14       add esp,0x14
00403010   .  C3            retn
00403011   >  C3            retn                                     ;  RET 用作跳转到 00403012
00403012   >  8B45 08       mov eax,dword ptr ss:[ebp+0x8]
00403015   .  50            push eax
00403016   .  8B10          mov edx,dword ptr ds:[eax]
00403018   .  FF52 08       call dword ptr ds:[edx+0x8]
0040301B   .  8B4D EC       mov ecx,dword ptr ss:[ebp-0x14]
0040301E   .  8B45 FC       mov eax,dword ptr ss:[ebp-0x4]
00403021   .  5F            pop edi
00403022   .  5E            pop esi
00403023   .  64:890D 00000>mov dword ptr fs:[0],ecx
0040302A   .  5B            pop ebx
0040302B   .  8BE5          mov esp,ebp
0040302D   .  5D            pop ebp
0040302E   .  C2 0400       retn 0x4

因为是VB程序,所以会有很多变量的生成销毁函数调用,注意一下就好了,因为结构都差不多,看看哪些语句重复的,基本上就可考虑是为函数调用服务的,与算法无关。

在关键call那里跟进去:

跳过一些函数调用,直接来到算法部分:

0040362B   .  8945 9C       mov dword ptr ss:[ebp-0x64],eax
0040362E   .  52            push edx                                 ; /Length8
0040362F   .  8D45 94       lea eax,dword ptr ss:[ebp-0x6C]          ; |
00403632   .  6A 06         push 0x6                                 ; |Start = 6
00403634   .  8D8D 74FFFFFF lea ecx,dword ptr ss:[ebp-0x8C]          ; |
0040363A   .  BB 02000000   mov ebx,0x2                              ; |
0040363F   .  50            push eax                                 ; |dString8
00403640   .  51            push ecx                                 ; |RetBUFFER
00403641   .  8975 E8       mov dword ptr ss:[ebp-0x18],esi          ; |
00403644   .  C785 A4FDFFFF>mov dword ptr ss:[ebp-0x25C],0x8008      ; |
0040364E   .  C745 8C 01000>mov dword ptr ss:[ebp-0x74],0x1          ; |
00403655   .  895D 84       mov dword ptr ss:[ebp-0x7C],ebx          ; |
00403658   .  8975 E4       mov dword ptr ss:[ebp-0x1C],esi          ; |
0040365B   .  C745 94 08000>mov dword ptr ss:[ebp-0x6C],0x8          ; |
00403662   .  FFD7          call edi                                 ; \rtcMidCharVar
00403664   .  8B45 E0       mov eax,dword ptr ss:[ebp-0x20]
00403667   .  8D95 54FFFFFF lea edx,dword ptr ss:[ebp-0xAC]
0040366D   .  8985 6CFFFFFF mov dword ptr ss:[ebp-0x94],eax
00403673   .  52            push edx                                 ; /Length8
00403674   .  8D85 64FFFFFF lea eax,dword ptr ss:[ebp-0x9C]          ; |
0040367A   .  6A 09         push 0x9                                 ; |Start = 9
0040367C   .  8D8D 44FFFFFF lea ecx,dword ptr ss:[ebp-0xBC]          ; |
00403682   .  50            push eax                                 ; |dString8
00403683   .  51            push ecx                                 ; |RetBUFFER
00403684   .  C785 5CFFFFFF>mov dword ptr ss:[ebp-0xA4],0x1          ; |
0040368E   .  899D 54FFFFFF mov dword ptr ss:[ebp-0xAC],ebx          ; |
00403694   .  8975 E0       mov dword ptr ss:[ebp-0x20],esi          ; |
00403697   .  C785 64FFFFFF>mov dword ptr ss:[ebp-0x9C],0x8          ; |
004036A1   .  FFD7          call edi                                 ; \rtcMidCharVar
004036A3   .  8B45 DC       mov eax,dword ptr ss:[ebp-0x24]
004036A6   .  8D95 14FFFFFF lea edx,dword ptr ss:[ebp-0xEC]
004036AC   .  8985 2CFFFFFF mov dword ptr ss:[ebp-0xD4],eax
004036B2   .  52            push edx                                 ; /Length8
004036B3   .  8D85 24FFFFFF lea eax,dword ptr ss:[ebp-0xDC]          ; |
004036B9   .  68 8F000000   push 0x8F                                ; |Start = 8F
004036BE   .  8D8D 04FFFFFF lea ecx,dword ptr ss:[ebp-0xFC]          ; |
004036C4   .  50            push eax                                 ; |dString8
004036C5   .  51            push ecx                                 ; |RetBUFFER
004036C6   .  C785 1CFFFFFF>mov dword ptr ss:[ebp-0xE4],0x1          ; |
004036D0   .  899D 14FFFFFF mov dword ptr ss:[ebp-0xEC],ebx          ; |
004036D6   .  8975 DC       mov dword ptr ss:[ebp-0x24],esi          ; |
004036D9   .  C785 24FFFFFF>mov dword ptr ss:[ebp-0xDC],0x8          ; |
004036E3   .  FFD7          call edi                                 ; \rtcMidCharVar
004036E5   .  8B45 D8       mov eax,dword ptr ss:[ebp-0x28]
004036E8   .  8D95 D4FEFFFF lea edx,dword ptr ss:[ebp-0x12C]
004036EE   .  8985 ECFEFFFF mov dword ptr ss:[ebp-0x114],eax
004036F4   .  52            push edx                                 ; /Length8
004036F5   .  8D85 E4FEFFFF lea eax,dword ptr ss:[ebp-0x11C]         ; |
004036FB   .  6A 10         push 0x10                                ; |Start = 10
004036FD   .  8D8D C4FEFFFF lea ecx,dword ptr ss:[ebp-0x13C]         ; |
00403703   .  50            push eax                                 ; |dString8
00403704   .  51            push ecx                                 ; |RetBUFFER
00403705   .  C785 DCFEFFFF>mov dword ptr ss:[ebp-0x124],0x1         ; |
0040370F   .  899D D4FEFFFF mov dword ptr ss:[ebp-0x12C],ebx         ; |
00403715   .  8975 D8       mov dword ptr ss:[ebp-0x28],esi          ; |
00403718   .  C785 E4FEFFFF>mov dword ptr ss:[ebp-0x11C],0x8         ; |
00403722   .  FFD7          call edi                                 ; \rtcMidCharVar
00403724   .  8B45 D4       mov eax,dword ptr ss:[ebp-0x2C]
00403727   .  8D95 94FEFFFF lea edx,dword ptr ss:[ebp-0x16C]
0040372D   .  8985 ACFEFFFF mov dword ptr ss:[ebp-0x154],eax
00403733   .  52            push edx                                 ; /Length8
00403734   .  8D85 A4FEFFFF lea eax,dword ptr ss:[ebp-0x15C]         ; |
0040373A   .  68 A1000000   push 0xA1                                ; |Start = A1
0040373F   .  8D8D 84FEFFFF lea ecx,dword ptr ss:[ebp-0x17C]         ; |
00403745   .  50            push eax                                 ; |dString8
00403746   .  51            push ecx                                 ; |RetBUFFER
00403747   .  C785 9CFEFFFF>mov dword ptr ss:[ebp-0x164],0x1         ; |
00403751   .  899D 94FEFFFF mov dword ptr ss:[ebp-0x16C],ebx         ; |
00403757   .  8975 D4       mov dword ptr ss:[ebp-0x2C],esi          ; |
0040375A   .  C785 A4FEFFFF>mov dword ptr ss:[ebp-0x15C],0x8         ; |
00403764   .  FFD7          call edi                                 ; \rtcMidCharVar
00403766   .  8B45 D0       mov eax,dword ptr ss:[ebp-0x30]
00403769   .  C785 5CFEFFFF>mov dword ptr ss:[ebp-0x1A4],0x1
00403773   .  899D 54FEFFFF mov dword ptr ss:[ebp-0x1AC],ebx
00403779   .  8975 D0       mov dword ptr ss:[ebp-0x30],esi
0040377C   .  8985 6CFEFFFF mov dword ptr ss:[ebp-0x194],eax
00403782   .  8D95 54FEFFFF lea edx,dword ptr ss:[ebp-0x1AC]
00403788   .  8D85 64FEFFFF lea eax,dword ptr ss:[ebp-0x19C]
0040378E   .  52            push edx                                 ; /Length8
0040378F   .  68 AB000000   push 0xAB                                ; |Start = AB
00403794   .  8D8D 44FEFFFF lea ecx,dword ptr ss:[ebp-0x1BC]         ; |
0040379A   .  50            push eax                                 ; |dString8
0040379B   .  51            push ecx                                 ; |RetBUFFER
0040379C   .  C785 64FEFFFF>mov dword ptr ss:[ebp-0x19C],0x8         ; |
004037A6   .  FFD7          call edi                                 ; \rtcMidCharVar
004037A8   .  8B45 CC       mov eax,dword ptr ss:[ebp-0x34]
004037AB   .  8D95 14FEFFFF lea edx,dword ptr ss:[ebp-0x1EC]
004037B1   .  8985 2CFEFFFF mov dword ptr ss:[ebp-0x1D4],eax
004037B7   .  52            push edx                                 ; /Length8
004037B8   .  8D85 24FEFFFF lea eax,dword ptr ss:[ebp-0x1DC]         ; |
004037BE   .  68 A6000000   push 0xA6                                ; |Start = A6
004037C3   .  8D8D 04FEFFFF lea ecx,dword ptr ss:[ebp-0x1FC]         ; |
004037C9   .  50            push eax                                 ; |dString8
004037CA   .  51            push ecx                                 ; |RetBUFFER
004037CB   .  C785 1CFEFFFF>mov dword ptr ss:[ebp-0x1E4],0x1         ; |
004037D5   .  899D 14FEFFFF mov dword ptr ss:[ebp-0x1EC],ebx         ; |
004037DB   .  8975 CC       mov dword ptr ss:[ebp-0x34],esi          ; |
004037DE   .  C785 24FEFFFF>mov dword ptr ss:[ebp-0x1DC],0x8         ; |
004037E8   .  FFD7          call edi                                 ; \rtcMidCharVar
004037EA   .  8B45 C8       mov eax,dword ptr ss:[ebp-0x38]
004037ED   .  8D95 D4FDFFFF lea edx,dword ptr ss:[ebp-0x22C]
004037F3   .  8985 ECFDFFFF mov dword ptr ss:[ebp-0x214],eax
004037F9   .  52            push edx                                 ; /Length8
004037FA   .  8D85 E4FDFFFF lea eax,dword ptr ss:[ebp-0x21C]         ; |
00403800   .  68 A8000000   push 0xA8                                ; |Start = A8
00403805   .  8D8D C4FDFFFF lea ecx,dword ptr ss:[ebp-0x23C]         ; |
0040380B   .  50            push eax                                 ; |dString8
0040380C   .  51            push ecx                                 ; |RetBUFFER
0040380D   .  C785 DCFDFFFF>mov dword ptr ss:[ebp-0x224],0x1         ; |
00403817   .  899D D4FDFFFF mov dword ptr ss:[ebp-0x22C],ebx         ; |
0040381D   .  8975 C8       mov dword ptr ss:[ebp-0x38],esi          ; |
00403820   .  C785 E4FDFFFF>mov dword ptr ss:[ebp-0x21C],0x8         ; |
0040382A   .  FFD7          call edi                                 ; \rtcMidCharVar
0040382C   .  8B3D C0614000 mov edi,dword ptr ds:[<&MSVBVM50.__vbaVa>;  MSVBVM50.__vbaVarAdd
00403832   .  8D95 A4FDFFFF lea edx,dword ptr ss:[ebp-0x25C]
00403838   .  8D85 74FFFFFF lea eax,dword ptr ss:[ebp-0x8C]          ;  输入的字符串
0040383E   .  52            push edx                                 ; /var18
0040383F   .  8D8D 44FFFFFF lea ecx,dword ptr ss:[ebp-0xBC]          ; |将字符串连起来而已
00403845   .  50            push eax                                 ; |/var18
00403846   .  8D95 34FFFFFF lea edx,dword ptr ss:[ebp-0xCC]          ; ||
0040384C   .  51            push ecx                                 ; ||var28
0040384D   .  52            push edx                                 ; ||saveto8
0040384E   .  FFD7          call edi                                 ; |\__vbaVarAdd
00403850   .  50            push eax                                 ; |/var18
00403851   .  8D85 04FFFFFF lea eax,dword ptr ss:[ebp-0xFC]          ; ||
00403857   .  8D8D F4FEFFFF lea ecx,dword ptr ss:[ebp-0x10C]         ; ||
0040385D   .  50            push eax                                 ; ||var28
0040385E   .  51            push ecx                                 ; ||saveto8
0040385F   .  FFD7          call edi                                 ; |\__vbaVarAdd
00403861   .  50            push eax                                 ; |/var18
00403862   .  8D95 C4FEFFFF lea edx,dword ptr ss:[ebp-0x13C]         ; ||
00403868   .  8D85 B4FEFFFF lea eax,dword ptr ss:[ebp-0x14C]         ; ||
0040386E   .  52            push edx                                 ; ||var28
0040386F   .  50            push eax                                 ; ||saveto8
00403870   .  FFD7          call edi                                 ; |\__vbaVarAdd
00403872   .  8D8D 84FEFFFF lea ecx,dword ptr ss:[ebp-0x17C]         ; |
00403878   .  50            push eax                                 ; |/var18
00403879   .  8D95 74FEFFFF lea edx,dword ptr ss:[ebp-0x18C]         ; ||
0040387F   .  51            push ecx                                 ; ||var28
00403880   .  52            push edx                                 ; ||saveto8
00403881   .  FFD7          call edi                                 ; |\__vbaVarAdd
00403883   .  50            push eax                                 ; |/var18
00403884   .  8D85 44FEFFFF lea eax,dword ptr ss:[ebp-0x1BC]         ; ||
0040388A   .  8D8D 34FEFFFF lea ecx,dword ptr ss:[ebp-0x1CC]         ; ||
00403890   .  50            push eax                                 ; ||var28
00403891   .  51            push ecx                                 ; ||saveto8
00403892   .  FFD7          call edi                                 ; |\__vbaVarAdd
00403894   .  50            push eax                                 ; |/var18
00403895   .  8D95 04FEFFFF lea edx,dword ptr ss:[ebp-0x1FC]         ; ||
0040389B   .  8D85 F4FDFFFF lea eax,dword ptr ss:[ebp-0x20C]         ; ||
004038A1   .  52            push edx                                 ; ||var28
004038A2   .  50            push eax                                 ; ||saveto8
004038A3   .  FFD7          call edi                                 ; |\__vbaVarAdd
004038A5   .  8D8D C4FDFFFF lea ecx,dword ptr ss:[ebp-0x23C]         ; |
004038AB   .  50            push eax                                 ; |/var18
004038AC   .  51            push ecx                                 ; ||var28
004038AD   .  8D95 B4FDFFFF lea edx,dword ptr ss:[ebp-0x24C]         ; ||
004038B3   .  52            push edx                                 ; ||saveto8
004038B4   .  FFD7          call edi                                 ; |\__vbaVarAdd
004038B6   .  50            push eax                                 ; |var28
004038B7   .  FF15 6C614000 call dword ptr ds:[<&MSVBVM50.__vbaVarTs>; \__vbaVarTstEq
004038BD   .  8BF8          mov edi,eax

每次rtcMidCharVar函数调用完后,eax会是一个地址,内存跟随这个地址,会得到一个variant类型的变量,如:

0012F390  08 00 00 00 00 D1 91 00  ....褢.
0012F398  44 36 16 00 C5 A5 07 74  D6.钮t

再跟随这个163644地址,就会得到一个字符。

00163644  72 00 00 00 00 00 00 00  r.......
0016364C  80 37 16 00 25 00 03 007.%..

刚刚好rctMidCharVar这个函数出现了8次,于是有8个字符。
而后面的vbaVarAdd函数则是将这8个字符合在了一起,变成了字符串。
0040383E位置是我们输入的serial
而在004038B6是那合在一起的8个字符,
后面的vbaVarTstEq函数的作用就不言而喻了。
所以最后那8个字符为:
rkh1oyie
这就是serial了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/376431.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实战MEF(4):搜索范围

在前面的文章中&#xff0c;几乎每个示例我们都会接触到扩展类的搜索位置&#xff0c;我们也不妨想一下&#xff0c;既然是自动扩展&#xff0c;它肯定会有一个或者多人可供查找的位置&#xff0c;不然MEF框架怎么知道哪里有扩展组件呢&#xff1f; 就像我们用导航系统去查找某…

Android应用程序请求SurfaceFlinger服务创建Surface的过程分析

文章转载至CSDN社区罗升阳的安卓之旅&#xff0c;原文地址&#xff1a;http://blog.csdn.net/luoshengyang/article/details/7884628 前面我们已经学习过Android应用程序与SurfaceFlinger服务的连接过程了。连接上SurfaceFlinger服务之后&#xff0c;Android应用程序就可以请求…

160 - 23 Chafe.1

环境 Windows xp sp3 工具 exeinfope ollydbg 查壳 用exeinfoe查壳 测试 可以从左下角状态栏看出serial是无效的 直接OD载入字符串搜索 00401274 |. /75 17 jnz XChafe_1.0040128D 00401276 |. |6A 00 push 0x0 ; /Ti…

160 - 24 Chafe.2

环境&#xff1a; Windows xp sp3 工具 exeinfope OllyDBG 查壳 用exeinfope查壳&#xff0c;发现是没有壳的。 测试 可以看出是从红色框框里面的内容判断serial是否有效 OD载入&#xff0c;字符串搜索可以得到&#xff1a; 004011EC . 55 pus…

十个利用矩阵乘法解决的经典题目

转载自 Matrix67: The Aha Moments 好像目前还没有这方面题目的总结。这几天连续看到四个问这类题目的人&#xff0c;今天在这里简单写一下。这里我们不介绍其它有关矩阵的知识&#xff0c;只介绍矩阵乘法和相关性质。 不要以为数学中的矩阵也是黑色屏幕上不断变化的绿色…

160 - 25 CodeZero.1

环境 Windows xp sp3 工具 exeinfope OllyDBG 查壳 无壳的VB程序 测试 运行程序后出现Nag窗口&#xff0c;所以这次的目标是除Nag窗口和找到serial 程序运行后弹出Nag窗口&#xff0c;并且等待5秒后按钮的标题改成“Continue..”&#xff0c;点击后才会弹出输入seria…

WP8开发学习笔记动态修改启动时导航的第一个页面(如登录前启动页为LoginPage,登录后变为MainPage)...

很多时候我们需要在启动程序的时候根据状态改变初始导航页面&#xff0c;比如程序在启动的时候判断用户是否登录&#xff0c; 如果未登录则跳转到LoginPage.xaml否则跳转到MainPage界面。 这时候就要分析程序的启动和导航的过程。 程序的启动是App.xamlcs负责的。 App类的构造器…

6.数组和Hash表

当显示多条结果时&#xff0c;存储在变量中非常智能&#xff0c;变量类型会自动转换为一个数组。 在下面的例子中&#xff0c;使用GetType()可以看到$a变量已经不是我们常见的string或int类型&#xff0c;而是Object类型&#xff0c;使用-is操作符来判断是否是个数组&#xff0…

160 - 26 Colormaster

环境 Windows xp sp3 查壳 无壳的VB程序 测试&#xff1a; 输入 Name:123456 Serial:12345 字符串搜索&#xff0c;找到判断位置。 判断Name的长度要大于等于5&#xff1a; 00402CBC . 33C9 xor ecx,ecx 00402CBE . 83F8 04 cmp eax,0x4 00…

Android 菜单(OptionMenu)大全 建立你自己的菜单

菜单是用户界面中最常见的元素之一&#xff0c;使用非常频繁&#xff0c;在Android中&#xff0c;菜单被分为如下三种&#xff0c;选项菜单&#xff08;OptionsMenu&#xff09;、上下文菜单&#xff08;ContextMenu&#xff09;和子菜单&#xff08;SubMenu&#xff09;&#…

160 - 27 Cosh.1

环境 Windows XP sp3 工具 exeinfope ollydbg 查壳 无壳的MFC程序 测试 弹出这个&#xff1a; 是一个CD-CHECK保护的程序。 字符串搜索&#xff0c;一下子就能来到这里&#xff1a; 0040121A . 68 9C304000 push Cosh_1.0040309C …

160 - 28 CoSH.2

环境 Windows xp sp3 工具 exeinfope ollydbg 查壳 无壳的MFC程序 测试 输入 Nmae:123456 Serial:12345 点击“CHECK”后弹出错误提示的消息框&#xff0c;然后程序自己结束掉 依然是字符串搜索&#xff1a; 004014DB . 8B1D FC214000 mov ebx,dword ptr ds…

ASP.NET MVC5 + EF6 入门教程 (5) Model和Entity Framework

文章来源&#xff1a; Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-ef-6-get-started-model.html 上一节&#xff1a;ASP.NET MVC 5 入门教程 (4) View和ViewBag 下一节&#xff1a;ASP.NET MVC5 EF6 入门教程 (6) View中的Razor使用 源码下载&#xff1a;点我下…

160 - 29 cosh.3

环境 Windows xp sp3 工具 exeinfope ollydbg 查壳 无壳的MFC程序 测试 字符串搜索&#xff1a; 004014F5 |. E8 AA030000 call <jmp.&MFC42.#CWnd::GetWindowTextLengthA_> 004014FA |. 8945 EC mov [local.5],eax 004014FD |. 837D EC 0…

hdu--4902--线段树

题意 前面一段废话 这题 最有意思的应该是出题人 是clj 这题的时限放的太宽了 给了15s 我也是醉了 区间更新。 1 #include <iostream>2 #include <algorithm>3 using namespace std;4 5 const int size 200010;6 int a[size];7 struct data8 {9 int L , R ,…

(五) 面向对象类设计原则

1. 开闭原则&#xff08;the Open Closed Principle OCP&#xff09; 一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。因此在进行面向对象设计时要尽量考虑接口封装机制、抽象机制和多态技术。该原则同样适合于非面向对象设计的方法&#xff0c;是软件工程 设计…

160 - 30 cracking4all.1

环境 Windows XP sp3 工具 exeinfope ollydbg 查壳 无壳的VB程序 测试 这个serial藏得比较里面&#xff0c;多点几下才能看到 字符串搜索&#xff1a; 00403338 . 50 push eax ; /var18 00403339 . 51 …

MVC5 + EF6 入门完整教程

MVC5 EF6 入门完整教程 原文:MVC5 EF6 入门完整教程第0课 从0开始 ASP.NET MVC开发模式和传统的WebForm开发模式相比&#xff0c;增加了很多"约定"。 直接讲这些 "约定" 会让人困惑&#xff0c;而且东西太多容易忘记。 和微软官方教程不同&#xff0c…

160 - 31 cracking4all.2

环境 Windows xp sp3 工具 exeinfope ollydbg 查壳 无壳VB程序 测试 输入1234567 OD载入字符串搜素&#xff0c;往上翻就看到这里&#xff0c;我截取部分片段&#xff1a; 00402C26 . 8D55 98 lea edx,dword ptr ss:[ebp-0x68] ; 取serial长度…

160 - 32 genocide1

环境 Windows xp sp3 工具 upx exeinfope ollydbg 查壳 发现是upx壳&#xff0c;手脱的话会不干净&#xff0c;影响OD分析。 所以就直接用 upx -d 脱了 手脱&#xff1a; upx -d: 用upx -d 脱的版本进行分析。 第一次运行时显示这个&#xff1a; 缺少Reg.dat…