首页
论坛
课程
招聘
[求助]VT保护进程为什么要Keunstack之后重新Kestack
2021-9-27 20:19 7503

[求助]VT保护进程为什么要Keunstack之后重新Kestack

2021-9-27 20:19
7503

https://bbs.pediy.com/thread-261800.htm
这篇文章写的挺好,主要是看雪很少有这方面的文章,里面的FuckCr3函数中,有一段代码我感到很奇怪

1
2
3
4
__writecr3(NowCr3);
      KeUnstackDetachProcess(a);
      KeStackAttachProcess(FakeEproc, a);
      __writecr3(vmm_cr3);

第一个问题,为什么要停止附加进程后再次附加,别人读我的进程要切换我的进程的cr3了,我直接把cr3赋给其他值不就可以了吗
第二个问题,就算要停止附加,也要在guest机的线程里面停止,但是KeGetCurrentThread()获取的不是host机的线程吗,难道说host和guest在一个线程里?


【公告】 讲师招募 | 全新“预付费”模式,不想来试试吗?

收藏
点赞0
打赏
分享
最新回复 (7)
雪    币: 430
活跃值: 活跃值 (1188)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
萌克力 活跃值 2021-9-27 23:06
2
0

111

最后于 2021-9-30 01:12 被萌克力编辑 ,原因: 1111
雪    币: 10997
活跃值: 活跃值 (5073)
能力值: ( LV9,RANK:270 )
在线值:
发帖
回帖
粉丝
hzqst 活跃值 3 2021-9-28 09:19
3
1
在vmmhandler里面调kernel API尤其是涉及上下文切换、内存分配等高危API的,有一个算一个不用看全都是玩具,看个乐子就行,真上生产环境了你会发现除了你自己能用别人都是蓝屏。
雪    币: 68
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
sanqiu 活跃值 2021-9-30 00:52
4
0
萌克力 __writecr3(NowCr3);        & ...
我感觉不unstack,只切换cr3的话,应该也不会蓝屏吧,反而调用这三个API(包括Getxxx)会消耗性能
雪    币: 68
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
sanqiu 活跃值 2021-9-30 00:54
5
0
hzqst 在vmmhandler里面调kernel API尤其是涉及上下文切换、内存分配等高危API的,有一个算一个不用看全都是玩具,看个乐子就行,真上生产环境了你会发现除了你自己能用别人都是蓝屏。
嗯是的,我想实现一个不使用ept就可以保护三环进程的方法,毕竟ept太消耗性能了,用着一卡一卡的,有什么好的思路吗
雪    币: 430
活跃值: 活跃值 (1188)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
萌克力 活跃值 2021-9-30 01:11
6
0
sanqiu 我感觉不unstack,只切换cr3的话,应该也不会蓝屏吧,反而调用这三个API(包括Getxxx)会消耗性能
当我没说
雪    币: 430
活跃值: 活跃值 (1188)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
萌克力 活跃值 2021-9-30 01:15
7
0
hzqst 在vmmhandler里面调kernel API尤其是涉及上下文切换、内存分配等高危API的,有一个算一个不用看全都是玩具,看个乐子就行,真上生产环境了你会发现除了你自己能用别人都是蓝屏。
饭都快吃完了
雪    币: 220
活跃值: 活跃值 (216)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mataoyong 活跃值 2022-4-25 07:30
8
0
我试了一下vmmhandler里面切换进程会蓝屏。尝试了一下KPROCESS->DirectoryTableBase,然后用x64页表解析方式把虚拟地址对应到物理地址,直接对物理地址进行操作。不需要切换进程这种东西。但是有个问题mmmapiospace这个狗屎听说在win10高一点的宝贝下,用去映射cr3里面的这些物理地址会失败,这个没尝试过
游客
登录 | 注册 方可回帖
返回