来源:自学PHP网 时间:2015-04-17 18:33 作者: 阅读:次
[导读] 要Pdf的留邮箱(c)Gloomy aka Peter Kosyh, Melancholy Coding2001INTRO (写给NT研究者)=============================Мы всего лишь момент во времениОтблеск в глазах,Мечты...
要Pdf的留邮箱 (c)Gloomy aka Peter Kosyh, Melancholy Coding2001 INTRO (写给NT研究者) Мы всего лишь момент во времени (c) by Anathema 00.系统组件
实际上,所有的Windows NT组件其本身都是DLL、PE格式的.EXE文件、导入导出函数。Windows NT的主要组件有: *Ntoskrnl.exe *Hal.dll
*Kernel32.dll *Csrss.exe *Win32k.sys
在Windows NT中高2G的32位线性地址空间保存了供系统使用的程序。这种格局,地址空间80000000 - ffffffff为系统组件:驱动程序、系统表、系统数据结构等等。系统内存的精确格局是不可能得到的,但是通过其功能用途和大致位置可以区分出各个区域。 *80000000-9FFFFFFF *C0000000-C0FFFFFF *E1000000-E57FFFFF *FB000000-FFDFEFFF *FFDFF000-FFFFFFFF 低2G线性地址空间(00000000-0FFFFFFFF)为进程用户模式的地址空间(每个进程自己的空间)。Win32地址空间看上去一般是下面这个样子: *00000000-0000FFFF *00xx0000 *70000000-78000000 *7FFB0000-7FFD3FFF *7FFDE000-7FFDEFFF *7FFDF000-7FFDFFFF *7FFE0000-7FFE0FFF 共享数据区。 *7FFFF000-7FFFFFFF
自i286开始,在Intel的处理器里实现了四级保护机制,相应的就有四个特权级。代码与数据能够拥有某级别的特权。这样,应用程序、系统程序、内核等等都运行在自己的特权级上,而且不能随意访问比自己特权级高的代码和数据。实际上没有一个基于Intel处理器的操作系统能用到所有的四个特权级(不为人知的那些不算在内)。Windows NT操作系统也不例外,只用到了两个特权级(ring)。0级(最高特权级)下运行内核,3级(最低特权级)为用户级。Intel处理器提供了强大的内存分段机制,其与特权级一起实现了直到段级的保护(例如,程序的每一个逻辑段都可以由一个描述符表来描述)。但是Windows NT实现的是FLAT模型。这就将选择子的使用降到了最低限度。处理器的全局描述符表GDT(Global Descriptor Table),由Windows NT操作系统管理,其包含以下描述符(由SoftIcea得到): Sel. Type Base Limit DPL Attributes 前四个选择子全都位于线性地址空间。而且前两个选择子的描述符特权级DPL(Descriptor Privilege Level)等于0,而后面两个的都是3。选择子8和10由用户应用程序使用。在FLAT模型下,应用程序本身并不关心段寄存器的内容。在ring3工作时,CS、DS、SS寄存器总是分别为值8、10、10。这样,系统代码就可以监视段寄存器的值。选择子1b和23用于内核(驱动程序、系统代码)工作时的寻址。选择子30和3b分别指向Kernel Process Region和Thread Information Block。当代码运行在ring0时,FS寄存器的值为30,如过运行在ring3,则FS的值为3b。选择子30总是指向基址为FFDFF000的描述符。选择子3b指示的基址则依赖于用户线程。选择子48定义了局部描述符表LDT(Local Descriptor Table)。LDT只在Virtual DOS machine(VDM)应用程序下使用。当运行该进程时,在处理器的LDTR寄存器中加载着相应的指针,否则,LDTR的值为0。LDT主要用在Windows 3.x应用程序下。Windows 3.x应用程序运行在WOW(Windows On Windows)下,而WOW则实现在VDM进程里。VDM进程的LDT使用上和Win3.x里的一样。在GDT表里总会有两个TSS类型的选择子。这是因为运行在Intel处理器上的Windows NT操作系统没有使用基于任务门的任务切换机制。IDT包含以下描述符(由SoftIcea得到): Int Type Sel:Offset Attributes Symbol/Owner |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com