wangkaicj
驱动牛犊
驱动牛犊
  • 注册日期2002-01-08
  • 最后登录2014-06-11
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望67点
  • 贡献值0点
  • 好评度66点
  • 原创分0分
  • 专家分0分
阅读:4268回复:20

求助:谁会hook中断处理程序?

楼主#
更多 发布于:2007-02-26 22:36
   谁会hook中断处理程序?

APIC 搞晕了,请大牛讲讲吧,怎样才能HOOK APIC机制下的中断处理程序(windows环境),最好能举个例子,多谢了!

感激不尽!
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
沙发#
发布于:2007-02-26 22:51
...APIC下硬中断,还是软的?
硬的映射并读取IDT号,然后和软的一样,软的IDT号基本固定~
没有战争就没有进步 X3工作组 为您提供最好的军火
wangkaicj
驱动牛犊
驱动牛犊
  • 注册日期2002-01-08
  • 最后登录2014-06-11
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望67点
  • 贡献值0点
  • 好评度66点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-02-26 23:04
多谢killvxk老大!

“硬的映射并读取IDT号”能否详细些?有没有什么资料可以参考一下??
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
地板#
发布于:2007-02-27 02:42
APIC貌似很多资料可以参考~
没有战争就没有进步 X3工作组 为您提供最好的军火
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
地下室#
发布于:2007-02-27 02:46
就是跟物理IoBase: 0xFEC00000
打交道而已,你看看google上的东西吧~太多了~
MmMapIoSpace一下,剩下就是文档上的东西了~
没有战争就没有进步 X3工作组 为您提供最好的军火
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
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);
}
没有战争就没有进步 X3工作组 为您提供最好的军火
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
6楼#
发布于:2007-02-27 08:58
在AMD芯片组上有问题,在INTEL多核心上也不对,仅限单核心INTEL芯片组,谁有完美点的解决方案???
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
7楼#
发布于:2007-02-27 09:02
引用第6楼wowocock2007-02-27 08:58发表的“”:
在AMD芯片组上有问题,在INTEL多核心上也不对,仅限单核心INTEL芯片组,谁有完美点的解决方案???

完美拿Hal~~
没有战争就没有进步 X3工作组 为您提供最好的军火
xikug
驱动小牛
驱动小牛
  • 注册日期2001-09-25
  • 最后登录2013-09-27
  • 粉丝1
  • 关注0
  • 积分1001分
  • 威望169点
  • 贡献值0点
  • 好评度168点
  • 原创分1分
  • 专家分0分
8楼#
发布于:2007-02-27 09:16
引用第6楼wowocock2007-02-27 08:58发表的“”:
在AMD芯片组上有问题,在INTEL多核心上也不对,仅限单核心INTEL芯片组,谁有完美点的解决方案???


看看np keycrypt的那个npkcrypt.sys
http://www.debugman.com
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
9楼#
发布于:2007-02-27 09:22
引用第8楼xikug2007-02-27 09:16发表的“”:


看看np keycrypt的那个npkcrypt.sys

老兄,他是调用HalGetInterruptVector来获得中断的,有什么用?还得找HAL的麻烦......
 
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
wuyanfeng
驱动小牛
驱动小牛
  • 注册日期2003-08-26
  • 最后登录2011-05-06
  • 粉丝0
  • 关注0
  • 积分1002分
  • 威望127点
  • 贡献值0点
  • 好评度103点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-02-27 09:29
理论上来讲,要比这个复杂一些.
首先要判断 cpu 是否支持 APIC
如果支持,判断APIC功能是否开启
如果开启 要获的 ioapic 的物理地址
然后有2种方法获得 ioapic 物理地址对应的线性地址.
一个是 MmMapIoSpace ,另外一个就是自己反查页目录和页表.找到线形地址.
只要知道线形地址一切就好办了.
看文档就可以了.
但读写都要按 dword 方式读
附件名称/大小 下载次数 最后更新
TestDriver.rar (50KB)  41 2007-02-27 09:29
xikug
驱动小牛
驱动小牛
  • 注册日期2001-09-25
  • 最后登录2013-09-27
  • 粉丝1
  • 关注0
  • 积分1001分
  • 威望169点
  • 贡献值0点
  • 好评度168点
  • 原创分1分
  • 专家分0分
