Ntfs!LfsReadRestart函數分析得到Ntfs!LFS_RESTART_PAGE_HEADER

第一部分:

0: kd> p
Ntfs!LfsPinOrMapData+0x8c:
f71797f6 ff15a40016f7??? call??? dword ptr [Ntfs!_imp__CcPinRead (f71600a4)]
0: kd> t
nt!CcPinRead:
80bf9a5a 6a2c??????????? push??? 2Ch
0: kd> kc
#
00 nt!CcPinRead
01 Ntfs!LfsPinOrMapData
02 Ntfs!LfsReadRestart
03 Ntfs!LfsRestartLogFile
04 Ntfs!LfsOpenLogFile
05 Ntfs!NtfsStartLogFile
06 Ntfs!NtfsMountVolume
07 Ntfs!NtfsCommonFileSystemControl
08 Ntfs!NtfsFspDispatch
09 nt!ExpWorkerThread
0a nt!PspSystemThreadStartup
0b nt!KiThreadStartup
0: kd> dv
FileObject = 0x89469688
FileOffset = 0xf78d68b0 {0}
Length = 0x200
Flags = 1
Bcb = 0xf78d6900

??? //
//? Get pointer to SharedCacheMap.
//

??? SharedCacheMap = FileObject->SectionObjectPointer->SharedCacheMap;

第二部分:

0: kd> dv
FileObject = 0x89469688
FileOffset = 0xf78d68b0 {0}
Length = 0x200
Flags = 1

????????? MyBcb = 0x00000000

??????????? //
//? Call local routine to Map or Access the file data.? If we cannot map
//? the data because of a Wait condition, return FALSE.
//

