首页
社区
课程
招聘
[求助]破解vb程序的几个问题
发表于: 2008-1-5 00:00 5387

[求助]破解vb程序的几个问题

2008-1-5 00:00
5387
0045A3C0    55              push    ebp                    ;问题1,怎样才能知道程序从哪里跳到这里?
0045A3C1    8BEC            mov     ebp, esp
0045A3C3    83EC 0C         sub     esp, 0C
0045A3C6    68 F6294000     push    <jmp.&MSVBVM60.__vbaEx>
0045A3CB    64:A1 00000000  mov     eax, dword ptr fs:[0]
0045A3D1    50              push    eax
0045A3D2    64:8925 0000000>mov     dword ptr fs:[0], esp
0045A3D9    83EC 0C         sub     esp, 0C
0045A3DC    53              push    ebx
0045A3DD    56              push    esi
0045A3DE    57              push    edi
0045A3DF    8965 F4         mov     dword ptr [ebp-C], esp
0045A3E2    C745 F8 E014400>mov     dword ptr [ebp-8], 004>
0045A3E9    8B75 08         mov     esi, dword ptr [ebp+8]
0045A3EC    8BC6            mov     eax, esi
0045A3EE    83E0 01         and     eax, 1
0045A3F1    8945 FC         mov     dword ptr [ebp-4], eax
0045A3F4    83E6 FE         and     esi, FFFFFFFE
0045A3F7    56              push    esi
0045A3F8    8975 08         mov     dword ptr [ebp+8], esi
0045A3FB    8B0E            mov     ecx, dword ptr [esi]
0045A3FD    FF51 04         call    dword ptr [ecx+4]      ; MSVBVM60.Zombie_AddRef
0045A400    8B16            mov     edx, dword ptr [esi]
0045A402    56              push    esi
0045A403    FF92 1C070000   call    dword ptr [edx+71C]    ; Calculat.0040941E
                                                           ;这里好像根据edx的值跳往不同的地方
                                                           ;这里实际是跳到0040941E
                                                           ;而0040941E是一个跳转,跳到00458B80
                                                           ;而00458B80以下的代码其实是一个
                                                           ;你没有注册的警告。
                                                           ;问题2,怎么跳过这个警告去执行正确的代码?
