| 
注册时间2010-2-1
阅读权限30
最后登录1970-1-1UID65321 龙战于野 
 
 TA的每日心情|  | 怒 2021-3-15 02:34
 | 
|---|
 签到天数: 347 天 [LV.8]以坛为家I | 
 
| PEiD扫描下: Nothing found 查看区段 有vmp字样
 
 OD载入来到此处:
 00427B98 >  68 7E91C596     push 96C5917E
 00427B9D    E8 29A60000     call 网页反限.004321CB
 00427BA2    D1E8            shr eax,1
 00427BA4    55              push ebp
 00427BA5  ^ E9 ACC2FFFF     jmp 网页反限.00423E56
 00427BAA    01D8            add eax,ebx
 
 F8单步一下,然后对esp数据窗口跟随:
 0012FFC0  96C5917E
 0012FFC4  7C817077  返回到 kernel32.7C817077
 0012FFC8  7C930228  ntdll.7C930228
 对0012FFC0处下硬件访问断点
 然后就是F9运行了…
 一次中断:
 0043324A    68 CAE2F381     push 81F3E2CA
 0043324F    C60424 CE       mov byte ptr ss:[esp],0CE
 00433253    F7DE            neg esi
 00433255    60              pushad
 二次中断:
 004331FF    F9              stc
 00433200    83C5 04         add ebp,4
 00433203    9C              pushfd
 
 //直到最后一次用户空间代码00432A08处
 00432A08    FF7424 14       push dword ptr ss:[esp+14]               ; 网页反限.0043265C
 00432A0C    9C              pushfd
 00432A0D    9C              pushfd
 00432A0E    8D6424 3C       lea esp,dword ptr ss:[esp+3C]
 00432A12  ^ E9 C1FEFFFF     jmp 网页反限.004328D8
 接着删除硬件断点, 然后再对代码段下F2断点…
 来到这里:
 004012A0      FF            db FF
 004012A1      25            db 25                                    ;  CHAR '%'
 004012A2      9C            db 9C
 004012A3      10            db 10
 004012A4      40            db 40                                    ;  CHAR '@'
 004012A5      00            db 00
 004012A6      00            db 00
 004012A7      00            db 00
 去除分析:
 0040126A  - FF25 BC104000   jmp dword ptr ds:[4010BC]                ; MSVBVM60.__vbaFreeObj
 00401270  - FF25 20104000   jmp dword ptr ds:[401020]                ; MSVBVM60.__vbaHresultCheckObj
 00401276  - FF25 28104000   jmp dword ptr ds:[401028]                ; MSVBVM60.__vbaObjSet
 0040127C  - FF25 44104000   jmp dword ptr ds:[401044]                ; MSVBVM60.__vbaGenerateBoundsError
 00401282  - FF25 8C104000   jmp dword ptr ds:[40108C]                ; MSVBVM60.__vbaStrCopy
 00401288  - FF25 50104000   jmp dword ptr ds:[401050]                ; MSVBVM60.__vbaRedim
 0040128E  - FF25 60104000   jmp dword ptr ds:[401060]                ; MSVBVM60.EVENT_SINK_QueryInterface
 00401294  - FF25 40104000   jmp dword ptr ds:[401040]                ; MSVBVM60.EVENT_SINK_AddRef
 0040129A  - FF25 54104000   jmp dword ptr ds:[401054]                ; MSVBVM60.EVENT_SINK_Release
 004012A0  - FF25 9C104000   jmp dword ptr ds:[40109C]   //停到此处             ; MSVBVM60.ThunRTMain
 004012A6    0000            add byte ptr ds:[eax],al
 004012A8    68 EC2DC596     push 96C52DEC
 004012AD    E8 95F60100     call 网页反限.00420947
 
 
 我们知道
 Push xxxxx
 Call  yyyyy是VB程序的入口地址
 那么就来查找一下字符串:
 VB5(VB程序的特征)
 点击M, 进入内存镜像,选择右键搜索”VB5”
 结果在0040E2A4处找到特征码
 0040E2A4  56 42 35 21 36 26 76 62  VB5!6&vb
 0040E2AC  36 63 68 73 2E 64 6C 6C  6chs.dll
 0040E2B4  00 00 00 00 2A 00 00 00  ....*...
 接着把OEP修复下就OK了.
 004012A8    68 EC2DC596     push 0040E2A4
 004012AD    E8 95F60100     call  004012A0
 然后设置004012A8处为新的EIP
 ,此时DUMP出来,再用ImportRec修复下就OK了.
 用PeiD扫描下;
 Microsoft Visual Basic 5.0 / 6.0
 运行下,成功运行… 版本比较低,也比较简单… 很适合我这种新手,呵呵
 | 
 |