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

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

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

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

大家给支支招.谢谢!

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

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

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

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

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

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

怕硬编码的话 可以从PsGetProcessDebugPort 这样的函数里搜索偏移
2009-3-20 10:55
0
游客
登录 | 注册 方可回帖
返回
//