[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>>

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

 

 

转载于:https://www.cnblogs.com/Tbit/archive/2010/10/13/1849923.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值