首页
论坛
专栏
课程

[原创][原创]Windows内核分析之win7 x86&x64篇第一章

2017-4-4 16:29 5702

[原创][原创]Windows内核分析之win7 x86&x64篇第一章

2017-4-4 16:29
5702

第1章概述

    1.1 windows操作系统的发展历史

      1980年后期 unix系统已经发展非常成熟 主要用于高端用户 实验室 工厂使用 当时windows 还比较落后 采用的是dos架构(windos3.1 windows 95 windows 98都是这种) 但是当时在中国普通百姓 谁知道电脑是啥玩意啊 所以 对系统要求很低 不需要玩游戏 也不需要什么word 软件 太复杂反而没人用 unix那么复杂的命令 谁会用?所以简单的dos命令迎合了市场 高端的unix一直瞧不起低端的windows 微软也知道dos架构的系统路不长必须改革 正好此时有一帮牛人从某个公司辞职 于是被微软拉过去 这帮牛人为现在内存虚拟管理系统做好了铺垫(vms 内存虚拟管理 就是每个进程4G虚拟地址 通过页表映射到指定的物理地址 不用的时候 需要换页到硬盘上 就是这个意思吧) 当时借鉴unix微内核思路 微软决定开发微内核 内核越小越好 很多内核功能交给了服务进程 结果发现效率太差 于是又增加了内核文件大小 甚至吧掌管视窗的win32k.sys也加入了内核 还加入了posix(当时为了方便unix的程序移植不同平台 电器工程师定义了一种类似API接口的东西 于是大家开发unix程序 都可以移植到不同的unix系统上)os/2(os/2是微软和IBm合作开发的一个系统 后来放弃了)

   1.2用户空间和系统空间

开发现代操作系统需要四个条件:

1,用户r3层软件杂七杂八 什么鬼软件都有 万一破坏掉内核 系统就炸了 所以微软工程师必须保护好内核 r3层不能随便访问它

2,内核层可以访问r3层 比如进程调度 如果不能访问r3层 就不能调度进程 那么r3的进程运行 只能运行一个 那还叫现代系统?

3,r3层的进程之间 必须隔离 不然互相访问修改内存数据 也就乱成一锅粥了

4,r3的进程的数据 在物理内存上的地址 必须是可以改变的 试想一下 进程默认的基地址都是0x401000  如果大家都放在物理地址上的0x401000 那么就错乱了

基于以上条件 微软工程师们 制定了一套保护策略 就是大家经常看书 学到的--->保护模式

但是也要cpu支持一些特性 保护策略才能起作用 所以80386诞生 他和windows nt系统的发布 一样 和之前的dos架构完全不一样 是划时代的改变!

   1.3windows内核

1.4 windows函数命名规则

Ex开头是管理层 如上图

Ke ki 开头是核心层 如上图

Hal 是硬件抽象层 在硬件层 如上图

Ob 开头是对象管理 在管理层 如上图

Mm是内存管理  在管理层 如上图

Ps 进程管理 在管理层 如上图

Se 安全管理 在管理层 如上图

IO i/0管理 在管理层 如上图

FS 文件系统 在管理层 如上图

CC 文件缓存管理 在管理层 如上图

Cm 系统配置管理 在管理层 如上图

Pp 即插即用管理 在管理层 如上图

Rtl 运行时库 在管理层 _RtlZeroMemory@8 意思两个参数 八个字节 @KfLowerIrql@4 前面 @是快读调用函数 fastcall 参数是寄存器传递 后面的@是表示4个字节 一个参数大小是4字节 x64上是8字节 那么就是@KfLowerIrql@8

 

 <图片注释太小 可以下载附件查看 或者找我要图片>

PS:文章是我读 windows内核情景分析 这本书的时候 总结的 每天看一小节 每天总结一点 大概要历时4个月 有些人说看这些没用 我以前刚入门的时候 也是和某些人一样 急于求成 就知道过保护 但是前不久研究tp 得到高人指点 思路大开 越来越觉得内核必须研究 必须学扎实 心急吃不了热豆腐  深入解析windows操作系统那本书虽然不错 但是我大概看了一下 不适合入门 感觉内核情景分析 适合入门 每天看一小节 完后对着win7 x86和x64自己作分析 4个月后 我相信自己会得到质的飞跃

