sfc_os!SfcQueueValidationRequest函數分析之sfc_os!IsFileInQueue

第一部分:

1: kd> kc
#
00 sfc_os!SfcQueueValidationRequest
01 sfc_os!SfcWatchProtectedDirectoriesWorkerThread
02 kernel32!BaseThreadStart

1: kd> dv
RegVal = 0x01129164
ChangeType = 5
vrd = 0x012bfef0
Status = 0n1988337684
vrdexisting = 0x012bffdc

??? //
// if we're in GUI-Setup, don't queue any validation requests
//
if (SFCDisable == SFC_DISABLE_SETUP) {
return STATUS_SUCCESS;
}

1: kd> x sfc_os!SFCDisable
768421b8????????? sfc_os!SFCDisable = 0


vrd->NextValidTime = GetTickCount() + (1000*SFCStall);
vrd->RegVal = RegVal;
vrd->ChangeType = ChangeType;
vrd->Signature = SFC_VRD_SIGNATURE;

1: kd> dx -id 0,0,ffffffff89ce3d88 -r1 ((sfc_os!_VALIDATION_REQUEST_DATA *)0x1fe0048)
((sfc_os!_VALIDATION_REQUEST_DATA *)0x1fe0048)???????????????? : 0x1fe0048 [Type: _VALIDATION_REQUEST_DATA *]
[+0x000] Entry??????????? [Type: _LIST_ENTRY]
[+0x008] Signature??????? : 0x69696969 [Type: unsigned long]
[+0x010] ImageValData???? [Type: _COMPLETE_VALIDATION_DATA]
[+0x130] RegVal?????????? : 0x1129164 [Type: _SFC_REGISTRY_VALUE *]
[+0x134] SourceInfo?????? [Type: _SOURCE_INFO]
[+0xd74] ChangeType?????? : 0x5 [Type: unsigned long]
[+0xd78] CopyCompleted??? : 0 [Type: int]
[+0xd7c] Win32Error?????? : 0x0 [Type: unsigned long]
[+0xd80] SyncOnly???????? : 0 [Type: int]
[+0xd84] RetryCount?????? : 0x0 [Type: unsigned long]
[+0xd88] Flags??????????? : 0x0 [Type: unsigned long]
[+0xd8c] NextValidTime??? : 0xffd4b349 [Type: unsigned long]


1: kd> dx -id 0,0,ffffffff89ce3d88 -r1 ((sfc_os!_SFC_REGISTRY_VALUE *)0x1129164)??
((sfc_os!_SFC_REGISTRY_VALUE *)0x1129164)???????????????? : 0x1129164 [Type: _SFC_REGISTRY_VALUE *]
[+0x000] Entry??????????? [Type: _LIST_ENTRY]
[+0x008] FileName???????? : "pidgen.dll" [Type: _UNICODE_STRING]
[+0x010] DirName????????? : "c:\windows\system32" [Type: _UNICODE_STRING]
[+0x018] FullPathName???? : "c:\windows\system32\pidgen.dll" [Type: _UNICODE_STRING]
[+0x020] InfName????????? : "" [Type: _UNICODE_STRING]
[+0x028] SourceFileName?? : "" [Type: _UNICODE_STRING]
[+0x030] OriginalFileName [Type: unsigned short [128]]
[+0x130] DirHandle??????? : 0x24 [Type: void *]
[+0x134] pvWinSxsCookie?? : 0x0 [Type: void *]
[+0x138] dwWinSxsFlags??? : 0x0 [Type: unsigned long]



第二部分:

1: kd> p
sfc_os!SfcQueueValidationRequest+0xb9:
001b:76838ee2 e860e7ffff????? call??? sfc_os!IsFileInQueue (76837647)
1: kd> t
sfc_os!IsFileInQueue:
001b:76837647 55????????????? push??? ebp
1: kd> kc
#
00 sfc_os!IsFileInQueue
01 sfc_os!SfcQueueValidationRequest
02 sfc_os!SfcWatchProtectedDirectoriesWorkerThread
03 kernel32!BaseThreadStart

