首页
课程
问答
CTF
社区
招聘
看雪峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
看雪峰会
看雪商城
证书查询
看雪社区
加壳脱壳
发新帖
6
0
[求助]关于VMP的pacth hash的问题
2016-2-6 23:57
7266
[求助]关于VMP的pacth hash的问题
signed
2016-2-6 23:57
7266
程序修改导入表会触发校验
我手上有一个程序是VMP加密的
在两处pacth了
一处是gethash处pacth
不是直接在程序里修改 而是call了自己dll的函数进来
一处是在nor8处pacth
请教下这个补丁的原理是如何的?
如何过VMP的文件校验?
path过的程序:http://pan.baidu.com/s/1pKemIbL
未path过的程序:http://pan.baidu.com/s/1ZTHTG
谢谢!
[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法
收藏
・
6
点赞
・
0
打赏
分享
分享到微信
分享到QQ
分享到微博
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
最新回复
(
4
)
xed
雪 币:
129
活跃值:
(323)
能力值:
( LV3,RANK:20 )
在线值:
发帖
18
回帖
214
粉丝
2
关注
私信
xed
2016-2-7 03:36
2
楼
0
什么版本 2.x吗。
t uts4you上有crc讲解
那个论坛右上角有搜索 Vmprotect
我也在研究VMP、可Q我一起研究
同时感谢4楼提供的资料
signed
雪 币:
211
活跃值:
(732)
能力值:
( LV2,RANK:10 )
在线值:
发帖
6
回帖
22
粉丝
0
关注
私信
signed
2016-2-7 09:49
3
楼
0
可否提供下连接 谢谢 新春快乐!
MistHill
雪 币:
626
活跃值:
(668)
能力值:
( LV9,RANK:270 )
在线值:
发帖
25
回帖
276
粉丝
37
关注
私信
MistHill
6
2016-2-11 11:41
4
楼
0
VMProtect的校验有四部分。
1. 文件校验(File Check)
有个表,通常这个表只有4条记录。每个记录的字段依次为:校验的文件偏移Offset、校验的长度Length及校验和Hash。
这3个字段都是加密的,算法被V了,需要读懂反虚拟化的代码才能找出各自的算法。
对这个表本身没有校验。
通过APIs:CreateFile, CreateFileMapping, MapViewOfFile来定位校验的位置。
2. 内存校验(Memory Check #1)
这个与文件校验基本相同,当前被载入模块(Exe或Dll)的内存映像作为校验内容,所以各记录的第一个字段为加密的RVA。
各VMP版本,表的长度不同。若加密的RVA解密后为-0x1,则校验表结束,其它为垃圾表项。
这个表本身是有校验的,Hash保存在壳段的某个地方,可以改。
另外,校验发生在目标原来的各区段解密、解压缩之前,所以本质上仍然是“文件校验”。
3. 内存校验(Memory Check #2)
表结构与上面一样,但校验发生在目标解密、解压缩之后,这是真正意义上的内存校验。
即表项的内容用于校验壳代码和用户代码、数据。
这个表比第一个内存校验要大很多,同样以解密后的RVA为-0x1表示表结束。
最关键的是,表本身的校验Hash是Handler压栈的一个IMM32,没法直接修改。所以最简单的办法就是Patch一下GetHash Handler。
上面三种校验构成了VMProtect的一个SDK函数:VMProtectIsValidImageCRC。
即壳代码部分会隐式调用VMProtectIsValidImageCRC()来进行目标的完整性检查。
这部分很多人都知道,也讨论得比较多。
4. 随机内存校验(Random Memory Check)
这个对应于VMProtect的一个功能“VM Integrity Check”。
校验表与上面的不同:第一字段仍然为加密的RVA,第二字段为未加密的一字节长度,第三字段为Hash的NEG。
表项个数不定,由vPushImm2压栈。表本身没有校验。
这个校验发生在用户代码中被虚拟化的函数或代码片段里,每次用vRdtsc“随机”取一条记录来进行校验。主要用来保护用户的代码和数据。
校验未通过的话,不会报错,目标直接崩溃。好象以前只有SE的作者提到过这个校验。
更详细的讨论和具体例子可参阅我在t4y的回复。
[InlineMe] VMProtect IsValidImageCRC()
和
[DevirtualizeMe] VMProtect 2.13.5
祝各位春节快乐!
signed
雪 币:
211
活跃值:
(732)
能力值:
( LV2,RANK:10 )
在线值:
发帖
6
回帖
22
粉丝
0
关注
私信
signed
2016-2-11 15:43
5
楼
0
感谢 终于看到你的中文版了。我在T4U也看到了你给别人的回复 新年快乐!
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
signed
6
发帖
22
回帖
10
RANK
关注
私信
他的文章
[分享]Leak of some Bing , Bing Maps and Cortana source code
4309
Samsung Leak
8153
[求助]怎么在内核保护系统回调
3021
[求助]关于VMP的pacth hash的问题
7267
[求助]VMP脱壳的疑惑
7024
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
返回
顶部