nt!CcGetVirtualAddressIfMapped函數中的nt!CcGetVacbLargeOffset函數分析--重要


第一部分:

1: kd> kc
?#
00 nt!CcGetVirtualAddressIfMapped
01 nt!CcFlushCache
02 Ntfs!LfsFlushLfcb
03 Ntfs!LfsFlushToLsnPriv
04 Ntfs!LfsWriteLfsRestart
05 Ntfs!LfsWriteRestartArea
06 Ntfs!NtfsCheckpointVolume
07 Ntfs!NtfsCheckpointAllVolumes
08 nt!ExpWorkerThread
09 nt!PspSystemThreadStartup
0a nt!KiThreadStartup
1: kd> dv
?SharedCacheMap = 0x89469530
???? FileOffset = 0n7884800
?????????? Vacb = 0xf78d279c
?ReceivedLength = 0xf78d27ac
???? VacbOffset = 8
??????? OldIrql = 0xf7 ''

??? if ((*Vacb = GetVacb( SharedCacheMap, *(PLARGE_INTEGER)&FileOffset )) != NULL) {

??????? if ((*Vacb)->Overlay.ActiveCount == 0) {
??????????? SharedCacheMap->VacbActiveCount += 1;
??????? }

#define GetVacb(SCM,OFF) (??????????????????????????????????????????????????????????????? \
??? ((SCM)->SectionSize.QuadPart > VACB_SIZE_OF_FIRST_LEVEL) ???????????????????????????? \
??? CcGetVacbLargeOffset((SCM),(OFF).QuadPart) :????????????????????????????????????????? \
??? (SCM)->Vacbs[(OFF).LowPart >> VACB_OFFSET_SHIFT]????????????????????????????????????? \
)


第二部分:

1: kd> dx -r1 ((ntkrnlmp!_SHARED_CACHE_MAP *)0x89469530)
((ntkrnlmp!_SHARED_CACHE_MAP *)0x89469530)???????????????? : 0x89469530 [Type: _SHARED_CACHE_MAP *]
??? [+0x000] NodeTypeCode???? : 767 [Type: short]
??? [+0x002] NodeByteSize???? : 304 [Type: short]
??? [+0x004] OpenCount??????? : 0x2 [Type: unsigned long]
??? [+0x008] FileSize???????? : {67108864} [Type: _LARGE_INTEGER]
??? [+0x010] BcbList????????? [Type: _LIST_ENTRY]
??? [+0x018] SectionSize????? : {67108864} [Type: _LARGE_INTEGER]
??? [+0x020] ValidDataLength? : {9223372036854775807} [Type: _LARGE_INTEGER]
??? [+0x028] ValidDataGoal??? : {9223372036854775807} [Type: _LARGE_INTEGER]
??? [+0x030] InitialVacbs???? [Type: _VACB * [4]]
??? [+0x040] Vacbs??????????? : 0x89469320 [Type: _VACB * *]
1: kd> dd 0x89469320
89469320? 894d1008 00000000 00000000 00000000
89469330? 00000000 00000000 00000000 00000000


1: kd> p
nt!CcGetVirtualAddressIfMapped+0xa7:
80a19007 e8eefbffff????? call??? nt!CcGetVacbLargeOffset (80a18bfa)
1: kd> t
nt!CcGetVacbLargeOffset:
80a18bfa 55????????????? push??? ebp
1: kd> kc
?#
00 nt!CcGetVacbLargeOffset
01 nt!CcGetVirtualAddressIfMapped
02 nt!CcFlushCache
03 Ntfs!LfsFlushLfcb
04 Ntfs!LfsFlushToLsnPriv
05 Ntfs!LfsWriteLfsRestart
06 Ntfs!LfsWriteRestartArea
07 Ntfs!NtfsCheckpointVolume
08 Ntfs!NtfsCheckpointAllVolumes
09 nt!ExpWorkerThread
0a nt!PspSystemThreadStartup
0b nt!KiThreadStartup


