首页
社区
课程
招聘
[求助]多核下取IDT
发表于: 2008-12-1 07:20 6657

[求助]多核下取IDT

2008-12-1 07:20
6657
__asm  sidt  idt_info可以取得中断描述表信息,
挂上自己的地址就可以HOOK啦,
请问多核下的IDT表如何取得呢?

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
2
基本各核心上IDT都是一样的~担心不一样的话可以使用设置亲和性或者SET PROCESSOR DPC的方式读取~
2008-12-1 09:22
0
雪    币: 331
活跃值: (57)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
能否再说的细一点……
2008-12-1 14:05
0
雪    币: 232
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
每个核心的IDT基址位置不同,sidt指令在多核CPU中反复执行会得到多个值的,具体是什么要看执行指令时是哪个核心在工作。
向二楼说的,可以设置亲和性:打开任务管理器,进程中找到你的程序,右键“关系设置...”,只保留CPU 0的话取的就是第一个核心的,保留CPU 1同理。
2008-12-1 20:19
0
雪    币: 952
活跃值: (2151)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
NTKERNELAPI VOID KeSetAffinityThread(IN PKTHREAD pKThread, IN KAFFINITY Affinity);

int nAffinity = KeNumberProcessors;
        KIRQL OldIrql;

        do
        {
                KeSetAffinityThread( KeGetCurrentThread(), nAffinity);
                KeRaiseIrql(HIGH_LEVEL, &OldIrql);
                __asm  sidt  idt_info
                                ...
                KeLowerIrql(OldIrql);
                nAffinity --;
        } while ( nAffinity );
2008-12-1 22:46
0
雪    币: 272
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
1.暴力搜索也可以
2.有2个内核函数里面能找到
2008-12-2 09:22
0
雪    币: 331
活跃值: (57)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
7
4楼的任务管理器似乎不能设置线程的亲和性,
5楼的方法真不错……
2008-12-2 10:13
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
eek:
2008-12-2 19:39
0
游客
登录 | 注册 方可回帖
返回