《深入理解Windows操作系统》笔记5
C:\Program Files\Support Tools>gflags /?
usage: GFLAGS [-r [<Flags>] |
[-k [<Flags>]] |
[-i <ImageFileName> [<Flags>]] |
[-i <ImageFileName> -tracedb <SizeInMb>] |
[-p <PageHeapOptions>] (use `-p ?' for help)
where: <Flags> is a 32 bit hex number (0x12345678) that specifies
one or more global flags to set.
-r operates on system registry settings.
-k operates on kernel settings of the running system.
-i operates on settings for a specific image file.
If only the switch is specified, then current settings
are displayed, not modified. If flags specified for -i
option are FFFFFFFF, then registry entry for that image
is deleted
The `-tracedb' option is used to set the size of the stack trace
database used to store runtime stack traces. The actual database
will be created if the `+ust' flag is set in a previous command.
`-tracedb 0' will revert to the default size for the database.
If no arguments are specified to GFLAGS then it displays
a dialog box that allows the user to modify the global
flag settings.
Flags may either be a single hex number that specifies all
32-bits of the GlobalFlags value, or it can be one or more
arguments, each beginning with a + or -, where the + means
to set the corresponding bit(s) in the GlobalFlags and a =
means to clear the corresponding bit(s). After the + or =
may be either a hex number or a three letter abbreviation
for a GlobalFlag. Valid abbreviations are:
soe - Stop On Exception
sls - Show Loader Snaps
dic - Debug Initial Command
shg - Stop on Hung GUI
htc - Enable heap tail checking
hfc - Enable heap free checking
hpc - Enable heap parameter checking
hvc - Enable heap validation on call
vrf - Enable application verifier
ptg - Enable pool tagging
htg - Enable heap tagging
ust - Create user mode stack trace database
kst - Create kernel mode stack trace database
otl - Maintain a list of objects for each type
htd - Enable heap tagging by DLL
dse - Disable stack extensions
d32 - Enable debugging of Win32 Subsystem
ksl - Enable loading of kernel debugger symbols
dps - Disable paging of kernel stacks
scb - Enable system critical breaks
dhc - Disable Heap Coalesce on Free
ece - Enable close exception
eel - Enable exception logging
eot - Enable object handle type tagging
hpa - Enable page heap
dwl - Debug WINLOGON
ddp - Disable kernel mode DbgPrint output
cse - Early critical section event creation
ltd - Load DLLs top-down
bhd - Enable bad handles detection
dpd - Disable protected DLL verification
All images with ust enabled can be accessed in the
USTEnabled key under 'Image File Options'.
C:\Program Files\Support Tools>
本地调用过程LPC是一种用于高速传递消息的跨进程通信设施。并不是通过windows API直接可以使用,是一种内部机制,只能用于windows操作系统逐渐。用到LPC的地方:
使用了远程过程调用RPC的windows应用程序,如果他们指定了本地RPC,用于在同一个系统上的进程之间进行通讯
一些windows API要向windows子系统进程发送消息
Winlogon通过LPC与本地安全认证服务器进程LSASS进行通信
安全应用监视器使用LPC和LSASS进程进行通讯。
查看LPC端口对象:winobj程序
64bit的windows如何运行win32的程序,使用的wow64的DLL来实现的:
wow64.DLL:管理线程和进程的创建,钩子程序异常分发,和ntoskrnl导出的基本系统调用,实现了文件重定向,注册表重定向和反射
WOW64CPU.DLL:为每个正在WOW64内部运行的线程,管理他们的32位CPU环境
WOW64WIN.DLL:截取了win32K.SYS导出的GUI调用。
关系如下:
在注册表中为什么HKEY等根键都是以H开头而不是以ROOT开头?
因为:所以指向KEY是windows的句柄Handle,参考technical reference to the windows 2000 registry帮助文件。
在HKLM\HARDWARE\DESCRIPTION\SYSTEM\CENTRALPROCESSOR\0下的PROCESSORNAMESTRING 可以让我的电脑属性看为牛B的CPU。
可以使用regmon来实现监控注册表,regmon实际上依赖一个设备驱动程序
现在和filemon一起被procmon替代了。
注册表的内部机理:实现注册表的执行体子系统是配置管理器,配置管理器是如何组织指标表的磁盘文件的呢?是通过一个hive 存储巢穴来做到的。
对于本机来说对应关系如下:
系统修复和还原是通过regedit 的load hive来实现的。相当于恢复注册表
Hive的大小是有限制的。在XP和2003上,hive的最高达到200M,或者物理内存的1/4.
WINDOWS 2000中设计了换页池的概念,大小限制376M。而在XP和2003上,registry size中没有显示,因为配置管理器不适用换页池。
查看HIVE的内存使用量:
0: kd> !reg hivelist
-------------------------------------------------------------------------------------------------------------
| HiveAddr |Stable Length|Stable Map|Volatile Length|Volatile Map|MappedViews|PinnedViews|U(Cnt)| BaseBlock | FileName
-------------------------------------------------------------------------------------------------------------
| e270ab60 | 33000 | e270abc0 | 0 | 00000000 | 0 | 13 | 0| e220e000 | \Microsoft\Windows\UsrClass.dat
| e2571378 | 23f000 | e222a000 | 1000 | e25714b4 | 76 | 24 | 0| e220b000 | s and Settings\jamin\ntuser.dat
| e21a0b60 | 1000 | e21a0bc0 | 0 | 00000000 | 1 | 0 | 0| e227a000 | \Microsoft\Windows\UsrClass.dat
| e22aa008 | 39000 | e22aa068 | 1000 | e22aa144 | 15 | 0 | 0| e22ad000 | ettings\LocalService\ntuser.dat
| e20edb60 | 1000 | e20edbc0 | 0 | 00000000 | 1 | 0 | 0| e2113000 | \Microsoft\Windows\UsrClass.dat
| e2103558 | 39000 | e21035b8 | 1000 | e2103694 | 13 | 2 | 0| e1eaa000 | tings\NetworkService\ntuser.dat
| e16b7b60 | 27df000 | e16fe000 | c000 | e16b7c9c | 256 | 5 | 0| e16b9000 | emRoot\System32\Config\SOFTWARE
| e16bf008 | 7000 | e16bf068 | 0 | 00000000 | 2 | 0 | 0| e16c1000 | \SystemRoot\System32\Config\SAM
| e162e820 | d000 | e162e880 | 1000 | e162e95c | 4 | 0 | 0| e16ac000 | emRoot\System32\Config\SECURITY
| e16bcb60 | 3d000 | e16bcbc0 | 0 | 00000000 | 16 | 0 | 0| e16ae000 | temRoot\System32\Config\DEFAULT
| e143d3c0 | d000 | e143d420 | 4000 | e143d4fc | 0 | 0 | 0| e1440000 | <NONAME>
| e1036b60 | 3f7000 | e1038000 | 26000 | e1036c9c | 141 | 29 | 0| e1037000 | SYSTEM
| e1024b60 | 1000 | e1024bc0 | 1000 | e1024c9c | 0 | 0 | 0| e102f000 | <NONAME>
-------------------------------------------------------------------------------------------------------------
在Windows\SYSTEM32\CONFIG中有一个隐藏文件,system.SAV是SYSTEM的HIVE的一个版本,是初始拷贝,是从SETUP的ISO上拷贝来的。
在windows2000中相同路径,有一个非隐藏文件system.ALT是一个替补,在WINDOWS XP/2003后面没有
Windows服务类似于unix的守护进程,服务有3个部分组成:服务应用,服务控制程序SCP,服务控制管理器SCM
原文链接: http://blog.csdn.net/jaminwm/article/details/7249303
转载于:https://my.oschina.net/chen106106/blog/45182
《深入理解Windows操作系统》笔记5相关推荐
- 深入解析Windows操作系统笔记——CH1概念和术语
1.概念和工具 本章主要介绍Windows操作系统的关键概念和术语 1.概念和工具... 1 1.1操作系统版本... 1 1.2基础概念和术语... 2 1.2.1Windows API2 1.2. ...
- 《深入理解Windows操作系统》笔记4
分发或者延迟过程中调用中断(DPC):但一个线程不能继续运行的时候,比如因为线程已经终止了或者它主动进入到等待状态,内核就会直接调用分发器,从而直接导致一个环境切换.然后有时候,内核检测已经深入到了许 ...
- 《深入理解Windows操作系统》笔记2
在SDK中有一个工具依赖性查找工具depends.exe 可以看到进程的子系统类型.发现这个工具和VS6企业版中的Microsoft Visual Studio 6.0 Tools中的Depends( ...
- 随笔分类 - 深入解析Windows操作系统笔记
https://www.cnblogs.com/Amaranthus/category/578353.html
- 《深入解析Microsoft Windows操作系统》译序
深入解析Microsoft Windows操作系统 Microsoft® Windows® Internals (Fourth Edition)中文版 适用于Microsoft Windows Ser ...
- 操作系统笔记——Linux系统实例分析、Windows系统实例分析
文章目录 传送门 Linux进程管理 Linux进程组成 Linux进程链表 Linux进程控制 用户进程创建与撤销 0,1,2号进程 Linux进程切换 Linux进程调度 内核同步 Linux储存 ...
- [笔记]深入解析Windows操作系统《三》系统机制
文章目录 前言 第三章 系统机制 3.1 陷阱分发 实验:将系统调用号映射到函数和参数 实验:查看系统服务的行为 选择"System"对象,再选择"System Call ...
- 深入解析Windows操作系统(Windows Internals) 4th Edition 读书笔记 - 第一章 概念和工具(二)
1.2 基础概念和术语(续) 内核模式和用户模式 l 内核模式和用户模式是处理器的概念,而不是操作系统的概念. l 用户代码运行在用户模式下,操作系统代码运行在内核 ...
- 《深入解析Windows操作系统》笔记第1章
在看第一章,做了几个实验,书上的东西我就不copy了 实验1 查看进程树 用tlist工具(在Windows调试工具箱中) 在命令行下打开tlist工具 E:\Program Files\Debugg ...
- 【王道考研】操作系统 笔记 第一章
特此鸣谢王道考研 本文参考王道考研的相关课程 若有侵权请联系,立删 其余笔记链接: [王道考研]操作系统笔记 第一章_才疏学浅743的博客-CSDN博客 [王道考研]操作系统 笔记 第二章上 进程调度 ...
最新文章
- 寒冬中的半个月前端面试
- 分布式监控报警平台Centreon之:Centreon依赖安装
- Majority Element(169) Majority Element II(229)
- atmega8 例程:T1定时器 CTC模式 方波输出
- 通过bios修改服务器ipmi配置,Dell服务器之配置ipmi远程console管理
- 1227讲解(递归deng)
- Android 开发环境配置问题
- Flash MX 2004 基础知识
- 第十七届振兴杯计算机程序设计员(云计算平台运维与开发)决赛
- CGAL学习之路(三):CGAL读写点云
- MySQL-- 统计函数
- 软件测试工具常用的都有哪些?
- 实验报告 三密码破解技术
- 面向三种典型程序语言的中小学计算思维课堂设计研究
- Second-Order Cone Programming(SOCP) 二阶锥规划
- Linux分区命令-parted
- 小型企业服务器型号齐全,【一般小企业内部使用什么样子的服务器性价比比较高?】...
- Mutt+Msmtp如何实现邮箱报警(阿里云)
- android代码里切换横竖屏,Android横竖屏切换
- echarts:从github及其镜像下载china.js和china.json
热门文章
- CAS单点登录及处理流程介绍(一)
- MM32F3277替换STM32
- 直播平台,直播TV介绍,对比,下载等相关信息
- 人工智能Java SDK: BIGGAN 图像自动生成
- IBM 亮相HIMSS 2010 亚太区博览会
- python相关性系数显著性检验_线性回归模型中系数趋势显著性的Statsmodels-Wald检验...
- axios官方文档——中文版
- javascript的模块化编程
- python希尔伯特变换_Hilbert变换提取信号特征的Python实现
- graphpad做单因素方差分析_graphpad prism 8.0:如何进行单因素方差分析