首页
社区
课程
招聘
[未解决,已结帖] 已结帖 100.00雪花
2022-12-3 11:15 12759

[未解决,已结帖] 已结帖 100.00雪花

2022-12-3 11:15
12759

已结帖


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2023-6-30 14:35 被迷人的win编辑 ,原因: 已结帖
收藏
点赞1
打赏
分享
最新回复 (48)
雪    币: 228
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
迷人的win 2022-12-3 15:39
2
0

##########

@版主,该问题没找到解决办法,已申诉但无效,请求关贴退回赏金,谢谢

最后于 2023-5-20 17:23 被迷人的win编辑 ,原因: 修改
雪    币: 1641
活跃值: (3601)
能力值: (RANK:15 )
在线值:
发帖
回帖
粉丝
はつゆき 2022-12-3 20:11
3
2
其实和Windows自身的关系不大,并且你的问题并不清晰,并不清楚你想要什么中断
软件中断只会出现在自身核心,程序使用INT n来触发
硬件中断来自于Local APIC,通过ICR可以使某个核心发生想要的中断
而注册ISR则是为IDT添加中断门,这样还可能会触发Windows的PatchGuard
如果看不懂的话,还是建议先去储备x86的知识
雪    币: 5330
活跃值: (11740)
能力值: ( LV12,RANK:312 )
在线值:
发帖
回帖
粉丝
一半人生 5 2022-12-4 08:34
4
1
迷人的win 或者说,在windows的WDF驱动里,如何给某个CPU发送中断,并且注册ISR来相应这个中断呢?看了windows驱动的文档,WDF框架的中断注册流程有点复杂,貌似还要获取PCI资源什么的,搞不大懂 ...

研究生搞搞Intel vt,用vt来管理中断的退出事件。Windows x64下做IDT(Interrupt Descriptor Table) HOOK,也就是你说的记录ISR处理表,如果你直接替换或者inlinehook了这些地址,你可以理解为只读权限,不允许做任何添加和替换,不然Win下PG Crc检测会失败系统蓝屏。

最后于 2022-12-4 08:35 被一半人生编辑 ,原因:
雪    币: 228
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
迷人的win 2022-12-4 21:18
5
1
はつゆき 其实和Windows自身的关系不大,并且你的问题并不清晰,并不清楚你想要什么中断 软件中断只会出现在自身核心,程序使用INT n来触发 硬件中断来自于Local APIC,通过ICR可以使某个核心 ...
感谢大佬回复 我补充下问题哈,我想要做的是 给硬件中断注册ISR;
再详细点就是,在windows驱动里,我通过写msr寄存器的方式给某个cpu发送硬中断,然后为该硬中断注册ISR,现在的问题就是,不知道怎么为这个硬中断注册ISR;
请教下哈,您说的“为IDT添加中断门”,是可以为硬中断注册ISR的吧?这个我在驱动里添加代码就能实现的么?还有就是,我不使用0-31号中断也可能触发PatchGuard么?请大佬指点
雪    币: 1641
活跃值: (3601)
能力值: (RANK:15 )
在线值:
发帖
回帖
粉丝
はつゆき 2022-12-4 21:36
6
1
迷人的win 感谢大佬回复[em_65] 我补充下问题哈,我想要做的是 给硬件中断注册ISR; 再详细点就是,在windows驱动里,我通过写msr寄存器的方式给某个cpu发送硬中断,然后为该硬中断注册ISR,现 ...
为中断注册ISR,指的就是为IDT添加条目,具体可以参考Intel手册卷3A的第6章
PatchGuard只在Windows x64下开启,保护的应该是整个IDT范围,也就是IDTR的Base~Limit
在不考虑使用VT-x的情况下,可以选择使用32位操作系统,或者双机调试下进行修改也不会触发PatchGuard
雪    币: 228
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
迷人的win 2022-12-4 21:38
7
1
一半人生 迷人的win 或者说,在windows的WDF驱动里,如何给某个CPU发送中断,并且注册ISR来相应这个中断呢?看了windows驱动的文档,WD ...
感谢大佬回复
大佬您好,我搞的这个课题因为驱动里的一些需求特性,关掉了vt(您说的vt是Virtualization Technology虚拟化技术吧?),那还能“用vt来管理中断的退出事件”么?vt管理中断退出事件,意思是可以通过vt实现ISR的注册么?
请教下哈,“不允许做任何添加和替换,不然Win下PG Crc检测会失败系统蓝屏”,意思是,不能直接在IDT中添加自己的ISR么?请大佬指点
雪    币: 228
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
迷人的win 2022-12-4 22:14
8
1
はつゆき 为中断注册ISR,指的就是为IDT添加条目,具体可以参考Intel手册卷3A的第6章 PatchGuard只在Windows x64下开启,保护的应该是整个IDT范围,也就是IDTR的Base~Li ...
OK大佬 我学习下intel文档
那我想在windows驱动里,直接给IDT添加条目,来注册自己的ISR,可行不?
雪    币: 1641
活跃值: (3601)
能力值: (RANK:15 )
在线值:
发帖
回帖
粉丝
はつゆき 2022-12-4 22:27
9
1
迷人的win OK大佬 我学习下intel文档[em_63] 那我想在windows驱动里,直接给IDT添加条目,来注册自己的ISR,可行不?
不考虑patchguard的情况下可行
雪    币: 228
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
迷人的win 2022-12-4 23:02
10
1
はつゆき 不考虑patchguard的情况下可行
我的开发环境是windows x64,按照您的意思 应该是会触发PatchGuard的;
那我如何合法得添加IDT条目呢?就是不会触发PatchGuard的、注册的ISR受系统保护的那种,大佬有思路没?
雪    币: 1641
活跃值: (3601)
能力值: (RANK:15 )
在线值:
发帖
回帖
粉丝
はつゆき 2022-12-4 23:33
11
1
迷人的win 我的开发环境是windows x64,按照您的意思 应该是会触发PatchGuard的; 那我如何合法得添加IDT条目呢?就是不会触发PatchGuard的、注册的ISR受系统保护的那种,大佬有思路 ...
挂上内核调试器就不会触发PatchGuard了
雪    币: 5330
活跃值: (11740)
能力值: ( LV12,RANK:312 )
在线值:
发帖
回帖
粉丝
一半人生 5 2022-12-5 09:13
12
1
学术项目显然大多数院校是不通过,一般有水准的院校都会卡临界点的,因为技术性在常规下不可行,没有通用性和可行性。以前有朋友写过一篇自建SSDT, HOOK Msr来做安全监控论文,可行性就被bypass了,问题在于是否可以在通用环境下正常使用。
如果说过了PG,那我认为单纯过PG这个课题估计就可以写多篇论文了。
雪    币: 228
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
迷人的win 2022-12-5 09:59
13
1
はつゆき 挂上内核调试器就不会触发PatchGuard了

