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.pswp.cn/web/91467.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/91467.shtml
英文地址,請注明出處:http://en.pswp.cn/web/91467.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Web開發-PHP應用組件框架前端模版渲染三方插件富文本編輯器CVE審計

類別組件/框架說明[Web框架]Laravel現代化、功能全面的框架,適合大多數Web應用。Symfony高度模塊化、功能強大的框架,適合復雜應用。CodeIgniter輕量級框架,適合快速開發。Zend Framework (Laminas)企業級框架,適合大規模應用&…

Spring Boot Actuator 保姆級教程

1. 引言 Spring Boot Actuator 是一個功能強大的監控工具,能夠幫助開發者監控和管理應用的運行狀態。通過 Actuator,我們可以輕松獲取應用的健康狀況、配置信息、性能指標等。本文將一步步引導你如何配置和使用 Actuator,以及如何通過它來監控…

使用 whisper, 音頻分割, 初步嘗試,切割為小塊,效果還不錯 1

對于一首歌而言,如何斷句?即,一個 mp4 或是 mp3 文件,或是一段錄音, 如何使用程序,或是 ai 來斷句。分割為一句一句的片段??如果人工來分割,一般是使用 capcut 之類的剪輯軟件。但是效率太慢了。所以我想能否設計一個簡潔的,自動的程序來處理。這種事情,專業的名稱…

AD2S1210的DOS LOT含義

一、??信號質量監控類寄存器????LOT閾值(0x88)????作用??:設定信號丟失(Loss of Signal)的判定門檻。??場景??:當正弦或余弦輸入信號幅值低于此值時,芯片認為信號丟失&#xff…

Au速成班-多軌編輯流程

基礎編輯工作流,包含文件導入,導出,音量調節,部分效果添加。 創建多軌會話 設置工程文件名稱、文件位置、采樣率、位深度、主控等。 界面管理 ,界面說明詳細可看 Au速成班-基礎篇_au界面介紹-CSDN博客 音量調節點擊…

Rust實現GPU驅動的2D渲染引擎

當傳統CPU渲染遭遇性能瓶頸時,GPU驅動的架構正在革新2D圖形領域。本文將深入解析用Rust編寫的??完全GPU驅動的2D渲染引擎Vello??,揭秘其如何通過并行計算實現絲滑渲染。 一、GPU Driven革命:為何是Vello? 傳統渲染的瓶頸 傳…

【ELasticsearch】溫、冷數據節點能是同一個節點嗎

溫、冷數據節點能是同一個節點嗎1.節點角色與分層存儲原理2.一個節點能否同時是 “溫” 和 “冷” 節點 ?3.為什么通常不是最佳實踐 ?4.可能的適用場景(非常有限)5.結論在 Elasticsearch 中,理論上,一個物理…

報錯:selenium.common.exceptions.ElementNotInteractableException: Message

針對該錯誤,以下是分步解決方案: 1. 顯式等待確保元素可交互 from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC# 等待元素可點…

sqli-labs:Less-10關卡詳細解析

1. 思路🚀 本關的SQL語句為: $id ".$id."; $sql"SELECT * FROM users WHERE id$id LIMIT 0,1";注入類型:字符串型(雙引號包裹)提示:參數id需以"閉合 php回顯輸出語句的代碼如…

imx6ull-驅動開發篇5——新字符設備驅動實驗

目錄 前言 新字符設備驅動原理 申請設備號 注冊設備號 釋放設備號 注冊方法 字符設備結構cdev cdev_init 函數 cdev_add 函數 cdev_del 函數 自動創建設備節點 mdev 機制 類創建函數 類刪除函數 創建設備函數 刪除設備函數 設置文件私有數據 實驗程序編寫 l…

2025年最新SCI-灰熊增脂優化器(Grizzly Bear Fat Increase, GBF)-附完整Matlab免費代碼

1、簡介 本文介紹了一種新的受自然啟發的優化算法,稱為灰熊增脂優化器(GBFIO)。GBFIO算法模仿灰熊積累體脂為過冬做準備的自然行為,利用它們的狩獵、捕魚和吃草、蜂蜜等策略。因此,GBFIO算法建模并考慮了三個數學步驟來…

Python爬蟲02_Requests實戰網頁采集器

一、Request請求偽裝解析 #UA:User-Agent(請求載體身份標識) #UA檢測:門戶網站的服務器會檢測對應請求的載體身份標識,如果檢測到請求的載體身份呢標識為某一款瀏覽器,說明該請求是一個正常的請求&#xff…

vue+elementui實現問卷調查配置可單選、多選、解答

效果&#xff1a;<template> <div><el-form :inline"true" :model"form" :rules"rules" ref"ruleForm"> <el-tabs type"border-card" v-model"cardType"><el-tab-pane name"1&qu…

Docker初學者需要了解的幾個知識點(三):Docker引擎與Docker Desktop

Docker引擎與Docker Desktop簡單說&#xff1a;Docker 引擎是干活的 “核心工具”&#xff0c;負責實際創建、運行容器&#xff0c;就像汽車的發動機&#xff0c;沒它跑不起來。Docker Desktop是個 “套裝軟件”&#xff0c;它把 Docker 引擎打包進去了&#xff0c;還加了圖形化…

Python將Word轉換為Excel

現有大量的Word文檔&#xff0c;每個文檔中有大量的表格&#xff0c;需要將其轉換為Excel。 Python處理源碼 # 需要安裝pip install xlsxwriter import pandas as pd from docx import Document from pathlib import Path from datetime import datetimedef process_docx(filep…

攀爬誤報率↓82%!陌訊多模態算法在周界防護的實戰解析

?摘要?? 原創聲明 本文解析邊緣計算優化下陌訊視覺算法在攀爬識別場景的魯棒性提升&#xff0c;實測數據來自陌訊技術白皮書&#xff08;2025&#xff09;。針對傳統安防系統在復雜光影、姿態變化中的誤檢問題&#xff0c;重點闡述動態決策機制與輕量化部署方案&#xff0c;…

Redis 存在哪些問題

內存相關問題 1. 內存消耗大 無壓縮機制&#xff1a;數據以明文形式存儲&#xff0c;占用內存較大元數據開銷&#xff1a;每個key-value對都有額外的元數據開銷內存碎片&#xff1a;頻繁的更新操作可能產生內存碎片 2. 內存容量限制 單機容量受限&#xff1a;受限于單臺服務器的…

ECMAScript2025(ES16)新特性

概述 ECMAScript2025于2025年6月26日正式發布&#xff0c; 本文會介紹ECMAScript2025(ES16)&#xff0c;即ECMAScript的第16個版本的新特性。 以下摘自官網&#xff1a;ecma-262 ECMAScript 2025, the 16th edition, added a new Iterator global with associated static and…

Vim 編輯器工作模式及操作指南

Vim 編輯器工作模式及操作指南 一、工作模式概述 Vim編輯器主要包含四種工作模式&#xff0c;分別是&#xff1a; 命令模式&#xff08;默認進入模式&#xff09;輸入模式&#xff08;編輯模式&#xff09;末行模式&#xff08;指令模式&#xff09;可視模式 二、模式切換及操作…

Rabbitmq中常見7種模式介紹

p&#xff1a;生成者&#xff0c;生成消息的程序c&#xff1a;消費者&#xff0c;消費消息的程序Queue&#xff1a;消息隊列&#xff0c;用于緩存消息&#xff0c;生產者向里面投遞消息&#xff0c;消費者從里面拿取消息消費X&#xff1a;交換機&#xff0c;在rabbitMQ中&#…