首页
社区
课程
招聘
[原创]一个禁止任何ring3调试的驱动
发表于: 2011-8-18 14:05 19747

[原创]一个禁止任何ring3调试的驱动

2011-8-18 14:05
19747

这个方法很简单:hook int1,int3
然后清除DebugPort,简单明了~~
代码适用于多核,多系统~~~


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

收藏
免费 7
支持
分享
最新回复 (22)
雪    币: 3134
活跃值: (1279)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
2
又是拉拒战,大家抢IDT
抢不过又patch MyUserFilter,然后又加patch效验,然后又patch效验的效验。。

这方面的玩意是不是要到头了
2011-8-18 14:11
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
mark一下

分析
2011-8-18 15:02
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
4
实际上自从有Hook SwapContext做IDT切换的手段后,IDThook就蛋碎了~
2011-8-18 15:19
0
雪    币: 33
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个..这个...是怎么搞的
2011-8-18 15:31
0
雪    币: 343
活跃值: (40)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
了解了下,mark待用
2011-8-18 15:42
0
雪    币: 331
活跃值: (57)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
7
IDT也能切换?
2011-8-18 17:25
0
雪    币: 113
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
__asm
    {
      mov     ebx, 30H  // Set FS to PCR.
      mov     fs, bx
    }
这段代码有什么用?内核下的FS不就是30嘛?
2011-8-18 22:46
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
9
其实任何内核物体都可以,比如LDT,GDT~~尼玛~你懂得~
2011-8-19 00:41
0
雪    币: 331
活跃值: (57)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
10
刚进ring0,但所有的段选择子都是ring3下的(详见Intel手册),因为windows下ds,es,gs是不变的,所以只改fs,上面这段asm来自WRK,有些教程都没有这个步骤是错误的。
如果你用windbg来调试,fs会被调试器自动设置为30h,所以在windbg下这个错误很难被发现(何况int1,int3是不可调试的)
2011-8-19 10:08
0
雪    币: 113
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
这里的“刚进”是什么意思?进ring0的时候,难道CS和SS也是ring3下的?int x/.sysenter不做这些事?内核加载驱动的时候环境已经OK了吧。
2011-8-19 13:20
0
雪    币: 331
活跃值: (57)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
12
中断后SS,ESP是从TSS获得的,不过我记得windows没有使用TSS的其它部分
sysenter有所不同,该指令更没有用到TSS,我记得是sysenter后是叫一个临时DPC栈,然后由_KiSystemCall中的指令读取TSS中的SS,ESP再切换到真正的内核栈。
我说的可能有错误,欢迎指正!
2011-8-19 13:40
0
雪    币: 113
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
CS,肯定已经切换过了,因为这时的代码已经在内核态了,TSS中保存了不同权限时的SS和ESP,中断门和陷阱门时会使用,上述动作应该是CPU做的,顺便看了一些KiTrap**的代码,确实是FS,DS,ES,GS的切换在代码中做的,是OS的代码完成的。

至于.sysenter,CS和SS的切换我认为还是CPU完成的,而且没有使用TSS,因为有专门的msr。其它的段切换还是由OS的代码KiFastCallEntry完成的。

刚刚想到,在你的hook程序里加一段KdPrint打它们打印出来就有答案了。
2011-8-19 18:59
0
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14

2009年大哥你就接触过这个问题

http://bbs.pediy.com/showthread.php?p=726505
2011-8-20 11:30
0
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
看完了 这篇文章  没结果

不过貌似 V校大人 最终摸索出了东西啊。能不能放点雪啊
2011-8-20 11:33
0
雪    币: 263
活跃值: (71)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
已学会虚拟重定向IDT PASS 一切IDT HOOK
2011-8-24 01:19
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
17
话说,保护驱动已经学会Switch To V386 mode~
2011-8-24 07:16
0
雪    币: 116
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
太邪恶,太强大了
2011-8-24 08:15
0
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
娘的  实力差距啊.  话说每次都不怎么能看明白V大的话啊.继续努力
2011-8-24 09:23
0
雪    币: 405
活跃值: (2355)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
20
邪恶无极限,嘿嘿。对内核了解的多点,发现里面可走的路太多了。旁路穿越的地方很多,哈哈。
2011-8-25 09:32
0
雪    币: 156
活跃值: (86)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
win7 win8 64位目前怎么搞穿越哦?
2011-10-17 13:25
0
雪    币: 3785
活跃值: (3947)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
22
确实够邪恶!!
2017-5-20 23:28
0
雪    币: 15
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
mark
2017-5-29 17:02
0
游客
登录 | 注册 方可回帖
返回
//