news 2026/6/9 18:34:03

nt!MiInitializeLoadedModuleList分析和全局变量nt!PsLoadedModuleList初始化和LoaderBlock->LoadOrderListHead的关系非常重要

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
nt!MiInitializeLoadedModuleList分析和全局变量nt!PsLoadedModuleList初始化和LoaderBlock->LoadOrderListHead的关系非常重要

nt!MiInitializeLoadedModuleList分析和全局变量nt!PsLoadedModuleList初始化和LoaderBlock->LoadOrderListHead的关系非常重要

kd> t
Breakpoint 6 hit
eax=00000001 ebx=00000000 ecx=00000000 edx=00000004 esi=00000001 edi=c0603840
eip=80ec6342 esp=80b1e43c ebp=80b1e4b4 iopl=0         nv up ei pl nz na po nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00000202
nt!MiInitializeLoadedModuleList:
80ec6342 55              push    ebp
kd> kc
 # 
00 nt!MiInitializeLoadedModuleList
01 nt!MmInitSystem
02 nt!ExpInitializeExecutive
03 nt!KiInitializeKernel
04 nt!KiSystemStartup

kd> kv
 # ChildEBP RetAddr  Args to Child              
00 80b1e438 80ecda7b 80076000 00000000 800798e8 nt!MiInitializeLoadedModuleList (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\mm\sysload.c @ 7852] 
01 80b1e4b4 80eb1e55 01000001 80076000 80b2a460 nt!MmInitSystem+0x15fd (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\mm\mminit.c @ 2181] 
02 80b1e638 80ec26cf 00000000 00000002 8003fc00 nt!ExpInitializeExecutive+0x2c7 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\init\init.c @ 1031] 
03 80b1e68c 80ec0696 80b2a6c0 80b2a460 80b1e950 nt!KiInitializeKernel+0x409 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ke\i386\kernlini.c @ 785] 
04 00000000 00000000 00000000 00000000 00000000 nt!KiSystemStartup+0x2d6 [d:\srv03rtm\base\ntos\ke\i386\newsysbg.asm @ 573] 
kd> dv
    LoaderBlock = 0x80076000
 CommittedPages = 0x80ec6342
      NextEntry = 0x00000008


kd> x nt!PsLoadedModuleList
80c2dd70          nt!PsLoadedModuleList = struct _LIST_ENTRY [ 0x0 - 0x0 ]
kd> dx -r1 (*((ntkrpamp!_LIST_ENTRY *)0x80c2dd70))
(*((ntkrpamp!_LIST_ENTRY *)0x80c2dd70))                 [Type: _LIST_ENTRY]
    [+0x000] Flink            : 0x0 [Type: _LIST_ENTRY *]
    [+0x004] Blink            : 0x0 [Type: _LIST_ENTRY *]


kd> dv
    LoaderBlock = 0x80076000
 CommittedPages = 0x80ec6342
      NextEntry = 0x00000008

