能力值:
( LV1,RANK:0 )
|
-
-
2 楼
########## @版主,该问题没找到解决办法,已申诉但无效,请求关贴退回赏金,谢谢
最后于 2023-5-20 17:23
被迷人的win编辑
,原因: 修改
|
能力值:
(RANK:15 )
|
-
-
3 楼
其实和Windows自身的关系不大,并且你的问题并不清晰,并不清楚你想要什么中断 软件中断只会出现在自身核心,程序使用INT n来触发 硬件中断来自于Local APIC,通过ICR可以使某个核心发生想要的中断 而注册ISR则是为IDT添加中断门,这样还可能会触发Windows的PatchGuard 如果看不懂的话,还是建议先去储备x86的知识
|
能力值:
( LV12,RANK:312 )
|
-
-
4 楼
迷人的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
被一半人生编辑
,原因:
|
能力值:
( LV1,RANK:0 )
|
-
-
5 楼
はつゆき
其实和Windows自身的关系不大,并且你的问题并不清晰,并不清楚你想要什么中断
软件中断只会出现在自身核心,程序使用INT n来触发
硬件中断来自于Local APIC,通过ICR可以使某个核心 ...
感谢大佬回复 我补充下问题哈,我想要做的是 给硬件中断注册ISR; 再详细点就是,在windows驱动里,我通过写msr寄存器的方式给某个cpu发送硬中断,然后为该硬中断注册ISR,现在的问题就是,不知道怎么为这个硬中断注册ISR; 请教下哈,您说的“为IDT添加中断门”,是可以为硬中断注册ISR的吧?这个我在驱动里添加代码就能实现的么?还有就是,我不使用0-31号中断也可能触发PatchGuard么?请大佬指点
|
能力值:
(RANK:15 )
|
-
-
6 楼
迷人的win
感谢大佬回复[em_65] 我补充下问题哈,我想要做的是 给硬件中断注册ISR;
再详细点就是,在windows驱动里,我通过写msr寄存器的方式给某个cpu发送硬中断,然后为该硬中断注册ISR,现 ...
为中断注册ISR,指的就是为IDT添加条目,具体可以参考Intel手册卷3A的第6章 PatchGuard只在Windows x64下开启,保护的应该是整个IDT范围,也就是IDTR的Base~Limit 在不考虑使用VT-x的情况下,可以选择使用32位操作系统,或者双机调试下进行修改也不会触发PatchGuard
|
能力值:
( LV1,RANK:0 )
|
-
-
7 楼
|
能力值:
( LV1,RANK:0 )
|
-
-
8 楼
はつゆき
为中断注册ISR,指的就是为IDT添加条目,具体可以参考Intel手册卷3A的第6章
PatchGuard只在Windows x64下开启,保护的应该是整个IDT范围,也就是IDTR的Base~Li ...
OK大佬 我学习下intel文档 那我想在windows驱动里,直接给IDT添加条目,来注册自己的ISR,可行不?
|
能力值:
(RANK:15 )
|
-
-
9 楼
迷人的win
OK大佬 我学习下intel文档[em_63]
那我想在windows驱动里,直接给IDT添加条目,来注册自己的ISR,可行不?
不考虑patchguard的情况下可行
|
能力值:
( LV1,RANK:0 )
|
-
-
10 楼
はつゆき
不考虑patchguard的情况下可行
我的开发环境是windows x64,按照您的意思 应该是会触发PatchGuard的; 那我如何合法得添加IDT条目呢?就是不会触发PatchGuard的、注册的ISR受系统保护的那种,大佬有思路没?
|
能力值:
(RANK:15 )
|
-
-
11 楼
迷人的win
我的开发环境是windows x64,按照您的意思 应该是会触发PatchGuard的;
那我如何合法得添加IDT条目呢?就是不会触发PatchGuard的、注册的ISR受系统保护的那种,大佬有思路 ...
挂上内核调试器就不会触发PatchGuard了
|
能力值:
( LV12,RANK:312 )
|
-
-
12 楼
学术项目显然大多数院校是不通过,一般有水准的院校都会卡临界点的,因为技术性在常规下不可行,没有通用性和可行性。以前有朋友写过一篇自建SSDT, HOOK Msr来做安全监控论文,可行性就被bypass了,问题在于是否可以在通用环境下正常使用。 如果说过了PG,那我认为单纯过PG这个课题估计就可以写多篇论文了。
|
能力值:
( LV1,RANK:0 )
|
-
-
13 楼
はつゆき
挂上内核调试器就不会触发PatchGuard了 我需要在通用环境下注册ISR,在每台环境上都挂上内核调试器不太能实现 简单总结下,就是说 在X64环境下 修改IDT表并且不触发pg是不可行的了?是这个意思么,大佬 那我还有个疑问,windows那些合法的硬中断ISR是怎么注册上去的呢
最后于 2022-12-5 10:01
被迷人的win编辑
,原因:
|
能力值:
( LV4,RANK:50 )
|
-
-
14 楼
你和其他硬件中断共享IDT的entry不行么?
|
能力值:
( LV3,RANK:30 )
|
-
-
15 楼
迷人的win
はつゆき
挂上内核调试器就不会触发PatchGuard了 我需要在通用环境下注册ISR,在每台环境上都挂上内核调试器不太能实现简单总结下,就是说 ...
windows能注册ISR是因为在系统引导过程就注册了呀,PG也是进行校验引导之后的ISR有没有改变。 我可以x64环境下合法注册ISR,但是有缺陷,无法全局影响Idt表,你感兴趣我可以给你说下
|
能力值:
(RANK:15 )
|
-
-
16 楼
Oxygen1a1
windows能注册ISR是因为在系统引导过程就注册了呀,PG也是进行校验引导之后的ISR有没有改变。
我可以x64环境下合法注册ISR,但是有缺陷,无法全局影响Idt表,你感兴趣我可以给你说下
怕不是典中典之伪造页表
|
能力值:
( LV1,RANK:0 )
|
-
-
17 楼
fengyunabc
你和其他硬件中断共享IDT的entry不行么?
具体是要怎么做的呀大佬?我就是想给某个硬中断号注册ISR,共享entry是怎么实现的呢
|
能力值:
( LV1,RANK:0 )
|
-
-
18 楼
|
能力值:
( LV1,RANK:0 )
|
-
-
19 楼
はつゆき
怕不是典中典之伪造页表[em_8]
伪造页表可以实现注册ISR么,难度大不大呀?
|
能力值:
( LV1,RANK:0 )
|
-
-
20 楼
一半人生
学术项目显然大多数院校是不通过,一般有水准的院校都会卡临界点的,因为技术性在常规下不可行,没有通用性和可行性。以前有朋友写过一篇自建SSDT, HOOK Msr来做安全监控论文,可行性就被bypass ...
感谢大佬提醒 ,确实是需要在通用环境下、使用常规合法的技术手段实现,才有意义
|
能力值:
(RANK:15 )
|
-
-
21 楼
迷人的win
[em_78]伪造页表可以实现注册ISR么,难度大不大呀?
这也不叫合法,不想上VT的话就挂上内核调试器
|
能力值:
( LV3,RANK:30 )
|
-
-
22 楼
はつゆき
怕不是典中典之伪造页表[em_8]
对
|
能力值:
( LV3,RANK:30 )
|
-
-
23 楼
迷人的win
大佬求指导,如何在x64下合法注册ISR,展开说说可以不?
“但是有缺陷,无法全局影响Idt表”,这个缺陷是啥,会影响ISR的执行么?
[em_67][em_67][em_67]
就是只能单个程序注册isr 其他都不受影响 无法全局注册
|
能力值:
( LV1,RANK:0 )
|
-
-
24 楼
Oxygen1a1
就是只能单个程序注册isr 其他都不受影响 无法全局注册
可以可以,单个程序注册ISR 能响应中断就可以,具体要怎么做呢?
|
能力值:
( LV1,RANK:0 )
|
-
-
25 楼
Oxygen1a1
就是只能单个程序注册isr 其他都不受影响 无法全局注册
大佬,这个合法注册ISR的方法能展开说说不,万分感谢
|
|
|