首页
社区
课程
招聘
[讨论]加了vmp的驱动文件.sys,怎么才能去掉壳子呢?
发表于: 2024-1-28 08:36 5083

[讨论]加了vmp的驱动文件.sys,怎么才能去掉壳子呢?

2024-1-28 08:36
5083

exe或者dll文件,我都知道怎么搞,但是对加了vmp的.sys文件,应该怎么去掉壳子呢?下面这个加了vmp的驱动,彻底难住我了!


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

最后于 2024-1-31 17:38 被kanxue编辑 ,原因:
上传的附件:
收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 119
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
所以 EXE 或者 DLL 该怎么脱掉 VMP 的壳? 不能用同一种方法吗?
2024-1-29 10:33
0
雪    币: 222
活跃值: (148)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
没脱过,只说个思路:
1. 找OEP
GsDriverEntry 就是OEP,一般在 INIT 节
2. oep处下断,windbg dump, .writemem 保存dump
3. 找 IAT内存区,跟普通 PE 一样。
4. 修复 IAT:
   驱动导入的函数一般都在 ntoskrnl或者 hal,记住这两个模块的内存区间。写个脱壳程序,判断 IAT 的地址落在哪个导入模块,然后重建导入表。
如果vmp 加了导入表保护,IAT 里的地址就在本模块,那就 unicorn 模拟执行 IAT 所在地址,跑飞的内存就是 iat的真实地址(一般在 hal和ntoskrnl)
5. 重定位的修复:
想办法让驱动加载两次,且加载到不同地址,每次在 OEP 断下来并 dump。对两次 dump 内存做二进制比较,地址不同的位置就是重定位的地址,然后重建重定位表。(如果只想想看看代码逻辑,那就不用修复重定位)。

最后,如果壳代码有反调试之类,得自己能绕过在 OEP 处能下断点。
2024-1-29 11:00
1
雪    币: 12476
活跃值: (9432)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
其实,加载后直接dump出来,还是能够看个大概的,要是再详细的,那就要对壳下功夫了。
2024-1-29 15:41
0
雪    币: 3213
活跃值: (5439)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
Genes 其实,加载后直接dump出来,还是能够看个大概的,要是再详细的,那就要对壳下功夫了。
可以加个好友?看私信
2024-1-29 20:53
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
ttaggg 没脱过,只说个思路: 1. 找OEP GsDriverEntry 就是OEP,一般在 INIT 节 2. oep处下断,windbg dump, .writemem 保存dump 3. 找 I ...
工具人流程了,哈哈,本来我想说的
2024-1-31 17:14
0
雪    币: 393
活跃值: (515)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
最后结果呢?
2024-7-19 10:04
0
雪    币: 3213
活跃值: (5439)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
franc 最后结果呢?
人家都没理会我,没结果!
2024-7-20 00:08
0
游客
登录 | 注册 方可回帖
返回
//