kd> dx -r1 ((ntkrpamp!_LOADER_PARAMETER_BLOCK *)0x80076000)
((ntkrpamp!_LOADER_PARAMETER_BLOCK *)0x80076000)                 : 0x80076000 [Type: _LOADER_PARAMETER_BLOCK *]
    [+0x000] LoadOrderListHead [Type: _LIST_ENTRY]
    [+0x008] MemoryDescriptorListHead [Type: _LIST_ENTRY]
    [+0x010] BootDriverListHead [Type: _LIST_ENTRY]
    [+0x018] KernelStack      : 0x80b1e950 [Type: unsigned long]
    [+0x01c] Prcb             : 0x0 [Type: unsigned long]
    [+0x020] Process          : 0x0 [Type: unsigned long]
    [+0x024] Thread           : 0x80b2a460 [Type: unsigned long]
    [+0x028] RegistryLength   : 0x240000 [Type: unsigned long]
    [+0x02c] RegistryBase     : 0x80100000 [Type: void *]
    [+0x030] ConfigurationRoot : 0x800777a8 [Type: _CONFIGURATION_COMPONENT_DATA *]
    [+0x034] ArcBootDeviceName : 0x80088398 : "multi(0)disk(0)rdisk(0)partition(1)" [Type: char *]
    [+0x038] ArcHalDeviceName : 0x800883d0 : "multi(0)disk(0)rdisk(0)partition(1)" [Type: char *]
    [+0x03c] NtBootPathName   : 0x800883c0 : "\WINDOWS\" [Type: char *]
    [+0x040] NtHalPathName    : 0x800883f8 : "\" [Type: char *]
    [+0x044] LoadOptions      : 0x80078168 : "FASTDETECT  BREAK  3G  PAE  DEBUG  DEBUGPORT=COM1:  BAUDRATE=115200  LASTBOOTSTATUS=2" [Type: char *]
    [+0x048] NlsData          : 0x8007cab0 [Type: _NLS_DATA_BLOCK *]
    [+0x04c] ArcDiskInformation : 0x80078208 [Type: _ARC_DISK_INFORMATION *]
    [+0x050] OemFontFile      : 0x80083090 [Type: void *]
    [+0x054] SetupLoaderBlock : 0x0 [Type: _SETUP_LOADER_BLOCK *]
    [+0x058] Extension        : 0x80076068 [Type: _LOADER_PARAMETER_EXTENSION *]
    [+0x05c] u                [Type: __unnamed]
kd> dx -r1 (*((ntkrpamp!_LIST_ENTRY *)0x80076000))
(*((ntkrpamp!_LIST_ENTRY *)0x80076000))                 [Type: _LIST_ENTRY]
    [+0x000] Flink            : 0x800797a8 [Type: _LIST_ENTRY *]
    [+0x004] Blink            : 0x80088300 [Type: _LIST_ENTRY *]

    NextEntry = LoaderBlock->LoadOrderListHead.Flink;
    NextEntryEnd = &LoaderBlock->LoadOrderListHead;

    DataTableEntry2 = CONTAINING_RECORD (NextEntry,
          &nb

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 18:34:32

英伟达圣诞偷袭,200亿美元收购Groq

诸神缄默不语-个人技术博文与视频目录 看了substack的FOMO研究院圣诞特别篇介绍groq, LPU和英伟达实质性收购groq的文章。感觉写的非常好,及时分享。 (因为限时48小时免费,趁还能看赶紧写) Groq(不是马斯克的grok&am…

作者头像 李华
网站建设 2026/6/9 19:40:34

transformer-explainer

https://poloclub.github.io/transformer-explainer/

作者头像 李华
网站建设 2026/6/9 19:59:01

真实污水处理项目中的S7-1200实战经验

西门子PLC1200真实项目案例程序十 KTp1200屏画面 十电路图 博途V16 V17版,模拟量输入输出处理,液位设置处理,流量处理,双设备轮换,modbus通讯控制变频器,事件记录,污水处理设备程序最近刚完成某…

作者头像 李华
网站建设 2026/6/9 19:59:06

JavaScript 常见算法复杂度总结(大O表示法)

大O表示法具体含义总结表时间复杂度详解大O表示名称含义示例增长曲线执行时间(n1000)假设O(1)常数时间执行时间不随输入规模变化数组索引访问、哈希表查找水平线1单位时间O(log n)对数时间执行时间随输入规模对数增长二分查找、平衡树操作缓慢上升曲线10单位时间O(√n)平方根时…

作者头像 李华
网站建设 2026/6/9 19:48:59

第六章 染色体变异

第七章细菌和病毒的遗传第八章基因的表达与调控第九章基因工程和基因组学第十章基因突变第十一章细胞质遗传第十二章遗传与发育第十三章数量性状遗传第十四章群体遗传与进化

作者头像 李华
网站建设 2026/6/6 21:41:24

TIME_WAIT详解

一、为什么需要 TIME_WAIT?虽然连接看起来已经可以结束了,但 TCP 设计这个状态主要是为了解决两个核心问题:1. 确保最后一个 ACK 能够到达对方在 TCP 四次挥手中,主动关闭方发送完最后一个确认包(ACK)后&am…

作者头像 李华