02 异常事件的采集

【太多事情要做了,这部分难度对我来说又很大,先写一下大体框架,到时候具体函数逆向分析过程给写出来】

1. 调试器会接收到被调试程序什么事件?

  答:并不是被调试程序芝麻大点的事都会往调试器上发,对于调试器来讲,其只接收七种事件。

  

2. 被调试程序使用什么函数来进行事件的采集并发送给调试器。

  答:使用Dbgk开头的一类函数。在各类事件的必经之路上创建一个函数调用,一旦经过就判断DebugPort,如果处于调试状态就收集调试事件,然后发送给调试器。

  

   比如这是 PspExitThread,线程退出与进程退出的必经之路。

   

3.DbgkpSendApiMessage如何实现发送消息的?

    EvenList 处于 +0x30位置,DbgkpSendApiMessage会调用 _DbgkpQueueMessage,取出_EPROCESS+DebugPort处的 DebugObject,然后偏移+0x30取出链表,之后链表操作将DebugEvent插入到链表当中。

猜你喜欢

转载自www.cnblogs.com/onetrainee/p/11894032.html
02