1: kd> dv
?SharedCacheMap = 0x89469530
???? FileOffset = 0x00785000
????????? Level = 8

??? Shift -= VACB_LEVEL_SHIFT;
??? while (((Vacb = (PVACB)VacbArray[FileOffset >> Shift]) != NULL) && (Level != 0)) {

??????? Level -= 1;

??????? VacbArray = (PVACB *)Vacb;
??????? FileOffset &= ((LONGLONG)1 << Shift) - 1;

??????? Shift -= VACB_LEVEL_SHIFT;
??? }

1: kd> p
nt!CcGetVacbLargeOffset+0x6d:
80a18c67 e8c4af0d00????? call??? nt!_allshr (80af3c30)
1: kd> r
eax=00785000 ebx=89469320 ecx=00000019

1: kd> p
nt!CcGetVacbLargeOffset+0x94:
80a18c8e 21450c????????? and???? dword ptr [ebp+0Ch],eax
1: kd> r
eax=01ffffff ebx=00000000 ecx=00000019 edx=00000000 esi=894d1008 edi=00000019
eip=80a18c8e esp=f78d26f4 ebp=f78d270c


1: kd> dd f78d270c+0Ch
f78d2718? 00785000

1: kd> p
nt!CcGetVacbLargeOffset+0xa0:
80a18c9a 83ef07????????? sub???? edi,7
1: kd> p
nt!CcGetVacbLargeOffset+0xa3:
80a18c9d 8bcf??????????? mov???? ecx,edi
1: kd> r
eax=00785000 ebx=00000000 ecx=00000019 edx=00000000 esi=894d1008 edi=00000012


edi=00000012

?????? Shift -= VACB_LEVEL_SHIFT;?? ?=edi=00000012

第三部分:第二次循環


00785000


0111 1000 1001 0000 0000 0000

01?? ?11 10

0x1e

1: kd> dd 0x894d1008
894d1008? 89988018 00000000 00000000 00000000
894d1018? 00000000 00000000 00000000 00000000
894d1028? 00000000 00000000 00000000 00000000
894d1038? 00000000 00000000 00000000 00000000
894d1048? 00000000 00000000 00000000 00000000
894d1058? 00000000 00000000 00000000 00000000
894d1068? 00000000 00000000 00000000 00000000
894d1078? 00000000 89988048 89988498 00000000
1: kd> dd 0x894d1008+1e*4
894d1080? 89988498


1: kd> dt _vacb 89988498
nt!_VACB
?? +0x000 BaseAddress????? : 0xc2c40000 Void
?? +0x004 SharedCacheMap?? : 0x89469530 _SHARED_CACHE_MAP
?? +0x008 Overlay????????? : __unnamed
?? +0x010 LruList????????? : _LIST_ENTRY [ 0x80b1cb60 - 0x89988010 ]

1: kd> p
nt!CcGetVacbLargeOffset+0xb1:
80a18cab 3bf3??????????? cmp???? esi,ebx
1: kd> r
eax=0000001e ebx=00000000 ecx=00000012 edx=00000000 esi=89988498 edi=00000012


esi=89988498

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

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

相關文章

K8s入門指南:架構解析濃縮版與服務間調用實戰演示

目錄 前言一、k8s概念理解1、k8s整體架構&#xff08;1&#xff09; Master 主節點&#xff08;2&#xff09; Node 工作節點&#xff08;3&#xff09; Etcd 鍵值存儲數據庫 &#xff12;、Pod被視為最小的部署單元&#xff13;、k8s的五種控制器類型&#xff08;1&#xff09…

【ubuntu下小工具】Crontab定時任務進行數據備份和清理

背景 在生產環境的深度學習項目中&#xff0c;系統每日會持續生成大量數據。如果不進行有效管理&#xff0c;隨著時間的推移&#xff0c;磁盤空間將被占滿&#xff0c;最終導致服務器癱瘓。 為解決這一問題&#xff0c;需設置一個定時任務去執行腳本&#xff0c;用以完成&#…

3dgs涉及的基本概念:球諧系數(SH 系數)等

