02 异常事件的采集

痴心易碎 提交于 2019-12-05 01:06:44

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

 

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

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

  

 

 

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

 

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

 

  

 

 

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

   

 

 

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

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!