首页
社区
课程
招聘
[原创]屏蔽一个中断。。。。。。。。。
发表于: 2011-9-7 16:31 4912

[原创]屏蔽一个中断。。。。。。。。。

2011-9-7 16:31
4912
我想屏蔽键盘中断,
思路 HOOK idt 我直接将相关中断函数替换我自己的空函数,然后直接返回。但出现蓝屏,会是什么问题?
VOID __declspec(naked) p2cInterruptProc()
{
//空函数
}
求赐教。。。。。。

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 304
活跃值: (507)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
屏蔽键盘中断需要操作io apic

ULONG ReadPRT(ULONG PRTIndex)
{
        ULONG PRT32;
        __asm
        {
                pushad
                mov        ecx,0xFFD04000;
                mov        eax,PRTIndex;
                add        eax,0x10;
                mov        [ecx],eax;
                mov        eax,[ecx+0x10];
                mov        PRT32,eax;
                popad
        }
        return PRT32;
}

VOID WritePRT(ULONG PRTIndex,ULONG PRTData)
{
        __asm
        {
                pushad
                mov        ecx,0xFFD04000;
                mov        eax,PRTIndex;
                add        eax,0x10;
                mov        [ecx],eax;
                mov        eax,PRTData;
                mov        [ecx+0x10],eax;
                popad
        }
}

WritePRT(1*2,ReadPRT(1*2) | 0x10000);                        //屏蔽键盘中断

WritePRT(1*2,ReadPRT(1*2) & ~0x10000);        //恢复键盘中断
2011-9-8 01:47
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
为什么是0xFFD04000
我看spec写是的0xfec00000
2011-9-8 10:18
0
雪    币: 304
活跃值: (507)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
spec上是物理地址
0xFFD04000是windows映射好的
2011-9-8 10:42
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个是不是会把键盘和鼠标都屏蔽掉?
还有如果屏蔽掉后,我将那位置0,但好像不能恢复中断。
求赐教
2011-9-8 16:41
0
游客
登录 | 注册 方可回帖
返回
//