1.球諧系數&#xff08;SH 系數&#xff09; ──────────────────────────────────────── 1.1 什么是球諧函數 (Spherical Harmonics&#xff0c;縮寫為 SH) 球諧函數是一組定義在單位球面上的一組正交函數&#xff0c;類似于在二維平…

sql格式化自動識別SQL語法結構

一、安裝包 PoorMansTSqlFormatterLib 二、代碼實現 using Microsoft.AspNetCore.Mvc; using PoorMansTSqlFormatterLib.Formatters; using PoorMansTSqlFormatterLib.Parsers; using PoorMansTSqlFormatterLib.Tokenizers;namespace SaaS.OfficialWebSite.Web.Controllers …

LVS-DR負載均衡群集深度實踐:高性能架構設計與排障指南

目錄 一、核心原理與理論 二、背景與架構設計 三、全流程部署步驟 1. NFS共享存儲配置&#xff08;192.168.7.100&#xff09; 2. Real Server節點配置&#xff08;四臺服務器&#xff09; 3. Director服務器配置 四、常見問題解決方案 五、生產環境總結 拓撲示意圖&am…

Hall 定理學習筆記

定義 對于一張二分圖 G ( V , E ) G(V,E) G(V,E)&#xff0c;設其左右部點集分別為 V L , V R V_L,V_R VL?,VR?&#xff0c;不妨認為 ( ∣ V L ∣ ≤ ∣ V R ∣ ) (|V_L|\leq |V_R|) (∣VL?∣≤∣VR?∣)&#xff0c;定義該二分圖的一組 完備匹配 為左部 ∣ V L ∣ |V…

使用jmeter進行websocket連接測試

一、WebSocket Sampler 插件安裝 下載地址&#xff1a;http://download.csdn.net/detail/easternunbeaten/9753723 下載后&#xff0c;解壓直接拷貝到Jmeter的lib下的ext文件夾里面,重啟Jmeter&#xff0c;Sanpler下多一個Websocket選項 二、WebSocket 取樣器字段介紹 1、W…

網絡安全漏洞掃描是什么?如何識別目標進行掃描?

&#xff0c;現在大家對于網絡安全漏洞掃描那可是相當在意這網絡安全&#xff0c;如今在咱這個大時代里可是相當重要的一個事咧&#xff01;因為&#xff0c;隨著互聯網蹭蹭地發展&#xff0c;網絡攻擊還有數據泄露這類威脅那真是越來越多越來越大&#xff01; 咱先來說說啥叫…

NoSQL之Redis配置優化

NoSQL之Redis配置優化 一、Redis1.關系數據庫與非關系型數據庫關系型數據庫非關系型數據庫非關系型數據庫產生背景 2.Redis基礎Redis簡介Redis安裝部署配置參數 3.Redis命令工具redis-cli命令行工具redis-benchmark 測試工具 4.Redis數據庫常用命令key相關命令(1)keys&#xff…

《HTTP權威指南》 第14章 安全HTTP

安全HTTP需要提供的功能&#xff1a; 服務器認證客戶端認證完整性加密效率普適性管理的可擴展性適應性在社會上的可行性 HTTPS HTTPS方案的URL以https://開頭&#xff0c;區別于https://。 HTTPS在HTTP的基礎上使用SSL或者TLS&#xff08;傳輸層安全&#xff09;進行加密。 …

Kubernetes、Docker Swarm 與 Nomad 容器編排方案深度對比與選型指導

Kubernetes、Docker Swarm 與 Nomad 容器編排方案深度對比與選型指導 在微服務和云原生時代&#xff0c;容器編排已成為保證應用可用性與擴展性的核心技術。本文將從問題背景出發&#xff0c;深入對比 Kubernetes、Docker Swarm 和 Nomad 三大主流編排方案&#xff0c;分析各自…

c++開源庫項目框架匯總

