第一部分:

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 备份文件遍历&…