-
-
[求助]学习WaitForDebugEvent系列遇到些问题,求教
-
发表于:
2010-11-4 12:05
7462
-
[求助]学习WaitForDebugEvent系列遇到些问题,求教
无壳进程用DEBUG_ONLY_THIS_PROCESS参数创建以后,进入WaitForDebugEvent循环,现在想在某一个断点事件以后,像VC那样分离调试状态,是调用哪个API?搜了半天没搜到,是否要先ContinueDebugEvent以后再分离?如果分离的瞬间有调试事件生成,是否会导致被调试进程挂起呢?
另外还有一个问题,对于EXCEPTION_DEBUG_EVENT类型的事件,ContinueDebugEvent的时候参数要填什么才可以使异常传递给程序解决?是DBG_EXCEPTION_NOT_HANDLED吗?
为什么下面这种写法连notepad都不能调试运行起来?
DEBUG_EVENT devent;
while(1)
{
if (WaitForDebugEvent(&devent, INFINITE)) {
switch (devent.dwDebugEventCode)
{
case EXCEPTION_DEBUG_EVENT:
ContinueDebugEvent(devent.dwProcessId , devent.dwThreadId , DBG_EXCEPTION_NOT_HANDLED);
break;
case EXIT_PROCESS_DEBUG_EVENT:
ContinueDebugEvent(devent.dwProcessId , devent.dwThreadId , DBG_CONTINUE);
__asm int 3
break;
default:
ContinueDebugEvent(devent.dwProcessId , devent.dwThreadId , DBG_CONTINUE);
break;
}
}
else
{
// 其他一些操作
//break;
}
}
很快就会运行到int 3,求教,谢谢!
[课程]Linux pwn 探索篇!