阅读:4268回复:20
求助:谁会hook中断处理程序?
谁会hook中断处理程序?
APIC 搞晕了,请大牛讲讲吧,怎样才能HOOK APIC机制下的中断处理程序(windows环境),最好能举个例子,多谢了! 感激不尽! |
|
沙发#
发布于:2007-02-26 22:51
...APIC下硬中断,还是软的?
硬的映射并读取IDT号,然后和软的一样,软的IDT号基本固定~ |
|
|
板凳#
发布于:2007-02-26 23:04
多谢killvxk老大!
“硬的映射并读取IDT号”能否详细些?有没有什么资料可以参考一下?? |
|
地板#
发布于:2007-02-27 02:42
APIC貌似很多资料可以参考~
|
|
|
地下室#
发布于:2007-02-27 02:46
就是跟物理IoBase: 0xFEC00000
打交道而已,你看看google上的东西吧~太多了~ MmMapIoSpace一下,剩下就是文档上的东西了~ |
|
|
5楼#
发布于:2007-02-27 02:49
//贴段代码~郁闷阿~
void DumpIRQTable() { int i; unsigned char j; unsigned char *pIoRegSel; unsigned char *pIoWin; unsigned char ch; PHYSICAL_ADDRESS phys; PVOID pAddr; phys.u.LowPart = 0xFEC00000; pAddr = MmMapIoSpace(phys, 0x14, MmNonCached); if (pAddr == NULL) return 0; pIoRegSel = (unsigned char *)pAddr; pIoWin = (unsigned char *)(pAddr) + 0x10; for (i = 0, j = 0x10; i <= 0x17; i++, j += 2) { *pIoRegSel = j; ch = *pIoWin; DbgPrint("RedTbl[%02d]: 0x%02X\n", i, ch); } MmUnmapIoSpace(pAddr, 0x14); } |
|
|
6楼#
发布于:2007-02-27 08:58
在AMD芯片组上有问题,在INTEL多核心上也不对,仅限单核心INTEL芯片组,谁有完美点的解决方案???
|
|
|
7楼#
发布于:2007-02-27 09:02
引用第6楼wowocock于2007-02-27 08:58发表的“”: 完美拿Hal~~ |
|
|
8楼#
发布于:2007-02-27 09:16
引用第6楼wowocock于2007-02-27 08:58发表的“”: 看看np keycrypt的那个npkcrypt.sys |
|
|
9楼#
发布于:2007-02-27 09:22
引用第8楼xikug于2007-02-27 09:16发表的“”: 老兄,他是调用HalGetInterruptVector来获得中断的,有什么用?还得找HAL的麻烦...... |
|
|
10楼#
发布于:2007-02-27 09:29
理论上来讲,要比这个复杂一些.
首先要判断 cpu 是否支持 APIC 如果支持,判断APIC功能是否开启 如果开启 要获的 ioapic 的物理地址 然后有2种方法获得 ioapic 物理地址对应的线性地址. 一个是 MmMapIoSpace ,另外一个就是自己反查页目录和页表.找到线形地址. 只要知道线形地址一切就好办了. 看文档就可以了. 但读写都要按 dword 方式读 |
|
|
11楼#
发布于:2007-02-27 09:56
引用第9楼wowocock于2007-02-27 09:22发表的“”: 我说这个的意思就是,要HOOK IRQL中断,从HalGetInterruptVector获得中断比较稳定,想走APIC我觉得太不稳了,正如wowo说的,多核处理器,amd, intel芯片组上都可能会不一样,另外系统的内存模式不同apic被映射的地方也可能不同,太复杂了。。。目前还没见到一种走APIC的完美方案 |
|
|
12楼#
发布于:2007-02-27 11:01
引用第10楼wuyanfeng于2007-02-27 09:29发表的“”: 利用那个固定地址...好方法~ |
|
|
13楼#
发布于:2007-02-27 11:16
那个固定地址也有问题,你多测试些其他主板芯片组看看.....
|
|
|
14楼#
发布于:2007-02-27 11:17
固定地址在非4G系统上多半都要出问题。。。
|
|
|
15楼#
发布于:2007-02-27 13:19
引用第13楼wowocock于2007-02-27 11:16发表的“”: 果然~ |
|
|
16楼#
发布于:2007-02-28 10:49
引用第15楼killvxk于2007-02-27 13:19发表的“”: 那些芯片组上是不能用用固定地址的? |
|
17楼#
发布于:2007-02-28 13:54
我拿了台老机器p3时代的本子,咔嚓就蓝屏了~
芯片组没看~ |
|
|
18楼#
发布于:2007-03-01 08:45
引用第17楼killvxk于2007-02-28 13:54发表的“”: 这个蓝了也有可能,有一些 p3 是不支持 apic 的.我的程序里面应该先检测是否支持APIC.然后在用那个 固定地址的. 帮忙看看是否支持APIC,我一会儿传一个测试程序给你,有空帮忙看看. 很多BIOS里面也可以禁止使用APIC的. |
|
19楼#
发布于:2007-03-01 08:49
我写过一个对APIC操作的,结果很容易就蓝屏
|
|
|
上一页
下一页