1: kd> x sfc_os!SfcErrorQueue
76840e80????????? sfc_os!SfcErrorQueue = struct _LIST_ENTRY [ 0x12380d0 - 0x12380d0 ]
1: kd> dx -id 0,0,ffffffff89ce3d88 -r1 (*((sfc_os!_LIST_ENTRY *)0x76840e80))
(*((sfc_os!_LIST_ENTRY *)0x76840e80))???????????????? [Type: _LIST_ENTRY]
[+0x000] Flink??????????? : 0x12380d0 [Type: _LIST_ENTRY *]
[+0x004] Blink??????????? : 0x12380d0 [Type: _LIST_ENTRY *]
1: kd> dt VALIDATION_REQUEST_DATA 0x12380d0
sfc_os!VALIDATION_REQUEST_DATA
+0x000 Entry??????????? : _LIST_ENTRY [ 0x76840e80 - 0x76840e80 ]
+0x008 Signature??????? : 0x69696969
+0x010 ImageValData???? : _COMPLETE_VALIDATION_DATA
+0x130 RegVal?????????? : 0x01129164 _SFC_REGISTRY_VALUE?? ??? ?RegVal?????????? : 0x01129164
+0x134 SourceInfo?????? : _SOURCE_INFO
+0xd74 ChangeType?????? : 3
+0xd78 CopyCompleted??? : 0n1
+0xd7c Win32Error?????? : 0
+0xd80 SyncOnly???????? : 0n0
+0xd84 RetryCount?????? : 0
+0xd88 Flags??????????? : 1
+0xd8c NextValidTime??? : 0xffd2d959

??????? if (RegVal == vrd->RegVal) {
return vrd;?? ??? ?//VALIDATION_REQUEST_DATA 0x12380d0
}

??????? if (!vrdexisting || (vrdexisting->Flags & VRD_FLAG_REQUEST_PROCESSED) ) {

??????????? DebugPrint1( LVL_VERBOSE,
L"Inserting [%ws] into error queue for validation",
RegVal->FullPathName.Buffer );

??????????? InsertTailList( &SfcErrorQueue, &vrd->Entry );
ErrorQueueCount += 1;

??????????? //
// do this to avoid free later on
//
vrdexisting = NULL;

??????? }


第三部分:


1: kd> p
sfc_os!IsFileInQueue+0x27:
001b:7683766e 5d????????????? pop???? ebp
1: kd> r
eax=012380d0


D:\srv03rtm\base\subsys\sm/sfc/dll/sfcp.h:471:#define VRD_FLAG_REQUEST_PROCESSED??????? 0x00000001

+0xd88 Flags??????????? : 1


1: kd> x sfc_os!ErrorQueueCount
76840e7c????????? sfc_os!ErrorQueueCount = 1


1: kd> x sfc_os!ErrorQueueCount
76840e7c????????? sfc_os!ErrorQueueCount = 2


1: kd> dx -id 0,0,ffffffff89ce3d88 -r1 (*((sfc_os!_LIST_ENTRY *)0x76840e80))
(*((sfc_os!_LIST_ENTRY *)0x76840e80))???????????????? [Type: _LIST_ENTRY]
[+0x000] Flink??????????? : 0x12380d0 [Type: _LIST_ENTRY *]
[+0x004] Blink??????????? : 0x1fe0048 [Type: _LIST_ENTRY *]


1: kd> dt VALIDATION_REQUEST_DATA 0x1fe0048
sfc_os!VALIDATION_REQUEST_DATA
+0x000 Entry??????????? : _LIST_ENTRY [ 0x76840e80 - 0x12380d0 ]
+0x008 Signature??????? : 0x69696969
+0x010 ImageValData???? : _COMPLETE_VALIDATION_DATA
+0x130 RegVal?????????? : 0x01129164 _SFC_REGISTRY_VALUE
+0x134 SourceInfo?????? : _SOURCE_INFO
+0xd74 ChangeType?????? : 5?? ??? ??? ??? ?//+0xd74 ChangeType?????? : 5
+0xd78 CopyCompleted??? : 0n0
+0xd7c Win32Error?????? : 0
+0xd80 SyncOnly???????? : 0n0
+0xd84 RetryCount?????? : 0
+0xd88 Flags??????????? : 0?? ??? ??? ??? ?//+0xd88 Flags??????????? : 0?? ?
+0xd8c NextValidTime??? : 0xffd4b349

1: kd> dt VALIDATION_REQUEST_DATA 0x12380d0
sfc_os!VALIDATION_REQUEST_DATA
+0x000 Entry??????????? : _LIST_ENTRY [ 0x76840e80 - 0x76840e80 ]
+0x008 Signature??????? : 0x69696969
+0x010 ImageValData???? : _COMPLETE_VALIDATION_DATA
+0x130 RegVal?????????? : 0x01129164 _SFC_REGISTRY_VALUE?? ??? ?RegVal?????????? : 0x01129164
+0x134 SourceInfo?????? : _SOURCE_INFO
+0xd74 ChangeType?????? : 3?? ??? ??? ??? ?//+0xd74 ChangeType?????? : 3
+0xd78 CopyCompleted??? : 0n1
+0xd7c Win32Error?????? : 0
+0xd80 SyncOnly???????? : 0n0
+0xd84 RetryCount?????? : 0
+0xd88 Flags??????????? : 1?? ??? ??? ??? ?//+0xd88 Flags??????????? : 1
+0xd8c NextValidTime??? : 0xffd2d959