第一章结束 我打算出一套讲解windows内核方方面面的教程 后续章节会陆续推出 非常仔细 看完后 就没必要看书了 希望大家支持 教程写的匆忙 每天写一点 难免有错误 希望大家指出 谢谢观看 再见

加入学习交流群493622016:逆向技术研究




[公告]安全服务和外包项目请将项目需求发到看雪企服平台:https://qifu.kanxue.com

上传的附件:
打赏 + 2.00
打赏次数 1 金额 + 2.00
收起 
赞赏  毕达哥拉斯   +2.00 2019/02/04
最新回复 (33)
Tennn 5 2017-4-4 16:38
2
0
前排支持
killpy 2 2017-4-4 17:46
3
0
Tennn 前排支持
谢谢你
mihacker 2017-4-4 19:25
4
0
期待后面的作品。
kanxue 8 2017-4-4 22:32
5
0
建议直接将Word文章放到论坛里,现在论坛支持图文混排
IDGHOST 2017-4-4 22:58
6
0
mark
baile 2017-4-5 05:14
7
0
搬凳子学习
lhb天羽 2017-4-5 09:39
8
0
关注中!
OnlyForU 2017-4-5 10:11
9
0
期待后续系列!
holing 14 2017-4-5 11:10
10
0
学习一个
appview 2017-4-5 14:09
11
0
期待后续系列!
zmdcsa 2017-4-5 14:10
12
0
期待后续系列!
FadeTrack 1 2017-4-5 14:23
13
0

特权级并不是微软提出来的,保护模式也不是。讲得还蛮接地气,支持一下。

killpy 2 2017-4-5 14:49
14
0
kanxue 建议直接将Word文章放到论坛里,现在论坛支持图文混排
谢谢支持
killpy 2 2017-4-5 14:49
15
0
killpy 谢谢支持
哦  是intel吧?
killpy 2 2017-4-5 14:51
16
0
mihacker 期待后面的作品。
晕  引用回复失效了?  谢谢楼上支持  提醒  和  纠错
killpy 2 2017-4-5 14:52
17
0
kanxue 建议直接将Word文章放到论坛里,现在论坛支持图文混排
明白了  谢谢版主
killpy 2 2017-4-5 14:52
18
0
IDGHOST mark
谢谢支持
killpy 2 2017-4-5 14:52
19
0
baile 搬凳子学习
谢谢支持
killpy 2 2017-4-5 14:53
20
0
lhb天羽 关注中!
谢谢关注
killpy 2 2017-4-5 14:54
21
0
OnlyForU 期待后续系列!
嗯  谢谢
killpy 2 2017-4-5 14:54
22
0
holing 学习一个
一起学习  进步
killpy 2 2017-4-5 14:54
23
0
appview 期待后续系列!
谢谢支持
killpy 2 2017-4-5 14:55
24
0
FadeTrack 特权级并不是微软提出来的,保护模式也不是。讲得还蛮接地气,支持一下。
嗯    难道是intel提出的保护模式?
FadeTrack 1 2017-4-5 15:30
25
0
killpy 嗯 难道是intel提出的保护模式?
你说是先有鸡还是先有蛋?
lhglhg 1 2017-4-5 21:43
26
0
支持楼主!!
我是哥布林 2017-4-6 15:51
27
0

赞一个,感觉Windows内核原理与实现这本书也不错

hzqst 3 2017-4-6 22:50
28
0
啥时候讲讲内存管理  内存页自映射啥的
yxgbo 2017-4-9 09:06
29
0
期待  感谢
killpy 2 2019-8-16 12:44
30
0
被封了 加入备份群 凑合一下 702912735 
blackcore 2019-8-16 12:49
31
0
期待后面的作品。
ToCrack 2019-8-16 14:38
32
0
图片中 CPU在管理层的运行级别是在APC_LEVEL上吧 
l桀骜 2019-8-19 16:25
33
0
关注一下。
niuzuoquan 2019-8-19 18:04
34
0
mark
游客
登录 | 注册 方可回帖
返回