-
3221356611
这是
0xC0020043
-
RPC_NT_INTERNAL_ERROR
-
998
这是
0x3e6
-
ERROR_NOACCESS
(
对内存的访问无效
位置
)
您无条件返回的主要错误
DBG_CONTINUE
总是。但关于
EXCEPTION_DEBUG_EVENT
只有在处理异常时才返回此代码。否则(如果
dwFirstChance == TRUE
所以这是第一次机会例外)你必须回来
DBG_EXCEPTION_NOT_HANDLED
. 如果你回来
dgg-继续
-程序从当前上下文开始继续执行。如果你回来
dbg_异常未处理
-
KiUserExceptionDispatcher
将在目标进程中调用,它调用
RtlDispatchException
以及在何处调用异常处理程序。阅读更多
Structured Exception Handling
但因为你永远不会回来
dbg_异常未处理
-从未调用程序异常处理程序。通过您的两个例外代码,甚至很容易找到发生这种情况的地方:
这个
RpcpRaiseException
被调用,内部调用
RaiseException(ERROR_NOACCESS..)
所以您查看998个异常。如果你回来
dbg_异常未处理
这里-应用程序自行处理此异常,从不从返回
RaiseException
打电话。上下文将转换为
__except{}
块。但因为你回来了
dgg-继续
-
极端例外
返回控制和
RpcReportFatalError
调用,内部调用
RaiseException(RPC_NT_INTERNAL_ERROR..)
所以你和你的观点
3221356611 (0xC0020043)
你的下一个错误你没有关闭
hFile
在
LOAD_DLL_DEBUG_EVENT
-
当调试器完成此文件时,它应该使用close handle函数关闭句柄。
相同的错误
CREATE_PROCESS_DEBUG_EVENT
另外,在开始调试过程时出现的错误-不能使用
CREATE_SUSPENDED
标志,不得使用
DebugActiveProcess
和
ResumeThread
. 你只需要一套
DEBUG_PROCESS
或
DEBUG_ONLY_THIS_PROCESS
等等。不需要在挂起状态下创建进程,也不需要主不调用
调试指定进程
在这里。这个API调用的设计不好,它在目标进程中创建了额外的线程。比如说XP在这个阶段,这是致命的。