首页
论坛
课程
招聘
[讨论]驱动层如何检测某个进程有没有被调试?
2009-3-19 14:22 4973

[讨论]驱动层如何检测某个进程有没有被调试?

2009-3-19 14:22
4973
驱动程序起来后,如何检测某个应用进程是否被调试.
好像记得每个进程都有一个debug port的,如果被调试,该端口
就会打开. 那么驱动层有直接的方法获得应用进程的debug port状态吗?

或者还有没其它方法检测?

大家给支支招.谢谢!

除了获得EProcess的结构,然后查询其中的debugport, 这种方法的缺点是必须跟操作系统绑定.

一旦操作系统的EProcess结构修改, 方法即刻失效. 还得重新分析新的Eprocess.

驱动层有没有标准的API获得这样的信息呢?

2021 KCTF 秋季赛 防守篇-征题倒计时(11月14日截止)!

收藏
点赞0
打赏
分享
最新回复 (5)
雪    币: 419
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
fixfix 活跃值 2009-3-19 17:57
2
0
没有吧 驱动也不是万能的
雪    币: 256
活跃值: 活跃值 (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
太虚伪了 活跃值 1 2009-3-19 18:00
3
0
肉眼是万能的
雪    币: 211
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
NaX 活跃值 2009-3-19 19:19
4
0
PsGetProcessDebugPort。不过站在破解者角度来看,你用越标准API就越容易被欺骗。Windows就那几个版本,硬编码一下也不是很费事。
雪    币: 204
活跃值: 活跃值 (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Ethernet 活跃值 2009-3-20 09:18
5
0
谢谢楼上的几位.硬编码从安全角度来讲是不错.不过兼容性差了点.
做产品安全的比破解的麻烦啊,得保证稳定,又得保证兼容性OK.
否则做得再强大,新的操作系统一出来,不兼容一旦出现,再强大的保护从产品角度
来看都变得不再有用.

不知道NtQueryInformationProcess
是否可以得到debugport.
里面有一个参数是可以设置为ProcessDebugPort.
雪    币: 1099
活跃值: 活跃值 (323)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
loqich 活跃值 2009-3-20 10:55
6
0
可以用NtQueryInformationProcess的

怕硬编码的话 可以从PsGetProcessDebugPort 这样的函数里搜索偏移
游客
登录 | 注册 方可回帖
返回