Windows 10 20H1.19577 开始 System进程内 Ntdll的一点变化 背景 最近为了解决一个兼容问题,看了下 Windows 10 20H1的内核,发现 了一处有点意思的改动。 简单来说, ntdll.dll过去映射在 System进程以及其他所有进程内的时 候,都是以可执行页面进行映射的。但从 19577开始,在 System进 程内, NTDLL开始映射为只读页面,而在其他所有进程内, NTDLL 仍映射为可执行页面。 初步检查 VADs 这点可以用 Windbg来印证: 切换到 System进程后,查看 VADs 1. 1: kd> !vad 2. VAD level start end commit 3. 9769a248 ( 2) e0 e0 0 Mapped READWRITE Pag efile-backed section 4. 9769a2a0 ( 1) f0 f0 0 Mapped READWRITE Pag efile-backed section 5. 94bdf6c0 ( 2) 100 100 0 Mapped READWRIT E Pag efile-backed section 6. 8c266770 ( 0) 3d0 579 0 Mapped Exe READONLY \Wi ndows\System32 \ntdll.dll 7. 86177288 ( 1) 7ffe0 7ffe0 1 Private READONLY 8. 86177078 ( 2) 7ffe7 7ffe7 1 Private READONLY 9. Total VADs: 6, average level: 2, maximum depth: 2 可以看到,映射的 ntdll.dll是READ ONLY 那么我们切到其他进程,例如 smss,查看 VADs,可以看到这里 ntdll.dll映射的是 EXECUTE_WRITECOPY 1. 1: kd> !vad 2. VAD level start end commit 3. 90aff2a0 ( 3) 630 630 0 Mapped READONLY Pag efile-backed section 4. 8ec7afb0 ( 2) 650 66c 0 Mapped READONLY Pag efile-backed section 5. 90a72a08 ( 3) 670 6af 5 Private READWRITE 6. 8ec7ada0 ( 1) 6b0 6e0 0 Mapped READONLY \Wi ndows\System32 \C_936.NLS 7. 8ec7abe8 ( 3) 6f0 6f2 0 Mapped READONLY \Wi ndows\System32 \l_intl.nls 8. 90a72cd8 ( 2) 700 708 1 Private READWRITE 9. 90a72eb8 ( 4) 710 74f 5 Private READWRITE 10. 90a72e58 ( 3) 750 78f 5 Private READWRITE 11. a32a52b8 ( 4) 790 7cf 5 Private READWRITE 12. 90a72a68 ( 0) 800 9ff 5 Private READWRITE 13. 8ec7ab38 ( 3) aa0 abb 3 Mapped Exe EXECUTE_WRITECOPY \W indows\System32 \smss.exe 14. 8ec7af58 ( 2) ac0 2abf 8 Mapped NO_ACCESS Pag efile-backed section 15. 90a72d38 ( 3) 2c00 2dff 15 Private READWRITE 16. 8ec7ab90 ( 1) 775f0 77799 9 Mapped Exe EXECUTE_WRITECOPY \W indows\System32 \ntdll.dll 17. 90a72d08 ( 4) 7f960 7f968 2 Private READWRITE 18. 90a72d68 ( 3) 7f970 7f971 2 Private READWRITE 19. 8ec7adf8 ( 4) 7f980 7f980 0 Mapped READONLY Pag efile-backed section 20. 90a72948 ( 2) 7ffe0 7ffe0 1 Private READONLY 21. 90a72a98 ( 3) 7ffe7 7ffe7 1 Private READONLY 22. Total VADs: 19, average level: 3, maximum depth: 4 Windbg的!vad指令是简单使用 _MMVAD ->VadFlags.Protection 来判 断其页面的保护属性的。我们查看对应 VAD结构也可以获得相同结 论: 1. 1: kd> dt _MMVAD 8c266770 -b 2. nt!_MMVAD 3. +0x000 Core : _MMVAD_SHORT 4. +0x000 NextVad : 0x9769a2a0 5. +0x004 ExtraCreateInfo : 0x86177288 6. +0x000 VadNode : _RTL_BALANCED_NODE 7. +0x000 Children : 8. [00] 0x9769a2a0 9. [01] 0x86177288 10. +0x000 Left : 0x9769a2a0 11. +0x004 Right : 0x86177288 12. +0x008 Red : 0y0 13. +0x008 Balance : 0y00 14. +0x008 ParentValue : 0 15. +0x00c StartingVpn : 0x3d0 16. +0x010 EndingVpn : 0x579 17. +0x014 ReferenceCount : 0n0 18. +0x018 PushLock : _EX_PUSH_LOCK 19. +0x000 Locked : 0y0 20. +0x000 Waiting

pdf文档 360 Windows1020H1.19577开始System进程内Ntdll的一点变化

安全报告 > 360 > 文档预览
中文文档 9 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共9页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
360 Windows1020H1.19577开始System进程内Ntdll的一点变化 第 1 页 360 Windows1020H1.19577开始System进程内Ntdll的一点变化 第 2 页 360 Windows1020H1.19577开始System进程内Ntdll的一点变化 第 3 页
下载文档到电脑,方便使用
本文档由 思安2022-11-29 01:40:10上传分享
给文档打分
您好可以输入 255 个字符
网站域名是多少( 答案:github5.com )
评论列表
  • 暂时还没有评论,期待您的金玉良言
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。