首页
社区
课程
招聘
[原创]Zprotect Vm代码的2种处理方法
发表于: 2009-9-3 17:58 16632

[原创]Zprotect Vm代码的2种处理方法

2009-9-3 17:58
16632

Zp的VM比较简单,只模拟PUSH和JCC这2种类型指令,其他的全部都是明文保留,用乱序JMP连接.由于没有ANTI DUMP,所以可以补区段,把ZP的SHELL DLL所在区段以及后面的几个段一起补到DUMP+FIX IAT之后之后的程序中即可,包括VISO引擎处理过的代码也可以这样处理,一般脱壳这样也就可以了,如果被处理的代码中有我们感兴趣的地方,于是不得不寻求修复代码的方法.
  
  由于我对VM一无所知,所以我将其当做代码变形来处理.
  
  用DELPHI7编译个空窗体,用ZP1.49 VM掉第三个CALL
  原代码如下:

0044B168 $ 55 push ebp
0044B169 . 8BEC mov ebp,esp
0044B16B . 51 push ecx
0044B16C . 53 push ebx
0044B16D . 56 push esi
0044B16E . 57 push edi

0044B168 /E9 9A5E0100 jmp 00461007 ; 00461007
0044B16D |CC int3
0044B16E |CC int3
0044B16F |CC int3
0044B170 |CC int3
0044B171 |CC int3
0044B172 |CC int3

009D0E0A 9C pushfd
009D0E0B 83EC 3E sub esp,3E
009D0E0E 892424 mov dword ptr ss:[esp],esp
009D0E11 894424 36 mov dword ptr ss:[esp+36],eax
009D0E15 8B4424 42 mov eax,dword ptr ss:[esp+42]
009D0E19 894424 2E mov dword ptr ss:[esp+2E],eax
009D0E1D 8B4424 3E mov eax,dword ptr ss:[esp+3E]
009D0E21 894424 0C mov dword ptr ss:[esp+C],eax
009D0E25 894C24 26 mov dword ptr ss:[esp+26],ecx
009D0E29 895424 3A mov dword ptr ss:[esp+3A],edx
009D0E2D 895C24 18 mov dword ptr ss:[esp+18],ebx
009D0E31 896C24 08 mov dword ptr ss:[esp+8],ebp
009D0E35 897424 14 mov dword ptr ss:[esp+14],esi
009D0E39 897C24 10 mov dword ptr ss:[esp+10],edi
009D0E3D 830424 46 add dword ptr ss:[esp],46
009D0E41 54 push esp
009D0E42 E8 18FFFFFF call 009D0D5F ; 009D0D5F
009D0E47 C3 retn

009D0BAB /75 29 jnz short 009D0BD6 ; 009D0BD6
009D0BAD |8B0D A4669D00 mov ecx,dword ptr ds:[9D66A4] ; dumped_2.00A14258
009D0BB3 |03C1 add eax,ecx
009D0BB5 |56 push esi
009D0BB6 |8946 1C mov dword ptr ds:[esi+1C],eax
009D0BB9 |FF15 70669D00 call dword ptr ds:[9D6670] ; dumped_2.00A50744
009D0BBF |8B46 20 mov eax,dword ptr ds:[esi+20]
009D0BC2 |85C3 test ebx,eax
009D0BC4 |74 05 je short 009D0BCB ; 009D0BCB
009D0BC6 |23C5 and eax,ebp
009D0BC8 |8946 20 mov dword ptr ds:[esi+20],eax
009D0BCB |807E 24 01 cmp byte ptr ds:[esi+24],1
009D0BCF |74 15 je short 009D0BE6 ; 009D0BE6
009D0BD1 |8B46 20 mov eax,dword ptr ds:[esi+20]
009D0BD4 ^|EB D3 jmp short 009D0BA9 ; 009D0BA9

00A5A863 8BFF mov edi,edi
00A5A865 E9 7A210000 jmp 00A5C9E4 ; 00A5C9E4

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (19)
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
路过的顶一下
2009-9-3 19:27
0
雪    币: 451
活跃值: (78)
能力值: ( LV12,RANK:470 )
在线值:
发帖
回帖
粉丝
3
在第一页来膜拜
2009-9-3 20:54
0
雪    币: 280
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我只见过一次这东西
不是很明白
支持支持
2009-9-3 21:00
0
雪    币: 330
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
强大,学习了。。。
2009-9-3 22:52
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
作者可以 教下我嘛  谢谢
2009-9-13 11:40
0
雪    币: 237
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
认真学习一下
2009-9-14 17:15
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢,分享楼主学习成果。
2009-9-16 21:29
0
雪    币: 334
活跃值: (22)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
支持小kunkun
2009-9-16 21:44
0
雪    币: 142
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
可惜我不懂,要学习学习.
2009-9-17 02:02
0
雪    币: 324
活跃值: (10)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
11
看不懂,路过膜拜下
2010-1-22 13:13
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
收藏学习  收藏学习
2010-1-23 22:31
0
雪    币: 97697
活跃值: (200834)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
13
Thanks for share.
2010-1-23 22:52
0
雪    币: 137
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
学习一下……第一次涉及~~~~~
2010-1-25 20:45
0
雪    币: 199
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
看不懂vvvvvvvvv
2010-1-27 16:40
0
雪    币: 1136
活跃值: (683)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
希望LZ把VM处理过程教教我等菜鸟
现在碰到一程序用ZP加壳,壳已脱掉但是部分代码被VM
主要是需要的代码在被VM的里面

怎么修改主程序,强迫它不变形啊?
2010-3-23 22:08
0
雪    币: 142
活跃值: (22)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
17
不过还是写个脚本来完成才是最好,手动就是体力活。。。。
2010-4-8 08:54
0
雪    币: 1731
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
看下!下来学习下!顶
2010-4-26 09:38
0
雪    币: 1731
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
我也是懂一点!呵呵
2010-4-28 06:22
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
强大呀~~~~~
2010-5-1 22:50
0
游客
登录 | 注册 方可回帖
返回
//