首页
论坛
专栏
课程

[系统底层] [求助]被调试进程的句柄问题

2007-10-4 00:26 5860

[系统底层] [求助]被调试进程的句柄问题

2007-10-4 00:26
5860
这两天,在研究怎么写调试器,刚才遇到这么个问题,希望各位大人赐教,谢谢!

一个进程被调试打开,在CREATE_PROCESS_DEBUG_EVENT事件的时候,能够得到被调试进程的HANDLE,假定为handle1,通过这个句柄可以读写这个进程空间

把被调试进程的主线程句柄传给ZwQueryInformationThread(ThreadBasicInformation)这个API,在ClientId里可以获得被调试进程的另一个句柄handle2

现在的问题是,为什么我在调试器里用handle2去读写被调试进程空间就失败,错误码是6(无效句柄)?

2020安全开发者峰会(2020 SDC)议题征集 中国.北京 7月!

最新回复 (11)
linxer 11 2007-10-4 00:52
2
0
问题解决了

真晕,上面的handle2是pid,OpenProcess一次就可以读写被调试进程空间了
ccfer 14 2007-10-4 00:56
3
0
ProcessId和ProcessHandle是不同的概念
一个刀客 1 2007-10-4 00:58
4
0
楼主把HANDLE和ID搞混了吧...
PID跟HANDLE是不同的, 任务管理器和IS是看不到Handle的, 所以你发现了被调试进程的pid不是这个handle1

ThreadBasicInformation返回的ClientId是进程id和线程id, 不是他们的句柄, 所以你用它们读写被调试进程空间就失败了, 所以错误码是6
一个刀客 1 2007-10-4 01:00
5
0
太强了, 长夜漫漫无心睡眠, 我以为只有我睡不着, 没想到ccfer大侠你也睡不着...

缘分啊缘分..
十三少 2 2007-10-4 01:06
6
0
太强了, 长夜漫漫无心睡眠, 我以为只有我睡不着, 没想到刀客MM你 也睡不着啊。
linxer 11 2007-10-4 01:06
7
0
我是把它当HANDLE用了,所以就无效句柄了
ccfer 14 2007-10-4 01:11
8
0
太强了, 长夜漫漫无心睡眠, 我此时的心已经飞进了小肥羊火锅店
forgot 26 2007-10-4 01:18
9
0
我确定我就是那一只批着羊皮的狼,等着七个羔羊来切片炖汤

如果要用DEBUG_EVENT的handle,就要关闭Createprocess handle
不懂算法 2 2007-10-4 01:23
10
0
漫漫无心睡眠夜真是太长了
Bughoho 8 2007-10-4 01:40
11
0
我确定你就是我心中如花的肥羊。
老纳 2007-10-4 09:38
12
0
我要看宰羊
游客
登录 | 注册 方可回帖
返回