导航

12 2013 档案

摘要:访问权限(Access Right)和访问掩码(Access Mask):访问权限是一个位标志(bit flag),表示线程可对对象所作的某一个操作,比如:KEY_SET_VALUE访问权限,表明线程可以在某个key下面set value。访问掩码是一个32位的值,对应于一个对象所支持的所有访问权限。typedef DWORD ACCESS_MASK;访问掩码主要可分为4部分:Generic access rightsStandard access rightsSACL access rightObject-specific access rights格式如下:BitsMeaning0–15S 阅读全文

posted @ 2013-12-21 10:47 littledot 阅读(252) 评论(0) 推荐(0)

摘要:Page 305 服务是一种特殊的程序,开机自运行,不需要用户干预。Windows上服务主要有3部分:服务程序,服务控制管理器(SCM),服务控制程序(SCP)。SCM即services.exe,它的数据仓库是HKLM\System\CCS\Services。SCP的例子是sc.exe。客户端的SCM API实现在advapi.dll中。可以通过SCM API和SCM打交道,从而控制services。 阅读全文

posted @ 2013-12-17 23:20 littledot 阅读(165) 评论(0) 推荐(0)

摘要:Page 392 数据结构ETHREAD & KTHREADTEBCSR_THREAD & W32THREAD省略Page 409 Windows上实现的是基于优先级的,抢占式的调度器,优先级最高的线程总能得到CPU。当一个线程得到运行机会的时候,它运行一个quantum的时间(在此时间内不会被同优先级的其他线程打断)。但该线程不见得能用完该quantum,有可能被其他更高优先级的线程抢占。Page 410 Windows调度的单位是线程,调度时完全不考虑进程信息,所以一个进程多创建线程,就可能抢占更多的CPU。进程A有100个线程,B有2个,假设所有线程的优先级相同。则进程A 阅读全文

posted @ 2013-12-13 16:15 littledot 阅读(314) 评论(0) 推荐(0)

摘要:Page 369 创建一个Windows进程需要三个部分之间的交互: Kernel32.dll,执行体,和Windows子系统进程csrss.exe。主要流程: 阅读全文

posted @ 2013-12-12 18:12 littledot 阅读(208) 评论(0) 推荐(0)

摘要:Page 359 进程数据结构:EPROCESS 执行体对象,处于内核地址空间,无名字,Winobj看不到。PEB,用户地址空间,包含用户态代码需要访问的信息。CSR_PROCESS: 只有Win32程序才有,由该session的csrss.exe维护。W32PROCESS: win32k相关的per-process结构,第一次调用USER/GDI时创建。EPROCESS:PEB:CSR_PROCESSW32PROCESS:Page 368 windows的安全模型允许有debug previlege的用户以任意方式操作其它进程(读写进程memory,注入代码,suspend/resume线程 阅读全文

posted @ 2013-12-12 13:59 littledot 阅读(172) 评论(0) 推荐(0)

摘要:Page 277 注册表是Windows操作系统配置信息的仓库,e.g. 系统信息,应用程序信息,用户个人信息Page 279 key directory value file data datavalue当前共有14种类型. 注意REG_LINK.Page 280 注册表的逻辑结构,6个root key.Page 287 TxR 阅读全文

posted @ 2013-12-08 15:06 littledot 阅读(99) 评论(0) 推荐(0)

摘要:Page 140 Object manager 1)提供了统一的使用系统资源的机制 2)提供一个集中的位置去保护对象 3)提供一种去管理进程配额的机制 4)提供对象命名的机制 5)对象隔离 6)对象持久化Page 143 Win7执行体共定义了42种对象,大部分只供执行体使用,其中一部分通过windows API暴露给用户程序使用。Page 145 每个对象都有对象头和对象体.对象头由object manager控制,对象体由创建改对象体的执行体组件拥有并控制.每个对象头都指向该对象的type object. Object manager利用对象头中的数据来管理对象.有5个可选的子对象头: n 阅读全文

posted @ 2013-12-06 23:27 littledot 阅读(259) 评论(0) 推荐(0)

摘要:Page 79 在windows上,trap指当中断或者异常发生时,处理器打断线程的正常执行而跳往预定义好的位置(trap handler, IDT)去执行的机制。Page 80 中断和异常的区别:中断是异步事件,可能在任意时间发生,和当前处理器正在执行什么无关,通常由外设产生;异常时同步事件,通常由执行某条cpu指令而产生,可重复,比如内存访问违例,调试器异常,系统调用等。Page 81 由于中断或异常当断了当前线程的正常执行,所以必须保存当前线程的状态,以便中断或者异常处理完毕之后继续执行。 当前线程状态保存于当前线程的内核栈上,被称为trap frame。Page 81 软件和硬件均可产 阅读全文

posted @ 2013-12-03 14:08 littledot 阅读(338) 评论(0) 推荐(0)

摘要:Page 33 扩展性 -- wdm支持过去,现在,将来的设备移植性 -- 支持各种架构,x86/x64/arm。 HAL可靠性,鲁棒性 -- 安全设施兼容性 -- 历史包袱性能 -- ETW。xperf!Page 34 用户程序和操作系统运行于不同的特权级别。操作系统和驱动的代码均处于kernelmode,可以访问任意资源, mitigation: patch guard & kmcsPage 37 Windows可以运行于x86/x64/arm/mips/alpha axp/powerpcPage 38 可移植的主要原因有二:1)层次化设计,处理器架构和平台相关部分被封装与某些独立 阅读全文

posted @ 2013-12-01 11:19 littledot 阅读(179) 评论(0) 推荐(0)

摘要:Page 1 Win7 (32/64位) & Win2K8 R2(只有64位) 版本号 6.1 (Build 7600),大版本和vista相同是出于兼容性考虑。Page 5 每个进程都保留有父进程id,由此可以建立进程树。但如果某个父进程已经结束,则链表断裂,无法回溯。此外,由于进程id会重用,单独看进程id去确定父子关系不可靠。ProcExp的做法是考虑父进程的创建时间来避免建立错误的父子关系。任务管理器是怎么做的?Page 8 关于任务管理器的“应用”页面:该页面列出了当前用户的Interactive windows station上的所有desktop上的top-level可见 阅读全文

posted @ 2013-12-01 00:02 littledot 阅读(270) 评论(0) 推荐(0)