我需要在通用环境下注册ISR,在每台环境上都挂上内核调试器不太能实现
简单总结下,就是说 在X64环境下 修改IDT表并且不触发pg是不可行的了?是这个意思么,大佬

那我还有个疑问,windows那些合法的硬中断ISR是怎么注册上去的呢

最后于 2022-12-5 10:01 被迷人的win编辑 ,原因:
雪    币: 3350
活跃值: (3372)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
fengyunabc 1 2022-12-5 10:26
14
1
你和其他硬件中断共享IDT的entry不行么?
雪    币: 1664
活跃值: (4300)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
Oxygen1a1 2022-12-5 10:41
15
1
迷人的win はつゆき 挂上内核调试器就不会触发PatchGuard了 我需要在通用环境下注册ISR,在每台环境上都挂上内核调试器不太能实现简单总结下,就是说 ...
windows能注册ISR是因为在系统引导过程就注册了呀,PG也是进行校验引导之后的ISR有没有改变。
我可以x64环境下合法注册ISR,但是有缺陷,无法全局影响Idt表,你感兴趣我可以给你说下
雪    币: 1641
活跃值: (3601)
能力值: (RANK:15 )
在线值:
发帖
回帖
粉丝
はつゆき 2022-12-5 12:13
16
1
Oxygen1a1 windows能注册ISR是因为在系统引导过程就注册了呀,PG也是进行校验引导之后的ISR有没有改变。 我可以x64环境下合法注册ISR,但是有缺陷,无法全局影响Idt表,你感兴趣我可以给你说下
怕不是典中典之伪造页表
雪    币: 228
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
迷人的win 2022-12-5 12:32
17
1
fengyunabc 你和其他硬件中断共享IDT的entry不行么?
具体是要怎么做的呀大佬?我就是想给某个硬中断号注册ISR,共享entry是怎么实现的呢
雪    币: 228
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
迷人的win 2022-12-5 12:35
18
1
Oxygen1a1 windows能注册ISR是因为在系统引导过程就注册了呀,PG也是进行校验引导之后的ISR有没有改变。 我可以x64环境下合法注册ISR,但是有缺陷,无法全局影响Idt表,你感兴趣我可以给你说下
大佬求指导,如何在x64下合法注册ISR,展开说说可以不?
“但是有缺陷,无法全局影响Idt表”,这个缺陷是啥,会影响ISR的执行么?
雪    币: 228
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
迷人的win 2022-12-5 12:36
19
1
はつゆき 怕不是典中典之伪造页表[em_8]
伪造页表可以实现注册ISR么,难度大不大呀?
雪    币: 228
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
迷人的win 2022-12-5 12:39
20
1
一半人生 学术项目显然大多数院校是不通过,一般有水准的院校都会卡临界点的,因为技术性在常规下不可行,没有通用性和可行性。以前有朋友写过一篇自建SSDT, HOOK Msr来做安全监控论文,可行性就被bypass ...
感谢大佬提醒,确实是需要在通用环境下、使用常规合法的技术手段实现,才有意义
雪    币: 1641
活跃值: (3601)
能力值: (RANK:15 )
在线值:
发帖
回帖
粉丝
はつゆき 2022-12-5 13:27
21
1
迷人的win [em_78]伪造页表可以实现注册ISR么,难度大不大呀?
这也不叫合法,不想上VT的话就挂上内核调试器
雪    币: 1664
活跃值: (4300)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
Oxygen1a1 2022-12-5 14:29
22
1
はつゆき 怕不是典中典之伪造页表[em_8]
对 
雪    币: 1664
活跃值: (4300)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
Oxygen1a1 2022-12-5 14:31
23
1
迷人的win 大佬求指导,如何在x64下合法注册ISR,展开说说可以不? “但是有缺陷,无法全局影响Idt表”,这个缺陷是啥,会影响ISR的执行么? [em_67][em_67][em_67]
就是只能单个程序注册isr 其他都不受影响 无法全局注册
雪    币: 228
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
迷人的win 2022-12-5 15:01
24
1
Oxygen1a1 就是只能单个程序注册isr 其他都不受影响 无法全局注册
可以可以,单个程序注册ISR 能响应中断就可以,具体要怎么做呢?
雪    币: 228
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
迷人的win 2022-12-5 20:44
25
1
Oxygen1a1 就是只能单个程序注册isr 其他都不受影响 无法全局注册
大佬,这个合法注册ISR的方法能展开说说不,万分感谢
游客
登录 | 注册 方可回帖
返回