能力值:
( LV2,RANK:10 )
26 楼
顶了再看 。
能力值:
( LV2,RANK:10 )
27 楼
好文!不得不顶!!!
顶完发现顶过了
能力值:
( LV3,RANK:20 )
28 楼
看了看论坛集成的电子书和CHM
不过还是要来顶下这个帖子
例子层层递进 由浅入深
讲解的很详细 谢谢了
能力值:
( LV2,RANK:10 )
29 楼
学习了 谢谢!!!
能力值:
( LV2,RANK:10 )
30 楼
代码太长太深奥。记号。慢慢看
能力值:
( LV2,RANK:10 )
31 楼
顶一下,写得不错。
能力值:
( LV2,RANK:10 )
32 楼
IDT HOOK我测试的情况是,在单核CPU运行正常;
双核CPU会出错!能讲一讲多核CPU的实现吗?
能力值:
( LV2,RANK:10 )
33 楼
如果中断门选择子不为8,挂中断后跳转回原中断例程应该怎么处理,比如对CS,DS的处理。
能力值:
( LV2,RANK:10 )
34 楼
世界就需要你这样的人
能力值:
( LV2,RANK:10 )
35 楼
我们可以利用指令sigt读出IDTR寄存器中的信息
这句是不是应该改成sidt啊
能力值:
( LV2,RANK:10 )
36 楼
想请教下,那个task gate也可以Hook吗?
这个的结构好像只有选择子,没有偏移地址
能力值:
( LV2,RANK:10 )
37 楼
真心喜欢。
能力值:
( LV2,RANK:10 )
38 楼
多核在写个while(1)循环,在里面一直启线程hook
能力值:
( LV2,RANK:10 )
39 楼
学习学习
能力值:
( LV2,RANK:10 )
40 楼
不错啊,好贴,受益匪浅。
但是有个地方不明白,想请教一下:
IDT里面ISR的算法是:基址(基址是通过段选择器找GDT)+偏移。
楼主之所有没有加基址是因为段选择器8对应的基址是00000000,所以只算偏移就好。
在我的系统中,用楼主的第一个驱动打印ISR结果是正确的,但是问题是通过PCHUNTER找出的段选择器8的藏起不是0,那么ISR的地址就应该是: 400 + OFFSET,这点挺矛盾的,没想明白。还请楼主帮忙理解一下呢,或者说pchunter找出的gdt是有问题的。
段选择子 基址 界限
0x0008 0x00000400 0x0000FFFF
能力值:
( LV2,RANK:10 )
41 楼
坚决收藏,注册后第一次收藏
能力值:
( LV2,RANK:10 )
42 楼
用dg 0 f0,查看确实选择器8对应的基址是00000000,可能真是PCHUNTER的问题,或者我没理解PCHUNTER的用法.
P Si Gr Pr Lo
Sel Base Limit Type l ze an es ng Flags
---- -------- -------- ---------- - -- -- -- -- --------
0000 00000000 00000000 <Reserved> 0 Nb By Np Nl 00000000
0008 00000000 ffffffff Code RE 0 Bg Pg P Nl 00000c9a
能力值:
( LV2,RANK:10 )
43 楼
哆啦大梦
多核在写个while(1)循环,在里面一直启线程hook
呦西原来玄机在此