Windows 内核原理
gnimgnot
这个作者很懒,什么都没留下…
展开
-
Windows内核中的组件
Executive(执行体)Windows executive 是Ntoskrnl.exe中的上层,内核是.Ntoskrnl中的下层。executive包括下列类型的函数:用户模式下可调用的函数,这些函数调用系统服务,通过Ntdll导出。大多数服务都可以通过windows API访问,少数服务没有公开写在文档中,例如NtCreatePagingFile。设备驱动函数,这些函数通翻译 2013-06-28 22:15:29 · 2371 阅读 · 0 评论 -
Windows Security
Windows内核中有几个核心组件和数据库用于安全。 SRM,Security reference monitor。在%SystemRoot%\System32\Ntoskrnl.exe中的组件,负责定义表示一个安全上下文的access token数据结构,在对象上和操作特权(用户权限)执行安全访问检查,以及生成安全审核消息。 LSASS,Local Security Authori原创 2014-07-02 13:01:14 · 2240 阅读 · 0 评论 -
Credential provider 架构
下表是Windows7中的交互式登陆架构的关键组件:原创 2014-07-29 11:05:28 · 3757 阅读 · 1 评论 -
Windows内核文章索引
内核概念内核术语--服务,函数,Routine,进程,线程,作业,Fiber,虚拟内存内核术语--内核模式,用户模式,内核对象,内核调试Windows系统架构Windows的系统组件Windows进程数据结构及创建流程线程与进程Win32平台下的线程同步C#中的线程 -- 同步基础(线程状态,同步上下文)C#中的线程 -- 同步基础(原创 2013-07-22 23:15:08 · 1368 阅读 · 0 评论 -
Windows的Logon过程
交互式登陆(相反的是网络登陆)原创 2014-07-29 12:54:41 · 3981 阅读 · 1 评论 -
Windows的关键系统组件
对称多处理(Symmetric Multiprocessing,SMP)多任务指的是操作系统用一个处理器执行多个线程。当计算机有多个处理器(可能是CPU或核)时,可以同时执行多个任务。Windows是对称多处理(SMP)操作系统,也就是说,在多CPU或核的机器上,每个CPU或者核是对等的,所有处理器共享一块内存空间,这个模型与非对称处理(ASMP)相反,ASMP模型是有一个处理器用来执翻译 2013-06-27 17:52:43 · 1860 阅读 · 0 评论 -
Windows系统架构
操作系统模型大多数操作系统中,都会把应用程序和内核代码分离运行在不同的模式下。内核模式访问系统数据和硬件,应用程序运行在没有特权的模式下(用户模式),只能使用有限的API,且不能直接访问硬件。当用户模式调用系统服务时,CPU执行一个特殊的指令以切换到内核模式,当系统服务调用完成时,操作系统切换回用户模式。Windows与大多数UNIX系统类似,驱动程序代码共享内核模式的内存空间,意味着翻译 2013-06-26 23:45:14 · 6036 阅读 · 4 评论 -
内核术语--内核模式,用户模式,内核对象,内核调试,安全,注册表,Unicode,驱动
内核模式 VS 用户模式为了防止普通的应用程序修改或访问临界区的操作系统的数据,Windows使用两种访问模式:内核模式和用户模式。用户级别的应用程序代码运行在用户模式下,操作系统的代码运行在内核模式(比如系统服务和驱动)。内核模式下有权限访问所有内存和所有的CPU指令。内核模式比用户模式权限高的目的是保证系统的稳定性。注意:X86和X64处理器定义了4个级别的代码执行权限(也叫做ring翻译 2013-06-23 15:42:40 · 2309 阅读 · 1 评论 -
RPC通信--定义RPC接口
1,生成idl文件使用vs2013自带的命令行,定位到项目文件夹下,执行uuidgen -i -oIDLfile.idl注意-o和IDLfile.idl之间没有空格。这样会生成一个IDLfile.idl文件,其中带有uuid,和一个默认接口。2,生成.h文件同样用命令执行midl IDLfile.idl会生成一个IDLfile.h文件。原创 2014-01-13 20:06:00 · 2646 阅读 · 0 评论 -
Windows进程数据结构及创建流程
数据结构每个Windows进程都表现为一个executive进程(EPROCESS)结构,除了包括很多进程相关的属性外,还包括一些指针。比如,每个进程都有一个或多个线程,每个线程都是executive线程(ETHREAD)结构。EPROCESS 和大多数与其相关的数据结构存在于系统的地址空间中,有一个例外是进程的环境块PEB(process environment block ),翻译 2013-06-29 00:58:03 · 3625 阅读 · 0 评论 -
内核术语--服务,函数,Routine,进程,线程,作业,Fiber,虚拟内存
Windows APIWindows API 是用户模式下的编程接口,在64位Windows 出来之前,32位Windows上的Windows API 叫做Win32 API,主要是与原来的16位Windows上的 API区分。Windows API 包括上千个函数,主要分为以下几部分:基础服务组件服务用户接口服务图形和多媒体服务消息和协作网络WEB服务具体的书可以参考翻译 2013-06-22 00:51:25 · 2400 阅读 · 0 评论 -
Win32平台下的线程同步
引子:这几天在写一个windows phone平台上的service,由于Windows phone 的内核是基于Windows NT的,这也意味着写Windows Phone的Service代码与Win32更接近了。虽然功能很少,但是一旦release出去,就像泼出去的水,如果我的代码出了Bug,用户只有更新固件才能获取更新,压力还是挺大。主要的担心点是线程同步:原创 2013-07-04 23:07:14 · 1370 阅读 · 0 评论 -
一次代码Review的总结
引子:手上的虽然是一个小项目,但由于关联性很多,而且是系统服务,如果代码出了问题可能会影响整个系统,所以压力还是挺大,也专门找了老外来帮着Review代码。虽然做了很长时间的C#,但代码是完全的 C + Windows API,对自己来说,还完全是个新手,也顺便弥补了自己在这方面的空白。记录一下吧,以备后看:每一个系统函数的调用都应该检查返回值,因为理论上都有失败的原创 2013-07-17 00:05:55 · 1242 阅读 · 0 评论