??????????? if (!CcPinFileData( FileObject,
&LocalFileOffset,
Length,
(BOOLEAN)!FlagOn(SharedCacheMap->Flags, MODIFIED_WRITE_DISABLED),
FALSE,
Flags,
CurrentBcbPtr,
&LocalBuffer,
&BeyondLastByte )) {

0: kd> p
nt!CcPinRead+0xbf:
80bf9b19 e8c0b0e1ff????? call??? nt!CcPinFileData (80a14bde)
0: kd> p
nt!CcPinRead+0xc4:
80bf9b1e 84c0??????????? test??? al,al
0: kd> r
eax=f78d6801

第三部分:

dv
LocalBuffer = 0xc1140000

0: kd> dt lfs_restart_page_header 0xc1140000
Ntfs!LFS_RESTART_PAGE_HEADER
+0x000 MultiSectorHeader : _MULTI_SECTOR_HEADER
+0x008 ChkDskLsn??????? : _LARGE_INTEGER 0x0
+0x010 SystemPageSize?? : 0x1000
+0x014 LogPageSize????? : 0x1000
+0x018 RestartOffset??? : 0x30
+0x01a MinorVersion???? : 0n1
+0x01c MajorVersion???? : 0n1
+0x01e UpdateSequenceArray : [1] 9


0: kd> dd 0xc1140000
c1140000? 52545352 0009001e 00000000 00000000
c1140010? 00001000 00001000 00010030 00090001
c1140020? 00000000 00000000 00000000 00000000
c1140030? 08109f97 00000000 ffff0001 00020000
c1140040? 00000028 004000e0 04000000 00000000
c1140050? 00000068 00400030 85e12259 00000000
c1140060? 00000000 00000000 00000000 00000000
c1140070? 08109f8c 00000000 08109f97 00000000
0: kd> db 0xc1140000
c1140000? 52 53 54 52 1e 00 09 00-00 00 00 00 00 00 00 00? RSTR............
c1140010? 00 10 00 00 00 10 00 00-30 00 01 00 01 00 09 00? ........0.......
c1140020? 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00? ................
c1140030? 97 9f 10 08 00 00 00 00-01 00 ff ff 00 00 02 00? ................
c1140040? 28 00 00 00 e0 00 40 00-00 00 00 04 00 00 00 00? (.....@.........
c1140050? 68 00 00 00 30 00 40 00-59 22 e1 85 00 00 00 00? h...0.@.Y"......
c1140060? 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00? ................
c1140070? 8c 9f 10 08 00 00 00 00-97 9f 10 08 00 00 00 00? ................
0: kd> db 0xc1140000+80
c1140080? ff ff ff ff 00 00 00 00-00 00 00 00 08 00 00 00? ................
c1140090? 4e 00 54 00 46 00 53 00-00 00 00 00 00 00 00 00? N.T.F.S.........
c11400a0? 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00? ................
c11400b0? 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00? ................
c11400c0? 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00? ................
c11400d0? 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00? ................
c11400e0? 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00? ................
c11400f0? 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00? ................

0: kd> dt lfs_restart_area 0xc1140000+30
Ntfs!LFS_RESTART_AREA
+0x000 CurrentLsn?????? : _LARGE_INTEGER 0x8109f97
+0x008 LogClients?????? : 1
+0x00a ClientFreeList?? : 0xffff
+0x00c ClientInUseList? : 0
+0x00e Flags??????????? : 2
+0x010 SeqNumberBits??? : 0x28
+0x014 RestartAreaLength : 0xe0
+0x016 ClientArrayOffset : 0x40
+0x018 FileSize???????? : 0n67108864
+0x020 LastLsnDataLength : 0x68
+0x024 RecordHeaderLength : 0x30
+0x026 LogPageDataOffset : 0x40
+0x028 RestartOpenLogCount : 0x85e12259
+0x02c LastFailedFlushStatus : 0
+0x030 LastFailedFlushOffset : 0n0
+0x038 LastFailedFlushLsn : _LARGE_INTEGER 0x0
+0x040 LogClientArray?? : [1] _LFS_CLIENT_RECORD
0: kd> dx -id 0,0,899a2278 -r1 (*((Ntfs!_LFS_CLIENT_RECORD (*)[1])0xc1140070))
(*((Ntfs!_LFS_CLIENT_RECORD (*)[1])0xc1140070))???????????????? [Type: _LFS_CLIENT_RECORD [1]]
[0]????????????? [Type: _LFS_CLIENT_RECORD]
0: kd> dx -id 0,0,899a2278 -r1 (*((Ntfs!_LFS_CLIENT_RECORD *)0xc1140070))
(*((Ntfs!_LFS_CLIENT_RECORD *)0xc1140070))???????????????? [Type: _LFS_CLIENT_RECORD]
[+0x000] OldestLsn??????? : {135307148} [Type: _LARGE_INTEGER]
[+0x008] ClientRestartLsn : {135307159} [Type: _LARGE_INTEGER]
[+0x010] PrevClient?????? : 0xffff [Type: unsigned short]
[+0x012] NextClient?????? : 0xffff [Type: unsigned short]
[+0x014] SeqNumber??????? : 0x0 [Type: unsigned short]
[+0x016] AlignWord??????? : 0x0 [Type: unsigned short]
[+0x018] AlignDWord?????? : 0x0 [Type: unsigned long]
[+0x01c] ClientNameLength : 0x8 [Type: unsigned long]
[+0x020] ClientName?????? [Type: unsigned short [64]]
0: kd> dx -id 0,0,899a2278 -r1 (*((Ntfs!unsigned short (*)[64])0xc1140090))
(*((Ntfs!unsigned short (*)[64])0xc1140090))???????????????? [Type: unsigned short [64]]
[0]????????????? : 0x4e [Type: unsigned short]
[1]????????????? : 0x54 [Type: unsigned short]
[2]????????????? : 0x46 [Type: unsigned short]
[3]????????????? : 0x53 [Type: unsigned short]
0: kd> db 0xc1140090
c1140090? 4e 00 54 00 46 00 53 00-00 00 00 00 00 00 00 00? N.T.F.S.........

第四部分:


0: kd> dt Shared_Cache_Map 0x89469530
nt!SHARED_CACHE_MAP
+0x000 NodeTypeCode???? : 0n767
+0x002 NodeByteSize???? : 0n304
+0x004 OpenCount??????? : 1
+0x008 FileSize???????? : _LARGE_INTEGER 0x4000000
+0x010 BcbList????????? : _LIST_ENTRY [ 0x894d1400 - 0x894d1208 ]
+0x018 SectionSize????? : _LARGE_INTEGER 0x4000000
+0x020 ValidDataLength? : _LARGE_INTEGER 0x7fffffff`ffffffff
+0x028 ValidDataGoal??? : _LARGE_INTEGER 0x7fffffff`ffffffff
+0x030 InitialVacbs???? : [4] (null)
+0x040 Vacbs??????????? : 0x89469320? -> 0x894d1008 _VACB

0: kd> dt subsection 0x899bf650+30
nt!SUBSECTION
+0x000 ControlArea????? : 0x899bf650 _CONTROL_AREA
+0x004 u??????????????? : __unnamed
+0x008 StartingSector?? : 0
+0x00c NumberOfFullSectors : 0x4000
+0x010 SubsectionBase?? : 0xe138d000 _MMPTE
+0x014 UnusedPtes?????? : 0
+0x018 PtesInSubsection : 0x4000
+0x01c NextSubsection?? : (null)

0: kd> dd 0xe138d000
e138d000? 0a0ee921 fdbe6cc0 fdbe6cc0 fdbe6cc0
e138d010? fdbe6cc0 fdbe6cc0 fdbe6cc0 fdbe6cc0


0: kd> !dc a0ee000
# a0ee000 52545352 0009001e 00000000 00000000 RSTR............
# a0ee010 00001000 00001000 00010030 00090001 ........0.......
# a0ee020 00000000 00000000 00000000 00000000 ................
# a0ee030 08109f97 00000000 ffff0001 00020000 ................
# a0ee040 00000028 004000e0 04000000 00000000 (.....@.........
# a0ee050 00000068 00400030 85e12259 00000000 h...0.@.Y"......
# a0ee060 00000000 00000000 00000000 00000000 ................
# a0ee070 08109f8c 00000000 08109f97 00000000 ................


0: kd> !dc a0ee000+80*1f
# a0eef80 00000000 00000000 00000000 00000000 ................
# a0eef90 00000000 00000000 00000000 00000000 ................
# a0eefa0 00000000 00000000 00000000 00000000 ................
# a0eefb0 00000000 00000000 00000000 00000000 ................
# a0eefc0 00000000 00000000 00000000 00000000 ................
# a0eefd0 00000000 00000000 00000000 00000000 ................
# a0eefe0 00000000 00000000 00000000 00000000 ................
# a0eeff0 00000000 00000000 00000000 00000000 ................
0: kd> !dc a0ee000+80*20
# a0ef000 e135ff48 00000001 e135c2f0 899c59a8 H.5.......5..Y..
# a0ef010 00000001 00000001 00000000 00000000 ................
# a0ef020 00000000 00000000 e1360034 00000000 ........4.6.....
# a0ef030 ffffffff 00000007 00000000 00000000 ................
# a0ef040 00000000 00000000 00000000 00000000 ................
# a0ef050 00000000 00000000 00000000 00000000 ................
# a0ef060 00000000 00000000 00000000 00000000 ................
# a0ef070 00000000 00000000 00000000 00000000 ................

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

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

相關文章

skywalking-agent-docker鏡像

FROM centos:7.9.2009 USER root# 定義 Arthas 目錄環境變量 ENV ARTHAS_HOME/opt/arthas# 更改 YUM 源并清理緩存 RUN mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak && \rm -rf /etc/yum.repos.d/* && \curl -o /etc/yum.rep…

數據庫開發運維的集成:彌合開發與運維之間的鴻溝

在傳統的軟件開發工作流程中,數據庫變更往往是事后才考慮的問題。應用程序代碼遵循定義明確的開發運維實踐,包括版本控制、自動測試和持續部署,而數據庫變更則經常是由數據庫管理員手動執行的高風險操作。這種脫節造成了瓶頸,帶來…

PiscTrace應用:從 YOLO-Pose 到深蹲與引體向上計數:實時健身動作分析與實現

隨著健身行業的發展,越來越多的智能應用涌現,用于幫助健身者更好地記錄和分析運動情況。特別是在體能訓練中,俯臥撐和引體向上是兩個非常常見的動作,它們通常用來鍛煉上半身力量和耐力。為了使訓練更加科學和高效,實時…

【unity】webCanvas.enabled = false;和webCanvas.gameObject.SetActive(false);的優缺點比較

在 Unity 中,webCanvas.gameObject.SetActive(false) 和 webCanvas.enabled false 是兩種不同的隱藏 UI 的方式,它們的核心區別在于作用范圍和對組件狀態的影響。理解這些差異能幫助你避免初始化失敗、性能問題和邏輯錯誤。 1核心區別 gameObject.SetAc…

深入探索 pnpm:高效磁盤利用與靈活的包管理解決方案

引言 在現代 JavaScript 開發中,依賴管理效率直接影響開發體驗。傳統工具如 npm 和 yarn 在大型項目中常面臨磁盤冗余和性能瓶頸。pnpm(Performant npm)通過創新的硬鏈接和符號鏈接機制,解決了這些痛點。本文將深入解析 pnpm 的核…

Hive MetaStore的實現和優化

在大數據領域,數據管理與存儲至關重要,Hive MetaStore(HMS)作為 Hive 數據倉庫的核心組件,承擔著元數據管理的關鍵職責。隨著數據規模不斷膨脹,其性能與穩定性面臨挑戰。本文將深入剖析 HMS 的實現機制&…

一文讀懂動態規劃:多種經典問題和思路

一、動態規劃算法的思想與核心概念框架 1. 動態規劃的基本思想 動態規劃(Dynamic Programming, DP)是一種通過將復雜問題分解為重疊子問題,并利用子問題的解來高效解決原問題的方法。其核心思想是避免重復計算,通過存儲中間結果&a…

阿幸課堂隨機點名

代碼功能 這個是一個HTML網頁端,簡單來說就是可以雙擊之后運行進行點名。 當然,不局限于課堂點名 代碼功能 Excel 導入增強: 增加了列選擇器,可以指定從哪一列讀取學生姓名 增加了起始行選擇器,可以跳過標題行或其…

LeetCode 560: 和為K的子數組

題目描述給定一個整數數組 nums 和一個整數 k,請統計并返回該數組中和為 k 的連續子數組的個數。示例 1:輸入:nums [1,1,1], k 2 輸出:2示例 2:輸入:nums [1,2,3], k 3 輸出:2提示&#xff…

微軟官方C++構建工具:歷史演變、核心組件與現代實踐指南

引言:C構建工具的戰略意義 在Windows生態系統中,??微軟C構建工具??(Microsoft C Build Tools)構成了數百萬開發者和應用程序的技術基石。從早期的MS-DOS命令行工具到如今支持??跨平臺開發??的現代化工具鏈,微…

探索Cocos_CoilTheRope:一款創新的游戲引擎擴展項目

探索Cocos_CoilTheRope:一款創新的游戲引擎擴展項目 去發現同類優質開源項目:https://gitcode.com/ 是一個基于Cocos2d-x游戲引擎的擴展庫,旨在為開發者提供一種簡便的方法來實現繩子纏繞和物理交互效果。該項目由DreamLXW開發并維護,為游戲…

爬蟲-正則表達式

在線正則表達式測試OSCHINA.NET在線工具,ostools為開發設計人員提供在線工具,提供jsbin在線 CSS、JS 調試,在線 Java API文檔,在線 PHP API文檔,在線 Node.js API文檔,Less CSS編譯器,MarkDown編譯器等其他在線工具https://tool.oschina.net/…

【BTC】數據結構

目錄 那比特幣區塊鏈的組織形式到底是以鏈表的形式,還是樹的形式呢? 區塊頭和區塊體與默克爾樹的關系 默克爾證明詳解 區塊鏈和鏈表最大的區別就是區塊鏈用哈希指針代替了普通指針。 鏈表的指針就是指向一個結構體在內存中的地址,而哈希指…

飛算 JavaAI:讓 Java 開發效率飆升的智能助手,日常開發全場景應用指南

飛算 JavaAI:讓 Java 開發效率飆升的智能助手 ,日常開發全場景應用指南 在 Java 開發的日常工作中,開發者常常面臨各類重復性勞動與邏輯復雜度挑戰。飛算 JavaAI 作為專注于 Java 領域的智能開發助手,能夠覆蓋從代碼生成到項目維護…

8.2 文檔預處理模塊(二)

一、從0開始:簡易RAG實現 在構建更復雜的 RAG 架構之前,我們先從最基礎的版本入手。整個流程可以分為以下幾個關鍵步驟: 1.數據導入:加載并預處理原始文本數據,為后續處理做好準備。 2.文本分塊:將長文本…

【系統與工具】Linux——Linux簡介、安裝、簡單使用

計算機概論與Linux簡介 計算機概論Linux介紹與版本 Linux的規劃與安裝 Linux與硬件平臺密切相關規劃硬件與Linux安裝 主機規劃與磁盤分區安裝CentOS、多重引導 簡單使用 幫助手冊文本編輯器關機 0. Linux介紹與版本 操作系統(Linux):高效…

從視頻數據到數字孿生:如何構建虛擬與現實的橋梁?

概述 視頻數據與三維場景融合渲染技術通過將動態視頻與靜態三維模型結合,利用GPU加速、WebGL渲染、數字孿生等技術,實現虛擬與現實的交互式融合。該技術廣泛應用于智慧城市、工業監控、虛擬現實、游戲特效等領域,能夠提升場景的直觀性和用戶沉…

【筆記】開源 AI Agent 項目 V1 版本 [新版] 部署 日志

kortix-ai/suna at v1 一、最新版本號 V1 二、部署截圖 本地開發環境仍然依賴于 Poetry 環境&#xff1a; &#xff08;Python>3.11,<3.13&#xff09; 創建本地 Poetry 虛擬環境 Python 多版本環境治理理念驅動的系統架構設計&#xff1a;三維治理、四級隔離、五項自…

NumPy-梯度與導數計算詳解

NumPy-梯度與導數計算詳解一、梯度與導數的基本概念1. 導數的定義2. 梯度的定義二、NumPy中的梯度計算函數&#xff1a;np.gradient()1. 函數語法2. 一維數組的梯度計算3. 多維數組的梯度計算三、基于梯度的導數近似方法1. 前向差分2. 中心差分四、實際應用場景1. 函數優化2. 數…

Redis架構安全

先學習&#xff1a;Redis架構簡介-CSDN博客 Redis壓測 Redis一般應用于高并發的場景&#xff0c;所以一定要對Redis的性能做壓測。 Redis提供了壓測腳本redis-benchmark&#xff0c;可以對Redis進行快速的基準測試。 # 20個線程&#xff0c;100W個請求&#xff0c;測試redi…