首页
社区
课程
招聘
[讨论]hook rdtsc 在win10下怎样处理rdtscp
发表于: 2019-4-22 13:25 7621

[讨论]hook rdtsc 在win10下怎样处理rdtscp

2019-4-22 13:25
7621
最近在调试一程序,里面大量使用了rdtsc搞的很狼狈,于是搜索资料想在驱动里hook掉rdtsc一劳永逸

方法是置位cr4的tsd标志,使r3调用到rdtsc进入gp保护,然后hook idt 0xd在里面过滤rdtst,修改rdx rax就ok了

在win7 64位下这个驱动跑的很正常,但是换到win10就出问题了,虚拟机运行是直接重启,物理机运行是卡死

x64 hook idt会触发pg,暂时不考虑pg问题,经过调试定位到出现问题的位置是应用层的services.exe调用到rdtscp这一指令导致的,读到0xFFFFFFFFFFFFFFFF内存,该进程挂掉了,由于是系统关键进程,所以整个系统就卡死了(vmware中是被直接重启),于是查了rdtscp的资料
相关说明如下:

#GP(0)  If the TSD flag in register CR4 is set and the CPL is greater than 0. 
对照我这个情况 TSD置位了, services.exe 运行在R3,CPL=3,符合 #GP(0) ,于是我在0xd里面加上对rdtscp的处理,结果还是一样

搞了几天还是搞不定这个问题,在本论坛看到@小宝的这个帖子 

https://bbs.pediy.com/thread-212786.htm 

情况有点类似,但他是用的vt,我很少写驱动,不熟悉,VT对我来说太复杂, 请问各位前辈, 这个问题不用VT的话该如何处理







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

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 914
活跃值: (2473)
能力值: ( LV5,RANK:68 )
在线值:
发帖
回帖
粉丝
2
能过PG的都牛逼
2019-4-22 14:09
0
雪    币: 128
活跃值: (709)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不会 但是帮顶下  希望有大佬 前来解决
2019-4-23 18:49
0
雪    币: 128
活跃值: (709)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不会 但是帮顶下  希望有大佬 前来解决
2019-4-23 18:49
0
雪    币: 6691
活跃值: (953)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
万能的看雪  哪位前辈知道怎样处理这问题吗  @小宝
2019-4-24 11:48
0
雪    币: 9626
活跃值: (1838)
能力值: ( LV5,RANK:73 )
在线值:
发帖
回帖
粉丝
6
@肾虚公子
2019-4-26 13:57
0
雪    币: 1042
活跃值: (500)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
rdtsc cpuid 啥的解决了,就可以终结易之盾了。
2019-5-1 02:16
0
雪    币: 6691
活跃值: (953)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
bang姐来分析下? @Rookietp
2019-5-1 18:22
0
雪    币: 1042
活跃值: (500)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
gdleave bang姐来分析下? @Rookietp
研究下VT。
2019-5-2 21:57
0
雪    币: 248
活跃值: (3789)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
rdtsc和rdtscp有什么不同?
再就是,win7下调用rdtscp会不会跟win10一样出问题?
2019-5-3 01:08
0
雪    币: 9626
活跃值: (1838)
能力值: ( LV5,RANK:73 )
在线值:
发帖
回帖
粉丝
11
yy虫子yy rdtsc和rdtscp有什么不同? 再就是,win7下调用rdtscp会不会跟win10一样出问题?
Caution
Unlike rdtsc, rdtscp is a serializing instruction; nevertheless, the compiler can move code around this intrinsic.

https://docs.microsoft.com/en-us/cpp/intrinsics/rdtscp?view=vs-2019
2019-5-3 01:57
0
雪    币: 248
活跃值: (3789)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
win7 64位真机下,一会直接重启了
没有蓝屏没有卡死,也确定不是PG
是cpu多核会冲突吗?
2020-3-30 04:36
0
游客
登录 | 注册 方可回帖
返回
//