11楼#
发布于:2007-02-27 09:56
引用第9楼wowocock2007-02-27 09:22发表的“”:

老兄,他是调用HalGetInterruptVector来获得中断的,有什么用?还得找HAL的麻烦......
 


我说这个的意思就是,要HOOK IRQL中断,从HalGetInterruptVector获得中断比较稳定,想走APIC我觉得太不稳了,正如wowo说的,多核处理器,amd, intel芯片组上都可能会不一样,另外系统的内存模式不同apic被映射的地方也可能不同,太复杂了。。。目前还没见到一种走APIC的完美方案
http://www.debugman.com
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
12楼#
发布于:2007-02-27 11:01
引用第10楼wuyanfeng2007-02-27 09:29发表的“”:
理论上来讲,要比这个复杂一些.
首先要判断 cpu 是否支持 APIC
如果支持,判断APIC功能是否开启
如果开启 要获的 ioapic 的物理地址
然后有2种方法获得 ioapic 物理地址对应的线性地址.
.......

利用那个固定地址...好方法~
没有战争就没有进步 X3工作组 为您提供最好的军火
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
13楼#
发布于:2007-02-27 11:16
那个固定地址也有问题,你多测试些其他主板芯片组看看.....
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
xikug
驱动小牛
驱动小牛
  • 注册日期2001-09-25
  • 最后登录2013-09-27
  • 粉丝1
  • 关注0
  • 积分1001分
  • 威望169点
  • 贡献值0点
  • 好评度168点
  • 原创分1分
  • 专家分0分
14楼#
发布于:2007-02-27 11:17
固定地址在非4G系统上多半都要出问题。。。
http://www.debugman.com
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
15楼#
发布于:2007-02-27 13:19
引用第13楼wowocock2007-02-27 11:16发表的“”:
那个固定地址也有问题,你多测试些其他主板芯片组看看.....

果然~
没有战争就没有进步 X3工作组 为您提供最好的军火
wuyanfeng
驱动小牛
驱动小牛
  • 注册日期2003-08-26
  • 最后登录2011-05-06
  • 粉丝0
  • 关注0
  • 积分1002分
  • 威望127点
  • 贡献值0点
  • 好评度103点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2007-02-28 10:49
引用第15楼killvxk2007-02-27 13:19发表的“”:

果然~

那些芯片组上是不能用用固定地址的?
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
17楼#
发布于:2007-02-28 13:54
我拿了台老机器p3时代的本子,咔嚓就蓝屏了~
芯片组没看~
没有战争就没有进步 X3工作组 为您提供最好的军火
wuyanfeng
驱动小牛
驱动小牛
  • 注册日期2003-08-26
  • 最后登录2011-05-06
  • 粉丝0
  • 关注0
  • 积分1002分
  • 威望127点
  • 贡献值0点
  • 好评度103点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2007-03-01 08:45
引用第17楼killvxk2007-02-28 13:54发表的“”:
我拿了台老机器p3时代的本子,咔嚓就蓝屏了~
芯片组没看~

这个蓝了也有可能,有一些 p3 是不支持 apic 的.我的程序里面应该先检测是否支持APIC.然后在用那个
固定地址的. 帮忙看看是否支持APIC,我一会儿传一个测试程序给你,有空帮忙看看. 很多BIOS里面也可以禁止使用APIC的.
zzq191
驱动中牛
驱动中牛
  • 注册日期2001-08-09
  • 最后登录2018-05-29
  • 粉丝17
  • 关注0
  • 积分1041分
  • 威望716点
  • 贡献值0点
  • 好评度318点
  • 原创分0分
  • 专家分0分
  • 社区居民
19楼#
发布于:2007-03-01 08:49
我写过一个对APIC操作的,结果很容易就蓝屏
QQ:416331891,承接windows下应用和驱动的开发,雅虎通:zzq191, Email:zzq191@21cn.com
上一页
游客

返回顶部