认识WRK
来源:互联网 发布:xp下查找网络打印机 编辑:程序博客网 时间:2024/05/21 22:49
WRK 是微软于 2006 年针对教育和学术界开放的 Windows 内核的部分源码,而WRK编译后所得的结果是一个内核模块文件,即ntoskrnl.exe。所以,WRK是ntoskrnl.exe的部分实现。
因此,如果我们想了解ntoskrnl.exe中某个内核函数的实现细节,除了通过逆向查看该函数的汇编代码之外,我们有更好的选择——如果WRK中有的话,直接到WRK中查看该函数的实现代码,如,ZwOpenProcess。
注意:因为Nt*函数才是真正的实现函数,而Zw*函数最终也是调用的Nt*函数。所以,WRK中并没有给出Zw*函数的实现代码,仅提供了Nt*开头函数的代码。如,ZwOpenProcess在WRK中是找不到的,而NtOpenProcess在WRK中能找到具体实现代码。
内核文件有ntoskrnl.exe, ntkrnlpa.exe, ntkrnlmp.exe, ntkrpamp.exe。
它们是同一套源代码根据编译选项的不同而编译出的四个可执行文件,分别用于:
ntoskrnl - 单处理器,不支持PAE(物理地址扩展)
ntkrnlpa - 单处理器,支持PAE
ntkrnlmp - 多处理器,不支持PAE
ntkrpamp - 多处理器,支持PAE
在Vista之前,安装程序会在安装时根据系统的配置选择两个多处理器或者两个单处理器的版本复制到目标系统中。从Vista开始,会统一使用多处理器版本,因为多处理器版本运行在单处理器上只是效率稍微低一些。
WRK中目录结构:
build
WRK 只公开了部分源代码,那些未公开的则以二进制目标代码的形式存在于这个目录下。
cache
缓存管理器的实现的源文件。
config
注册表的实现的源文件。
dbgk
调试子系统的内核模式部分的源文件。
ex
执行体层函数(内核堆 , 同步 , 定时器等)的源文件。
fsrtl
文件系统运行库的源文件。
fstub
文件系统引导接口。
io
I/O 管理器,不包括即插即用管理器和电源管理器部分。
ke
(微)内核,包括线程调度器,CPU 管理以及底层的同步语义
lpc
本地过程调用 (LPC) 机制的实现。
mm
内存管理器。
ob
内核对象管理器。
perf
内核的性能日志记录功能。
ps
进程和线程。
se
安全引用监视器。
wmi
Windows 管理规范。
inc
仅适用于 NTOS 部分的包含文件。
raw
RAW 文件系统驱动程序的实现的源文件。
rtl
内核运行时库支持。
init
内核启动部分的代码。
vdm
虚拟 DOS 机。
verifier
驱动程序检验器。
更多关于WRK的认识,请参考一下连接:
http://blog.csdn.net/evi10r/article/details/6918552
http://www.ibeifeng.com/tech.php?id=57724
- 认识WRK
- 认识WRK(简介和编译)
- WRK
- 初识WRK
- WRK简介
- WRK Compile
- WRK编译
- WRK简单介绍
- WRK- 搭建调试环境
- wrk环境配置
- 整理 : WRK编译
- Windows WRK简介
- 性能测试工具wrk
- wrk网站压力测试
- wrk 压力测试
- wrk 压力测试
- 【Wrk】压测工具
- 压力测试工具 wrk
- 两个整数变量的值互换!
- 安装Oracle 11g+warehouse
- IOS中nil/Nil/NULL的区别
- 十一国庆节美丽日记365优惠大放送促销活动开始啦!
- linux的常见帮助命令和用户管理命令
- 认识WRK
- android-修改TextView中部分文字的颜色
- Delphi, Firebird, IBObjects and Transaction Management
- GPG error : signatures were invalid: NODATA1 NODATA2
- Errors running builder 'DeploymentBuilder' on project
- Appium创建一个Note的实例
- ios开发——简单引导页的实现
- 想研究下linux的recv是怎么实现的,写了一半
- 配置SMTP服务器