第四部分:


1: kd> x sfc_os!hErrorThread
76840e88????????? sfc_os!hErrorThread = 0x00000b4c

1: kd> !handle b4c

PROCESS 89ce3d88? SessionId: 0? Cid: 01d4??? Peb: 7ffdf000? ParentCid: 018c
DirBase: 7c1c9000? ObjectTable: e136a268? HandleCount: 564.
Image: winlogon.exe

Handle table at e136a268 with 564 entries in use

0b4c: Object: 892d6da0? GrantedAccess: 001f03ff Entry: e1792698
Object: 892d6da0? Type: (89dd5710) Thread
ObjectHeader: 892d6d88 (old version)
HandleCount: 3? PointerCount: 5

?????? THREAD 892d6da0? Cid 01d4.03bc? Teb: 7ffdc000 Win32Thread: e10ecea8 RUNNING on processor 0
IRP List:
899d7838: (0006,01d8) Flags: 00000884? Mdl: 00000000
8936dcd8: (0006,0190) Flags: 00000000? Mdl: 00000000
Not impersonating
DeviceMap???????????????? e10026b8
Owning Process??????????? 89ce3d88?????? Image:???????? winlogon.exe
Attached Process????????? N/A??????????? Image:???????? N/A
Wait Start TickCount????? 274695963????? Ticks: 0
Context Switch Count????? 441??????????? IdealProcessor: 0???????????????? LargeStack
UserTime????????????????? 00:00:00.156
KernelTime??????????????? 00:00:00.156
Win32 Start Address sfc_os!SfcQueueValidationThread (0x7683856f)
Stack Init b9af1000 Current b9af0924 Base b9af1000 Limit b9aec000 Call 00000000
Priority 14 BasePriority 13 PriorityDecrement 0 IoPriority 0 PagePriority 0
ChildEBP RetAddr ?
b9af06f4 80aed4e8 nt!ExpAssertResource+0x71 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ex\resource.c @ 2913]
b9af0718 f713659e nt!ExReleaseResourceLite+0x18 (FPO: [Non-Fpo]) (CONV: fastcall) [d:\srv03rtm\base\ntos\ex\resource.c @ 1410]
b9af071c f7135f80 Ntfs!NtfsCommonCreate+0x1da0 (FPO: [SEH]) (CONV: stdcall) [d:\srv03rtm\base\fs\ntfs\create.c @ 4202]
b9af0908 f712f53e Ntfs!NtfsCommonCreate+0x1782 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\fs\ntfs\create.c @ 4210]
b9af0a08 80a2675c Ntfs!NtfsFsdCreate+0x1f6 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\fs\ntfs\create.c @ 904]
b9af0a24 80c75af1 nt!IofCallDriver+0x62 (FPO: [Non-Fpo]) (CONV: fastcall) [d:\srv03rtm\base\ntos\io\iomgr\iosubs.c @ 2237]
b9af0b20 80c7607c nt!IopParseDevice+0xd7d (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\iomgr\parse.c @ 1317]
b9af0b58 80d1cb2c nt!IopParseFile+0x78 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\iomgr\parse.c @ 2014]
b9af0bd4 80d16798 nt!ObpLookupObjectName+0x14a (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ob\obdir.c @ 1834]
b9af0c28 80c61f73 nt!ObOpenObjectByName+0x13e (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ob\obref.c @ 767]
b9af0ca4 80c63967 nt!IopCreateFile+0x44d (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\iomgr\iosubs.c @ 5494]
b9af0cf0 80c6892f nt!IoCreateFile+0x73 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\iomgr\iosubs.c @ 4788]
b9af0d38 80afbcb2 nt!NtOpenFile+0x57 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\iomgr\open.c @ 95]
b9af0d38 7ffe0304 nt!_KiSystemService+0x13f (FPO: [0,3] TrapFrame @ b9af0d64) (CONV: cdecl) [d:\srv03rtm\base\ntos\ke\i386\trap.asm @ 1328]
007cf674 77f2f1d8 SharedUserData!SystemCallStub+0x4 (FPO: [0,0,0])
007cf678 7682f536 ntdll!NtOpenFile+0xc (FPO: [6,0,0]) [d:\srv03rtm\base\ntdll\daytona\obj\i386\usrstubs.asm @ 1099]
007cf6c4 76837870 sfc_os!SfcOpenFile+0x8c (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\subsys\sm\sfc\dll\fileio.c @ 87]
007cf6ec 7683297d sfc_os!SfcGetValidationData+0x8b (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\subsys\sm\sfc\dll\validate.c @ 2126]
007cf724 76838b81 sfc_os!SfcRestoreFromCache+0x2fa (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\subsys\sm\sfc\dll\restore.c @ 1483]
007cffb8 77e41be7 sfc_os!SfcQueueValidationThread+0x612 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\subsys\sm\sfc\dll\validate.c @ 1702]
007cffec 00000000 kernel32!BaseThreadStart+0x34 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\win32\client\support.c @ 533]

