执行体方法通用格式定义

date
May 23, 2023
slug
format-definition-of-executable-method
status
Published
tags
Windows Internals
summary
这篇内容是关于Windows中可执行方法的通用格式定义的说明 。 通用格式由三部分组成:Prefix(前缀) 、 Operation(操作) 、 Object(对象) , 它们用于描述方法的内部组件 、 行为以及要操作的对象或资源 。 常见的前缀包括Alpc 、 Cc 、 Cm 、 Csr等 , 用于表示不同的组件或模块 。 这个格式用于定义Windows中各种方法的结构和行为方式 。
type
Post
Windows 中方法的通用格式定义为:
<Prefix><Operation><Object>
 
  • Prefix:表示导出例程的内部组件
  • Operation:表示这个方法的行为,怎么操作对象或者资源
  • Object:标识要操作的对象或资源
 

常见的 Prefix:

Prefix
Component
Alpc
Advanced Local Procedure Calls
Cc
Common Cache
Cm
Configuration manager
Csr
Client Server Runtime- communication with the Windows Subsystem process (Csrss.exe) functions.
Dbg
Kernel debug support
Dbgk
Debugging Framework for user mode
Em
Errata manager
Etw
Event Tracing for Windows
Ex
Executive support routines
FsRtl
File System Runtime Library
Hv
Hive library
Hvl
Hypervisor library
Io
I/O manager
Kd
Kernel debugger
Ke
Kernel
Kse
Kernel Shim Engine
Lsa
Local Security Authority
Mm
Memory manager
Nt
NT system services (accessible from user mode through system calls)
Ob
Object manager
Pf
Prefetcher
Po
Power manager
PoFx
Power framework
Pp
PnP manager
Ppm
Processor power manager
Ps
Process support
Rtl
Run-time library
Se
Security Reference Monitor
Sm
Store Manager
Tm
Transaction manager
Tp
Thread pool related functions
Ttm
Terminal timeout manager
Vf
Driver Verifier
Vsl
Virtual Secure Mode library
Wdi
Windows Diagnostic Infrastructure
Wfp
Windows FingerPrint
Whea
Windows Hardware Error Architecture
Wmi
Windows Management Instrumentation
Zw
Mirror entry point for system services (beginning with Nt) that sets previous access mode to kernel, which eliminates parameter validation, because Nt system services validate parameters only if previous access mode is user
 

Ntxxxx() 和 Zwxxxx() 的区别

用户模式下(ntdll.dll):

完全一致

内核模式下(ntoskrnl.exe):

  • NT 函数是存放在 SSDT 表中的,用来响应用户态的请求或者响应内核态 Zw 函数的请求,即无论走用户态路径还是内核态路径都是调用NT函数
  • Zw*->Nt*(Zw函数会调用Nt)
  • 内核应用只能调用 Zw*,不要直接调用 Nt*。Zw* 会自动设置 PreviousMode 为内核模式,就可以无需验证参数,直接调用。所以调用前最好提前检查好用户态传过来的参数。

参考:

 

© Frend Guo 2022 - 2024