小菜也脱VMP
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数据窗口跟随:
0012FFC096C5917E
0012FFC47C817077返回到 kernel32.7C817077
0012FFC87C930228ntdll.7C930228
对0012FFC0处下硬件访问断点
然后就是F9运行了…
一次中断:
0043324A 68 CAE2F381 push 81F3E2CA
0043324F C60424 CE mov byte ptr ss:,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: ; 网页反限.0043265C
00432A0C 9C pushfd
00432A0D 9C pushfd
00432A0E 8D6424 3C lea esp,dword ptr ss:
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: ; MSVBVM60.__vbaFreeObj
00401270- FF25 20104000 jmp dword ptr ds: ; MSVBVM60.__vbaHresultCheckObj
00401276- FF25 28104000 jmp dword ptr ds: ; MSVBVM60.__vbaObjSet
0040127C- FF25 44104000 jmp dword ptr ds: ; MSVBVM60.__vbaGenerateBoundsError
00401282- FF25 8C104000 jmp dword ptr ds: ; MSVBVM60.__vbaStrCopy
00401288- FF25 50104000 jmp dword ptr ds: ; MSVBVM60.__vbaRedim
0040128E- FF25 60104000 jmp dword ptr ds: ; MSVBVM60.EVENT_SINK_QueryInterface
00401294- FF25 40104000 jmp dword ptr ds: ; MSVBVM60.EVENT_SINK_AddRef
0040129A- FF25 54104000 jmp dword ptr ds: ; MSVBVM60.EVENT_SINK_Release
004012A0- FF25 9C104000 jmp dword ptr ds: //停到此处 ; MSVBVM60.ThunRTMain
004012A6 0000 add byte ptr ds:,al
004012A8 68 EC2DC596 push 96C52DEC
004012AD E8 95F60100 call 网页反限.00420947
我们知道
Push xxxxx
Callyyyyy是VB程序的入口地址
那么就来查找一下字符串:
VB5(VB程序的特征)
点击M, 进入内存镜像,选择右键搜索”VB5”
结果在0040E2A4处找到特征码
0040E2A456 42 35 21 36 26 76 62VB5!6&vb
0040E2AC36 63 68 73 2E 64 6C 6C6chs.dll
0040E2B400 00 00 00 2A 00 00 00....*...
接着把OEP修复下就OK了.
004012A8 68 EC2DC596 push 0040E2A4
004012AD E8 95F60100 call004012A0
然后设置004012A8处为新的EIP
,此时DUMP出来,再用ImportRec修复下就OK了.
用PeiD扫描下;
Microsoft Visual Basic 5.0 / 6.0
运行下,成功运行… 版本比较低,也比较简单… 很适合我这种新手,呵呵 使用vmp加壳的人,能把这个壳用成这样,真是厉害啊。。。 我知道了,谢谢楼主的介绍,再接再厉,更上一层楼。 进来学习一下 VB的能运行,为啥易语言弄起来不能运行呢/:L 菜鸟看到VMP,直接垃圾站见。 膜拜下 还是停留在初级的脱壳水平 进来学习一下
干的不错 学习感谢分享 现在VMP的壳越来越多了,有必要好好研究一下了。
页:
[1]
2