第五部分:changtype=3

Breakpoint 4 hit
sfc_os!SfcQueueValidationRequest:
001b:76838e29 6a1c??????????? push??? 1Ch
1: kd> dv
RegVal = 0x01129164
ChangeType = 3
vrd = 0x012bfef0
Status = 0n1988337684
vrdexisting = 0x012bffdc

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/93592.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/93592.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/93592.shtml

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

相關文章

100202Title和Input組件_編輯器-react-仿低代碼平臺項目

文章目錄1 開發兩個問卷組件1.1 Title組件1.2 Input組件1.3 畫布靜態展示TItle和Input2 Ajax獲取問卷數據,并存儲到Redux store2.1 API接口2.2 組件列表存儲到Redux store統一管理2.3 重構useLoadQuestionData3 在畫布顯示問卷列表,點擊可選中3.1 Redux獲…

設置計劃任務自動備份mysql

windows系統下1.創建mysql自動備份腳本mysqlback.bat需將此腳本存放在mysql的bin文件夾下。確保此腳本執行成功了在進行第2步做計劃任務。echo off REM 定義備份目錄backup_dir、備份的文件名filename set "backup_dirD:\mysqlback" set "filenamemysqlback_%da…

飛機起落架輪軸深孔中間段電解擴孔內輪廓檢測 - 激光頻率梳 3D 輪廓檢測

摘要:飛機起落架輪軸深孔中間段電解擴孔內輪廓檢測存在精度要求高、結構復雜等挑戰。本文針對電解擴孔特殊工藝特征,探討激光頻率梳 3D 輪廓檢測技術的應用,分析其檢測原理、技術優勢及在輪軸深孔檢測中的實踐,為電解擴孔內輪廓高…

【軟考中級網絡工程師】知識點之入侵防御系統:筑牢網絡安全防線

目錄一、入侵防御系統基礎概念1.1 定義與作用1.2 與其他安全設備的關系二、入侵防御系統工作原理剖析2.1 數據包捕獲與預處理2.2 深度包檢測(DPI)技術2.3 威脅特征匹配2.4 行為分析與機器學習輔助檢測2.5 威脅處理與響應機制三、入侵防御系統功能全面解析…

Python爬蟲實戰:研究scrapfly-scrapers庫,構建電商/新聞/社交媒體數據采集系統

1. 引言 1.1 研究背景與意義 在大數據與人工智能技術深度滲透各行業的背景下,數據已成為企業決策、學術研究、產品創新的核心驅動力。互聯網作為全球最大的信息載體,蘊含海量結構化與非結構化數據(如電商商品信息、新聞資訊、社交媒體動態等),其價值挖掘依賴高效的數據采…

Python爬蟲反爬檢測失效問題的代理池輪換與請求頭偽裝實戰方案

Python爬蟲反爬檢測失效問題的代理池輪換與請求頭偽裝實戰方案 🌟 Hello,我是摘星! 🌈 在彩虹般絢爛的技術棧中,我是那個永不停歇的色彩收集者。 🦋 每一個優化都是我培育的花朵,每一個特性都是…

【原理】C#構造函數可以標記為Static嗎

【從UnityURP開始探索游戲渲染】專欄-直達 實例構造函數(Instance Constructor)不能標記為static但C#提供了一種特殊的? 靜態構造函數(Static Constructor)專門用于初始化靜態成員。下面依次介紹他們: 1. ?實例構造…

數據結構--樹(3)

數據結構基礎(13) 文章目錄數據結構基礎(13)--樹樹的存儲結構樹的存儲方式1:雙親表示法(順序存儲)樹的存儲方式2:孩子表示法樹的存儲方式3:孩子兄弟表示法樹轉二叉樹森林…

sys.stdin讀取鍵盤輸入【持續更新~】

背景sys.stdin主要用來讀取鍵盤的一行或者多行輸入,讀取后表達形式為字符串。下文主要探討sys.stdin.readline()的使用,sys.stdin.read()參考:sys.stdin.readline()是逐行讀取,通常會配合.strip()清除首尾的換行符/空格sys.stdin.…

