首页
社区
课程
招聘
[求助]对vmp进行 sys驱动加壳使用的的疑惑
发表于: 2023-5-12 19:51 8529

[求助]对vmp进行 sys驱动加壳使用的的疑惑

2023-5-12 19:51
8529

我写了一个sys驱动,里面使用了
VMProtectDDK.h 里的
VMProtectBegin()
VMProtectEnd()
对一个函数进行了保护,
编译后的sys 我并没有进行使用 vmp 对sys文件执行加壳
只是签名了下,发现可以 安装服务 ,
但是却在执行 CreateFileA 这一步 时候 失败了,请问是什么 导致的?

 

我又做了尝试另外一个尝试,去掉函数里使用的 VMProtectBegin() 和
VMProtectEnd(),编译后的sys驱动文件签名后,
却可以正常 执行 CreateFileA 这一步,并且正常使用驱动。

 

无论是使用 VMProtectBegin()和 VMProtectEnd() 的sys 驱动文件

 

还是不使用 VMProtectBegin() 和 VMProtectEnd() 的sys驱动文件,
2个都没有进行 使用 VMProtect.exe 对它们加壳编译,
都只是进行了数字签名,然后进行 安装,但是执行 启动 时候 却是失败的。

 

为什么没有使用 VMProtectBegin()和 VMProtectEnd() 的sys 驱动文件却能正常启动 CreateFileA 这一步,

 

而使用了VMProtectBegin()和 VMProtectEnd() 的sys 驱动文件
却不能执行CreateFileA 这一步呢

 

百思不得其解!希望大神指点下,在线等!!!!

 

我用的是 vs2022,相关lib 都设置好了,编译没有任何报错提示!


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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 852
活跃值: (9821)
能力值: ( LV13,RANK:385 )
在线值:
发帖
回帖
粉丝
2
文件被破坏了吧. 这个参考下VMP的 代码实现. 猜测大概率就是下个标记.你使用VMP加壳软件加壳的时候他会找到这块标记.然后修复. 修复完你再签名就能用了. 
2023-5-12 19:57
0
雪    币: 128
活跃值: (947)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
可是我还没给sys进行 VMP加壳软件加壳,只是sys源码里一个函数 引用了  VMProtectBegin()和 VMProtectEnd() 

vs2019编译出来的驱动文件sys ,也会被破坏吗?

我先试试你说的,给使用的 VMProtectBegin()和 VMProtectEnd()  的sys 执行vmp软件加壳 后签名试试,看驱动加载 工具,安装后 能不能 启动 成功这步
2023-5-12 20:13
0
雪    币: 128
活跃值: (947)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
TkBinary 文件被破坏了吧. 这个参考下VMP的 代码实现. 猜测大概率就是下个标记.你使用VMP加壳软件加壳的时候他会找到这块标记.然后修复. 修复完你再签名就能用了.
可是我还没给sys进行 VMP加壳软件加壳,只是sys源码里一个函数 引用了  VMProtectBegin()和 VMProtectEnd() 

vs2019编译出来的驱动文件sys ,也会被破坏吗?

我先试试你说的,给使用的 VMProtectBegin()和 VMProtectEnd()  的sys 执行vmp软件加壳 后签名试试,看驱动加载 工具,安装后 能不能 启动 成功这步
2023-5-12 20:13
0
雪    币: 2492
活跃值: (1675)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
简单理解都是PE文件,你可以弄个EXE,加入那些 后 (SDK) 看看能不能运行,一个原因。
2023-5-13 02:55
0
雪    币: 14823
活跃值: (6058)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
用IDA反汇编,看一下代码不就明白了?
2023-5-13 09:15
0
雪    币: 7527
活跃值: (5362)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7

2023-5-13 17:45
0
雪    币: 852
活跃值: (9821)
能力值: ( LV13,RANK:385 )
在线值:
发帖
回帖
粉丝
8
我的研究 可是我还没给sys进行 VMP加壳软件加壳,只是sys源码里一个函数 引用了 VMProtectBegin()和 VMProtectEnd() vs2019编译出来的驱动文件sys ,也会被 ...
我的猜想是. 你使用了它的库.  在使用 vmpbegin() 和 end()的时候. 在那个位置定义了一段自定义的代码.此代码可以理解为就是字节码.不能被执行的. 自己的一个标记. 但是你编译是可以正常编译的. 运行的时候不符合PE文件(类似损坏) 当你用它的加壳软件加壳的时候.它会读取自己的标记位置.然后删除标记.并且把你 begin()和end()的这块代码给vmp了. 详情原理需要自己反汇编看看文件. 在你引入begin()的位置.
2023-5-15 10:19
0
雪    币: 405
活跃值: (2260)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
用了SDK,在没有加壳得情况下,你导入了他的SYS,而他的sys 没签名,所以加载不了,不过你可以把他的驱动拷贝到当前目录,或者SYSTEM DRIVER目录下,系统启动的时候选择禁止签名加载。
2023-5-16 11:40
0
游客
登录 | 注册 方可回帖
返回
//