[note]chapter2--系统结构

这一章讲述的比较宏观,没太多细节可以分析的.

需要注意的几个地方.

1.Windows子系统

Csrss.exe包含对下列的支持:

@ 控制台窗口

@ 创建或删除进程和线程

@ 对16位虚拟DOS机进程的一部分支持.

关于Csrss.exe以后再详细剖析了.附上盟主的一篇文章<<详解进程创建中与csrss的通信流程>>

 

Win32k.sys包含:

@ 窗口管理器

@ 图形设备接口

 关于Win32k.sys的剖析也推后之.

 

2,Ntdll.dll

以前一直认为ntdll.dll只包含了一些与系统服务相关的函数,这种错误的理解会让人以为

SSDT表中的函数,与ntdll.dll序号,函数是一一对应(描述不清楚,看图,盗版的xp sp3,其他版本的必然已经改变了..)

刚才以为,通过解析ntdll.dll的导出表,就能获得完整的SSDT函数表名和序号,仔细对比了下,还是不行的..呵呵..

还是通过内核变量来导出吧~..

 

其实不然,它包含两种类型的函数:

@ 一种就是刚才所说的,与系统服务相关的,分发Stub.它们会调用windows执行体的系统服务.

  后面讲述SSDT和Shadow SSDT的时候再来分析之.

@ 内部支持函数,供子系统,子系统DLL,以及其他的原生映像文件使用.

关于这些函数,可以看一看ntdll.dll的导出表,也可以参考<<inside the native api>>这一文.

 

3.System进程和系统线程.

这个都说无益,还是参考具体的代码吧.

PsCreateSystemThread().

在默认情况下,系统线程是属于System进程的,但是,一个设备驱动程序可以在任何的进程中,创建系统线程.

例如,Win32k.sys在Csrss.exe中创建系统线程,因而这些线程可以很容易的访问该进程用户模式的空间中的数据.

 

4.<<inside native application>>

这是一篇很有意思的文章,值得仔细研读,可惜相关例子和代码不多...

 

 

posted @ 2010-10-13 11:37  Tbit  阅读(236)  评论(0编辑  收藏  举报