windows情景分析
文章平均质量分 87
maomao171314
这个作者很懒,什么都没留下…
展开
-
windows 内核情景分析---说明
说明本文结合《Windows内核情景分析》(毛德操著)、《软件调试》(张银奎著)、《Windows核心编程》、《寒江独钓-Windows内核安全编程》、《Windows PE权威指南》、《C++反汇编与逆向分析揭秘》以及ReactOS操作系统 (V0.3.12)源码,以《Windows内核情景分析》为蓝本,对Windows内核重要框架、函数、结构体进行解析由于工程庞大,我能理解到的转载 2014-04-04 09:49:45 · 1131 阅读 · 0 评论 -
windows内核情景分析--系统调用
Windows的地址空间分用户模式与内核模式,低2GB的部分叫用户模式,高2G的部分叫内核模式,位于用户空间的代码不能访问内核空间,位于内核空间的代码却可以访问用户空间一个线程的运行状态分内核态与用户态,当指令位于用户空间时,就表示当前处于内核态,当指令位于内核空间时,就处于内核态.一个线程由用户态进入内核态的途径有3种典型的方式:1、 主动通过int 2e(软中断自陷方式)或syse转载 2014-04-04 09:51:27 · 1716 阅读 · 0 评论 -
windows内核情景分析 --- 服务管理
随时可以看到任务管理器中有一个services.exe进程,这个就是系统的服务控制管理进程,简称SCM这个进程专门用来管理服务(启动、停止、删除、配置等操作)系统中所有注册的服务都登记在\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services键下,这个键专门叫做‘服务键’,服务键下面的每个子键代表一个服务,记录了各个服务的信息。转载 2014-04-04 10:28:04 · 895 阅读 · 0 评论 -
windows 内核情景分析 --- 网络通信
典型的基于tcpip协议套接字方式的网络通信模块层次:应用程序socket apiWS2_32.dllsocket irpAfd.systdi irpTcpip.sys回调函数接口各Ndis中间层过滤驱动回调函数接口小端口驱动中断交互操作网卡应用程序调用WS2_32.dll中的socket api,socket api在内部生成socket转载 2014-04-04 10:22:52 · 2661 阅读 · 0 评论 -
windows内核情景分析---线程同步
基于同步对象的等待、唤醒机制:一个线程可以等待一个对象或多个对象而进入等待状态(也叫睡眠状态),另一个线程可以触发那个等待对象,唤醒在那个对象上等待的所有线程。一个线程可以等待一个对象或多个对象,而一个对象也可以同时被N个线程等待。这样,线程与等待对象之间是多对多的关系。他们之间的等待关系由一个队列和一个‘等待块’来控制,等待块就是线程与等待目标对象之间的纽带。WaitFo转载 2014-04-04 10:16:03 · 1335 阅读 · 0 评论 -
windows内核情景分析 --- 权限管理
Windows系统是支持多用户的。每个文件可以设置一个访问控制表(即ACL),在ACL中规定每个用户、每个组对该文件的访问权限。不过,只有Ntfs文件系统中的文件才支持ACL。(Ntfs文件系统中,每个文件的ACL是作为文件的一个附加属性保存在文件中的)。不仅ntfs文件支持ACL机制,每个内核对象也支持ACL,不过内核对象的ACL保存在对象头部的安全属性字段中,只存在于内存,对象一销毁,转载 2014-04-04 10:26:58 · 1745 阅读 · 0 评论 -
windows内核情景分析 --- 文件系统
文件系统一台机器上可以安装很多物理介质来存放资料(如磁盘、光盘、软盘、U盘等)。各种物理介质千差万别,都配备有各自的驱动程序,为了统一地访问这些物理介质,windows设计了文件系统机制。应用程序要访问存储在那些物理介质上的资料时,无需直接访问,只需借助文件系统即可对其有效访问。各种物理介质的存储方式千差万别,文件系统则按照‘文件’的概念,把要存储的资料以文件为单位进行存放,然后,读取的时候也转载 2014-04-04 10:25:48 · 3600 阅读 · 0 评论 -
windows内核情景分析 --- Mdl
Mdl意为‘内存映射描述符’、‘缓冲描述符’,一个mdl就代表一个缓冲。(任意一块物理内存,可以同时映射到用户地址空间和系统地址空间的)设备IO方式分为三种:缓冲方式、直接IO方式、直接方式缓冲方式:将用户空间中的数据拷贝到内核缓冲,将内核缓冲中的数据拷贝到用户空间,效率低,适合少量数据交换直接IO方式:将用户空间中的内存通过MDL机制映射到系统地址空间,效率高,适合大数据交换直接转载 2014-04-04 10:21:01 · 3022 阅读 · 0 评论 -
windows内核情景分析---设备驱动
设备驱动设备栈:从上层到下层的顺序依次是:过滤设备、类设备、过滤设备、小端口设备【过、类、过滤、小端口】驱动栈:因设备堆栈原因而建立起来的一种堆栈 老式驱动:指不提供AddDevice的驱动,又叫NT式驱动Wdm驱动:指提供了AddDevice的驱动驱动初始化:指IO管理器加载驱动后,调用驱动的DriverEntry、AddDevice函数设备栈中上层设备与下层设备的绑定关转载 2014-04-04 10:20:23 · 1829 阅读 · 0 评论 -
windows内核情景分析---中断处理
中断处理每个cpu有一张中断表,简称IDT。IDT的整体布局:【异常->空白->5系->硬】(推荐采用7字口诀的方式重点记忆)异常:前20个表项存放着各个异常的描述符(IDT表不仅可以放中断描述符,还放置了所有异常的异常处理描述符,0x00-0x13)保留:0x14-0x1F,忽略这块号段空白:接下来存放一组空闲的保留项(0x20-0x29),供系统和程序员自己分配注册使用转载 2014-04-04 10:19:20 · 1827 阅读 · 0 评论 -
windows内核情景分析 --- DPC
DPC不同APC,DPC的全名是‘延迟过程调用’。DPC最初作用是设计为中断服务程序的一部分。因为每次触发中断,都会关中断,然后执行中断服务例程。由于关中断了,所以中断服务例程必须短小精悍,不能消耗过多时间,否则会导致系统丢失大量其他中断。但是有的中断,其中断服务例程要做的事情本来就很多,那怎么办?于是,可以在中断服务例程中先执行最紧迫的那部分工作,然后把剩余的相对来说不那么重要的工作移入到D转载 2014-04-04 10:18:16 · 3851 阅读 · 0 评论 -
windows内核情景分析--窗口消息
消息与钩子众所周知,Windows系统是消息驱动的,现在我们就来看Windows的消息机制.早期的Windows的窗口图形机制是在用户空间实现的,后来为了提高图形处理效率,将这部分移入内核空间,在Win32k.sys模块中实现。这个模块作为一个扩展的内核模块,提高了一个扩展额系统服务表,专用于窗口图形操作,相应的,这个模块中添加了一个扩展系统调用服务表Shadow SSDT,以及一个扩转载 2014-04-04 10:17:07 · 3408 阅读 · 0 评论 -
windows内核情景分析 --APC
APC:异步过程调用。这是一种常见的技术。前面进程启动的初始过程就是:主线程在内核构造好运行环境后,从KiThreadStartup开始运行,然后调用PspUserThreadStartup,在该线程的apc队列中插入一个APC:LdrInitializeThunk,这样,当PspUserThreadStartup返回后,正式退回用户空间的总入口BaseProcessStartThunk前,会执行转载 2014-04-04 10:15:00 · 2127 阅读 · 0 评论 -
windows内核情景分析---进程线程
本篇主要讲述进程的启动过程、线程的调度与切换、进程挂靠进程的启动过程:BOOL CreateProcess( LPCTSTR lpApplicationName, // LPTSTR lpCommandLine, // command line string LPSECURITY_ATTRIBU转载 2014-04-04 10:12:51 · 3354 阅读 · 0 评论 -
windows内核情景分析---内核对象
写过Windows应用程序的朋友都常常听说“内核对象”、“句柄”等术语却无从得知他们的内核实现到底是怎样的, 本篇文章就揭开这些技术的神秘面纱。常见的内核对象有:Job、Directory(对象目录中的目录)、SymbolLink(符号链接),Section(内存映射文件)、Port(LPC端口)、IoCompletion(Io完成端口)、File(并非专指磁盘文件)、同步对象(Mutex转载 2014-04-04 10:10:58 · 2157 阅读 · 0 评论 -
windows内核情景分析--内存管理
32位系统中有4GB的虚拟地址空间每个进程有一个地址空间,共4GB,(具体分为低2GB的用户地址空间+高2GB的内核地址空间)各个进程的用户地址空间不同,属于各进程专有,内核地址空间部分则几乎完全相同虚拟地址如0x11111111, 看似这8个数字是一个整体,其实是由三部分组成的,是一个三维地址,将这个32位的值拆开,高10位表示二级页表号,中间10位表示二级页表中的页号,最后12位转载 2014-04-04 09:53:54 · 2354 阅读 · 0 评论 -
windos的启动过程
一.内核的引导 在intel x86系统上,windows操作系统获得控制首先从硬盘的主引导记录(MBR,Master Boot Record)开始,windows setup程序在安装windows时候填充mbr.mbr包含代码和数据,其代码称为引导代码,在系统引导时候首先获得控制权;MBR中的数据是一张分区表,指定了每个分区在磁盘上的位置和大小,以及分区的类型。当MBR中的引导代转载 2014-06-27 10:40:51 · 468 阅读 · 0 评论