Webbench Webbench是一個在linux下使用的非常簡單的網站壓測工具。它使用fork()模擬多個客戶端同時訪問我們設定的URL&#xff0c;測試網站在壓力下工作的性能&#xff0c;最多可以模擬3萬個并發連接去測試網站的負載能力。Webbench使用C語言編寫, 代碼實在太簡潔&#xff0c;源…

【LLaMA-Factory 實戰系列】三、命令行篇 - YAML 配置、高效微調與評估 Qwen2.5-VL

【LLaMA-Factory 實戰系列】三、命令行篇 - YAML 配置、高效微調與評估 Qwen2.5-VL 1. 引言2. 為什么從 WebUI 轉向命令行&#xff1f;3. 準備工作&#xff08;回顧&#xff09;4. 核心&#xff1a;創建并理解訓練配置文件4.1 選擇并復制基礎模板4.2 逐一解析與修改配置文件4.3…

3、NLP黃金九步法(問題定義-數據獲取-數據探索)

&#x1f3af; 為什么要學習NLP流程&#xff1f; 想象一下&#xff0c;你要做一道菜&#x1f373;。如果沒有清晰的步驟&#xff0c;隨便把食材扔進鍋里&#xff0c;結果會怎樣&#xff1f;NLP項目也是如此&#xff01; 就像做菜有固定流程一樣&#xff1a; 買菜 → 洗菜 → …

docker 安裝DM8達夢數據庫

搭建Docker 環境 查看docker 是否安裝 yum list installed | grep docker如若未安裝則安裝docker 環境 yum -y install docker啟動Docker systemctl start docker查看docker啟動結果 systemctl status docker搭建達夢數據庫 下載鏡像 傳送門 #導入鏡像 docker load -i…

Chrome MCP Server:AI驅動瀏覽器自動化測試實戰「喂飯教程」

Chrome MCP Server:AI驅動瀏覽器自動化測試實戰 一、項目簡介二、原理剖析1. 架構總覽三、安裝1. 環境準備2. 安裝步驟2.1 下載 Chrome 擴展2.2 安裝 mcp-chrome-bridge2.3 加載擴展2.4 啟動 MCP Server2.5 配置 AI 客戶端四、Chrome MCP Server API 參考五、用法實戰1. 與 AI…

.NET多線程任務實現的幾種方法及線程等待全面分析

文章目錄 1. 引言2. .NET多線程編程基礎2.1 線程概念回顧2.2 .NET線程模型概述 3. 多線程任務實現方法3.1 Thread類實現3.2 ThreadPool實現3.3 Task Parallel Library (TPL)3.4 Parallel類3.5 BackgroundWorker組件3.6 Async/Await模式3.7 各種方法的比較與選擇 4. 線程等待機制…

Typecho handsome訪客統計插件最新版VistorLoggerPro

文章目錄 介紹功能特點頁面預覽安裝及更新方法系統要求使用說明基本使用&#xff08;Handsome主題適用&#xff09; 隱私保護技術實現更新日志最后 介紹 這是一個為 Typecho 博客系統開發的訪客統計插件&#xff0c;基于原版的VistorLogger修改版本。該插件提供了詳細的訪問統…

藍橋杯備賽篇(上) - 參加藍橋杯所需要的基礎能力 1(C++)

目錄 一、&#xff08;工具&#xff09;DevC的安裝和使用1.1 DevC介紹1.2 下載1.3 部分使用技巧1.3.1 快捷鍵介紹1.3.2 調試快捷鍵 二、第一個C程序2.1 基礎程序2.2 main函數2.3 字符串2.4 頭文件2.5 cin和cout初識2.6 名字空間 三、注釋四、題目練習3.1 輸出第二個整數3.2 字符…

Bugku-CTF-web(適合初學者)

今天刷了一下 Bugku-CTF-web 的1-10題&#xff0c;比較簡單&#xff0c;比較娛樂&#xff0c;基本上看看源代碼就可以了&#xff0c;非常適合初學者。能夠學習到base64編碼&#xff0c;unicode編碼&#xff0c;dirb web目錄遍歷&#xff0c;SourceLeakHacker 備份文件遍歷&…