首页
社区
课程
招聘
[求助]DebugActiveProcessStop调用后返回0
发表于: 2009-5-2 11:53 8513

[求助]DebugActiveProcessStop调用后返回0

2009-5-2 11:53
8513
自己写了个小的调试器来调试程序,获取一些信息. 当关闭这个调试器的时候,我想被调试的程序继续运行,所以在调试器里调用了DebugActiveProcessStop(),但是却一直返回0,用GetLastError获取错误消息,提示是ERROR_ACCESS_DENIED, 我以为是没有提升调试器的权限,所以就调用了RtlAdjustPrivilege把调试器的权限提升到DEBUG权限.但DebugActiveProcessStop()仍然返回ERROR_ACCESS_DENIED.

下面两个问题请高手帮忙下:
1.我新手一个,不清楚如果不用RtlAdjustPrivilege提升权限,调试器本身会不会自动提升权限.
2.请问要怎么才能调用DebugActiveProcessStop(),实现调试器与被调试进程的分离,分离后的被调试程序可以正常运行.

先谢过了.

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 1946
活跃值: (248)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
2
确定OpenProcess是否打开了调试权限
2009-5-2 11:57
0
雪    币: 357
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
OpenProcess的时候用的是用的PROCESS_ALL_ACCESS,这个包括调试权限吗?
2009-5-14 12:37
0
雪    币: 342
活跃值: (55)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
4
貌似一旦挂接到调试器,那么那个被挂接的程序就不可以脱离调试器的吧,最多就是和调试器一起退出吧....
2009-7-22 18:48
0
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
5
调用DebugActiveProcessStop的时候和之前调用DebugActiveProcess时是不是同一个线程?
至于如何让调试器结束调试而被调试进程不退出,参考MSDN中DebugActiveProcess的Remark:
Remarks
To stop debugging the process, you must exit the process or call the DebugActiveProcessStop function. Exiting the debugger also exits the process unless you use the DebugSetProcessKillOnExit function.

DebugSetProcessKillOnExit

The DebugSetProcessKillOnExit function sets the action to be performed when the debugging thread exits.


BOOL DebugSetProcessKillOnExit(
BOOL KillOnExit
);

Parameters
KillOnExit
[in] If this parameter is TRUE, the debug thread will kill the process being debugged on exit. Otherwise, the debug thread will detach from the process being debugged on exit.
2009-7-22 19:00
0
游客
登录 | 注册 方可回帖
返回
//