当前位置: 首页 > news >正文

windows内核研究(软件调试-调试事件采集)

软件调试


调试事件采集

前面有说到在调试器和被调试之间会创建一个_DEBUG_OBJECT对象来进行关联

在这里插入图片描述

调试事件的种类

被调试进程会把一个个的调试事件写到_DEBUG_OBJECT中的一个成员链表中,调试器就通过它们建立的
_DEBUG_OBJECT调试对象获取调式事件,但并不是进程的任何操作都会被写入到调试事件当中

//
// Debug Message API Number
//
typedef enum _DBGKM_APINUMBER
{DbgKmExceptionApi = 0,			// 异常DbgKmCreateThreadApi = 1,		// 创建线程DbgKmCreateProcessApi = 2,		// 创建进程DbgKmExitThreadApi = 3,			// 线程退出DbgKmExitProcessApi = 4,		// 进程退出DbgKmLoadDllApi = 5,			// 加载DLLDbgKmUnloadDllApi = 6,			// 卸载DLLDbgKmErrorReportApi = 7,		// 已废弃DbgKmMaxApiNumber = 8,			// 最大值
} DBGKM_APINUMBER;

那就有一个问题,是谁在为我们添加调试事件呢?

调试事件采集函数

  • 创建进程、线程必经之路:
    • PspUserThreadStartup
      • DbgkCreateThread -> DbgkpSendApiMessage()
  • 退出线程、进程必经之路:
    • PspExitThread
      • DbgkExitThread/DbgkExitProcess -> DbgkpSendApiMessage()
  • 加载模块的必经之路:
    • NtMapViewOfSection
      • DbgkMapViewOfSection -> DbgkpSendApiMessage()
  • 卸载模块的必经之路:
    • NtUnMapViewOfSection
      • DbgkUnMapViewOfSection -> DbgkpSendApiMessage()
  • 异常的必经之路:
    • KiDispatchException
      • DbgkForwardException -> DbgkpSendApiMessage()

答案就是在你加载DLL,卸载DLL,创建进程结束进程的必经之路上调用这个方法

DbgkpSendApiMessage(x,x)参数说明

第一个参数:消息结构,每种消息都有自己的消息结构共有7种类型
第二个参数:要不要把本进程内除了自己之外的其他线程挂起

http://www.lryc.cn/news/607232.html

相关文章:

  • 性能测试-性能测试中的经典面试题一
  • Nginx跨域问题与 MIME 类型错误深度排错指南:解决 MIME type of “application/octet-stream“ 报错
  • CAN通信协议
  • 从零到英雄:掌握神经网络的完整指南
  • 大模型开发框架LangChain之构建知识库
  • YOLOv8/YOLOv11 C++ OpenCV DNN推理
  • 深入浅出理解WaitForSingleObject:Windows同步编程核心函数详解
  • 大模型幻觉的本质:深度=逻辑层次,宽度=组合限制,深度为n的神经网络最多只能处理n层逻辑推理,宽度为w的网络无法区分超过w+1个复杂对象的组合
  • 前沿智能推荐算法:基于多模态图神经网络的隐私保护推荐系统
  • JS字符串匹配,检测字符中是否包含ABC,includes,indexOf
  • 网络配置+初始服务器配置
  • C++ AI 实用案例强化学习
  • UE5多人MOBA+GAS 番外篇:同时造成多种类型伤害,以各种属性值的百分比来应用伤害(版本二)
  • MySQL常见的聚合函数:
  • 逻辑回归----银行贷款模型优化
  • 【C++/STL】vector基本介绍
  • git pull和git fetch的区别
  • Linux---编辑器vim
  • vi/vim跳转到指定行命令
  • 达梦数据库权限体系详解:系统权限与对象权限
  • Js引用数据类型和ES6新特性
  • X2Doris是SelectDB可视化数据迁移工具,安装与部署使用手册,轻松进行大数据迁移
  • 向量投影计算,举例说明
  • rhcsa笔记大全
  • 华锐矩阵世界平台与海外客户洽谈合作
  • 网络协议之路由是怎么回事?
  • [buuctf-misc]百里挑一
  • 雷达微多普勒特征代表运动中“事物”的运动部件。
  • SD-WAN在煤矿机械设备工厂智能化转型中的应用与网络架构优化
  • Apache Flink 2.1.0: 面向实时 Data + AI 全面升级,开启智能流处理新纪元