近閾值技術引領者:STM32U3系列的能效與安全革新

引言 當電池供電設備已深度融入生活的每一個角落,功耗控制與續航能力儼然成為制約技術演進的核心瓶頸。在此背景下,超低功耗新系列STM32U3憑借前沿的近閾值設計理念,為受功耗瓶頸限制的設備提供了突破性解決方案,也為能耗管理開啟…

Vue3 中的 provide 和 inject 詳解:實現跨組件通信

一、provide 和 inject 概述在 Vue3 中,provide 和 inject 是一對用于實現跨層級組件通信的 API,它們解決了 props 需要逐層傳遞的繁瑣問題。1.1 基本概念provide (提供):在祖先組件中提供數據inject (注入):在任意后代組件中注入…

Kafka 零拷貝(Zero-Copy)技術詳解

文章目錄1. 什么是零拷貝2. Kafka 如何實現零拷貝2.1 sendfile 系統調用2.2 mmap 內存映射3. 傳統拷貝 vs 零拷貝3.1 傳統文件傳輸流程3.2 零拷貝文件傳輸流程4. Kafka 零拷貝的具體實現4.1 消息消費時的零拷貝4.2 日志段文件的零拷貝5. 零拷貝帶來的性能優勢6. 零拷貝的適用場…

Vue 中 v-for 的使用及 Vue2 與 Vue3 的區別

v-for 基本用法v-for 是 Vue 中用于循環渲染列表的指令&#xff0c;基本語法如下&#xff1a;運行<!-- Vue2 和 Vue3 通用基本語法 --> <div v-for"(item, index) in items" :key"item.id">{{ index }} - {{ item.name }} </div>Vue2 和…

本地搭建dify+deepseek智能體

今天開始搭建智能體&#xff0c;學習一下&#xff0c;也是公司轉型所需。(Windows下的docker安裝給我差點干破防了&#xff0c;安裝了一周docker才成功。我真就要放棄的時候&#xff0c;又意外成功了/(ㄒoㄒ)/~~)0、準備階段 配置Windows10的基本配置。 按下鍵盤Windows鍵&…

網絡常識-SSE對比Websocket

SSE&#xff08;Server-Sent Events&#xff09;和Websocket都是用于實現服務器與客戶端實時通信的技術&#xff0c;但它們的設計理念、通信模式和適用場景有顯著區別。以下從核心差異和適用場景兩方面具體說明&#xff1a; 一、核心區別維度SSE&#xff08;Server-Sent Events…

lamp架構部署wordpress

CentOS 7主機&#xff1a;lamp.example.comIP&#xff1a;192.168.100.101、關閉防火墻與selinux# 關閉防火墻systemctl stop firewalldsystemctl disable firewalld# 關閉selinuxvim /etc/selinux/config # 或vim /etc/sysconfig/selinuxSELINUXdisabled:wq# 重啟reboot 2、開…

DC6v-36V轉3.2V1A恒流驅動芯片WT7017

DC6v-36V轉3.2V1A恒流驅動芯片WT7017WT7017是一款于連續工作模式下的降壓LED恒流轉換器&#xff0c;可驅動單只或多只LED,內置高精度電流檢測器&#xff0c;能通過外置電阻設定輸出電流,開關式1A恒流芯片。軟啟動、高達1MHZ開關頻率,開路保護,輸入范圍在6V-40VDC內都能穩定可靠…

js如何循環HTMLCollection

場景 當使用document.getElementsByClassName方法獲取一個包含DOM節點的集合arr時&#xff0c;正常的forEach和map操作都會報一個arr.map is not a function的錯誤因為這里的arr并不是標準的 數組 (Array)&#xff0c;而是一個 HTMLCollection 解決 使用document.querySelector…

Dart 逆襲之路:Flutter 4.0 如何推動移動端開發變革?

本文深入探討 Dart 語言在 Flutter 4.0 框架下如何推動移動端開發變革。開篇回顧 Dart 誕生背景與初期困境&#xff0c;闡述其在與 Flutter 結合后嶄露頭角。進而詳細剖析 Flutter 4.0&#xff0c;從全新渲染引擎帶來的性能飛躍、豐富實用新組件簡化開發&#xff0c;到手勢系統…

基于MATLAB的卷積神經網絡手寫數字識別

一、系統架構設計 #mermaid-svg-QQU8judlmQgHc2Lh {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-QQU8judlmQgHc2Lh .error-icon{fill:#552222;}#mermaid-svg-QQU8judlmQgHc2Lh .error-text{fill:#552222;stroke:#5…