0045A409    85C0            test    eax, eax
0045A40B    7D 12           jge     short 0045A41F
0045A40D    68 1C070000     push    71C
0045A412    68 1CA84000     push    0040A81C
0045A417    56              push    esi
0045A418    50              push    eax
0045A419    FF15 90104000   call    dword ptr [<&MSVBVM60.>; MSVBVM60.__vbaHresultCheckObj
0045A41F    C745 FC 0000000>mov     dword ptr [ebp-4], 0
0045A426    8B45 08         mov     eax, dword ptr [ebp+8]

0040941E   /E9 5DF70400     jmp     00458B80
00409423   |816C24 04 63000>sub     dword ptr [esp+4], 63
0040942B   |E9 60F80400     jmp     00458C90
00409430   |816C24 04 5B010>sub     dword ptr [esp+4], 15B
00409438   |E9 B3060500     jmp     00459AF0
0040943D   |816C24 04 4B010>sub     dword ptr [esp+4], 14B
00409445   |E9 E6070500     jmp     00459C30
0040944A   |816C24 04 8B000>sub     dword ptr [esp+4], 8B
00409452   |E9 19090500     jmp     00459D70
00409457   |816C24 04 27010>sub     dword ptr [esp+4], 127

00458B80    55              push    ebp
00458B81    8BEC            mov     ebp, esp
00458B83    83EC 0C         sub     esp, 0C
00458B86    68 F6294000     push    <jmp.&MSVBVM60.__vbaEx>
00458B8B    64:A1 00000000  mov     eax, dword ptr fs:[0]
00458B91    50              push    eax
00458B92    64:8925 0000000>mov     dword ptr fs:[0], esp
00458B99    81EC 88000000   sub     esp, 88
00458B9F    53              push    ebx
00458BA0    56              push    esi
00458BA1    57              push    edi
00458BA2    8965 F4         mov     dword ptr [ebp-C], esp
00458BA5    C745 F8 9013400>mov     dword ptr [ebp-8], 004>
00458BAC    33F6            xor     esi, esi
00458BAE    8975 FC         mov     dword ptr [ebp-4], esi
00458BB1    8B45 08         mov     eax, dword ptr [ebp+8]
00458BB4    50              push    eax
00458BB5    8B08            mov     ecx, dword ptr [eax]
00458BB7    FF51 04         call    dword ptr [ecx+4]      ; (Initial CPU selection)
00458BBA    B9 04000280     mov     ecx, 80020004
00458BBF    8975 DC         mov     dword ptr [ebp-24], es>
00458BC2    8975 CC         mov     dword ptr [ebp-34], es>
00458BC5    8975 BC         mov     dword ptr [ebp-44], es>
00458BC8    8975 AC         mov     dword ptr [ebp-54], es>
00458BCB    8975 9C         mov     dword ptr [ebp-64], es>
00458BCE    8975 8C         mov     dword ptr [ebp-74], es>
00458BD1    8B35 24124000   mov     esi, dword ptr [<&MSVB>; MSVBVM60.__vbaVarDup
00458BD7    894D B4         mov     dword ptr [ebp-4C], ec>
00458BDA    B8 0A000000     mov     eax, 0A
00458BDF    894D C4         mov     dword ptr [ebp-3C], ec>
00458BE2    BF 08000000     mov     edi, 8
00458BE7    8D55 8C         lea     edx, dword ptr [ebp-74>
00458BEA    8D4D CC         lea     ecx, dword ptr [ebp-34>
00458BED    8945 AC         mov     dword ptr [ebp-54], ea>
00458BF0    8945 BC         mov     dword ptr [ebp-44], ea>
00458BF3    C745 94 F8BE400>mov     dword ptr [ebp-6C], 00>; Information
00458BFA    897D 8C         mov     dword ptr [ebp-74], ed>
00458BFD    FFD6            call    esi
00458BFF    8D55 9C         lea     edx, dword ptr [ebp-64>
00458C02    8D4D DC         lea     ecx, dword ptr [ebp-24>
00458C05    C745 A4 60BE400>mov     dword ptr [ebp-5C], 00>; This function is only available in the registered version of

CalculatorX.
00458C0C    897D 9C         mov     dword ptr [ebp-64], ed>
00458C0F    FFD6            call    esi
00458C11    8D55 AC         lea     edx, dword ptr [ebp-54>
00458C14    8D45 BC         lea     eax, dword ptr [ebp-44>
00458C17    52              push    edx
00458C18    8D4D CC         lea     ecx, dword ptr [ebp-34>
00458C1B    50              push    eax
00458C1C    51              push    ecx
00458C1D    8D55 DC         lea     edx, dword ptr [ebp-24>
00458C20    6A 40           push    40
00458C22    52              push    edx
00458C23    FF15 BC104000   call    dword ptr [<&MSVBVM60.>; MSVBVM60.rtcMsgBox
00458C29    8D45 AC         lea     eax, dword ptr [ebp-54>
00458C2C    8D4D BC         lea     ecx, dword ptr [ebp-44>
00458C2F    50              push    eax
00458C30    8D55 CC         lea     edx, dword ptr [ebp-34>
00458C33    51              push    ecx
00458C34    8D45 DC         lea     eax, dword ptr [ebp-24>
00458C37    52              push    edx
00458C38    50              push    eax
00458C39    6A 04           push    4

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
2
ctrl+g 0045A3C0 ctrl+redx 那个是vfptr,不会变吧
2008-1-5 01:04
0
雪    币: 10815
活跃值: (3714)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
0045A3C0应该是一个call
但不知这个call在哪里调用?
2008-1-5 08:54
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
汇编 0045A403 这句,jmp 00409423 ~00409452,分别试试.
2008-1-5 22:07
0
雪    币: 10815
活跃值: (3714)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
楼上说的可能是没有办法的办法,jmp太多的话可能会比较麻烦。这本来是一个vb程序,依我想这可能是作者后来故意弄成这样的,很明显这里应该是一个条件跳转。
很有就是问题1。能否在执行到0045A3C0前一句停下来?
2008-1-5 22:47
0
游客
登录 | 注册 方可回帖
返回
//