羽夏看Win系统内核——简述
写在前面
此系列是本人一个字一个字码出来的,包括示例和实验截图。由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新。 如有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我。
前言
是不是渴望知道操作系统到底是怎样为我们在底层做了什么,渴望知道为什么有些进程比如杀毒软件直接用任务管理器关不掉,渴望知道为什么一些地址为什么无法读取,这系列教程将会你答疑解惑。
由于系统内核(以后说系统内核
,都是32位WindowsNT内核
)具有相当大的复杂性,学习本教程您将会付出巨大的努力,头发也会掉一些。我将会将要讲述的内容陈列到目录里面,尽量的讲解明白。由于我还在学习中,准备教程也会花费一段时间,可能更新十分缓慢,可能还会明明该涉及的地方却未涉及,或者有错误,欢迎在讨论区指正,问题解决后,我会反馈给提Issue的同志并保留一天,如没任何问题会被删除。
知识储备
学习本教程需要大量的扎实的基础储备和热情毅力,毕竟这个是自学,没有人来监督你。需要的基础和能力要求如下:
- C语言的基础(
C/C++
,由于本人喜欢C++
,故会用C++
举例代码) - Intel x86系列汇编基础
- 具有看
汇编
如C语言
,看C语言
如汇编
的能力 - 对于
位(bit)
具有明确的认识 - 长久的毅力和时间
- 认真把每一个实验做完且做对的付出
- 会使用WinDbg,它是一个内核级别的调试器
如果想具有看汇编
如C语言
,看C语言
如汇编
的能力,可以参考我的 羽夏看C语言系列教程 ,也可以看别的教程,否则后面的学习可能十分痛苦。我再提醒一句:不做实验,你是弄不懂的,不做到最后就是半瓶醋水平,说啥都会,但一做就不会。
付费部分
本教程含有付费内容,只要打赏 20 元即可解锁所有,如果只是想了解知识的话,就没必要了。详情请见我的置顶博文 寂静的羽夏博文总序 ,一切将遵循里面的付费说明。如下是目前已撰写完毕的付费的文章列表以及将要介绍的内容:
- 驱动篇——项目源码分析 :详细介绍了使用段页的知识进行全局
API
的思路,讲解如何编写框架和代码的方式。 - APC 篇——项目源码分析 :详细介绍了编写自己构造
API
调用框架,实现了读写内存的函数和强制杀死进程的函数,在0环实现了接口和内部实现供3环使用。3环实现了一个程序,提供了3环进0环的接口和调用测试。 - 同步篇——总结与提升 :通过逆向的方式,详细介绍了互斥体、信号量、事件创建和使用在内核部分的实现,并详细了
WaitForSingleObject
内核实现,并做了一个互斥体实验。 - 消息机制篇——总结与提升 :详细介绍消息回调3环函数的过程。
- 内存管理篇——总结与提升 :简单总结所学,并扩展在内存管理层面与进程相关的其他遍历方式和进程模块信息获取方式。
- 异常篇——总结与提升 :总结所学,做一些基础拓展,分析
_except_handler3
函数流程,完整走一遍异常处理流程(文章结尾附有我画的流程图),介绍未处理的异常以及由此衍生的反调试手段。 - 调试篇——总结与提升 :分析各种断点的实现原理、单步步过的实现思路以及调试浅析和单步步过反调试实现。
主目录
基础篇
- 羽夏看Win系统内核——环境搭建
- 羽夏看Win系统内核——SourceInsight 配置 WRK
- 羽夏看Win系统内核——保护模式篇
- 羽夏看Win系统内核——驱动篇
- 羽夏看Win系统内核——系统调用篇
- 羽夏看Win系统内核——进程线程篇
- 羽夏看Win系统内核——句柄表篇
- 羽夏看Win系统内核——APC篇
- 羽夏看Win系统内核——同步篇
- 羽夏看Win系统内核——消息机制篇
- 羽夏看Win系统内核——内存管理篇
- 羽夏看Win系统内核——异常篇
- 羽夏看Win系统内核——调试篇
- 羽夏看Win系统内核——结语
番外篇
装备
> 必须
- VirtualBox(VMWare也可,但我将用此做示例,不会提供额外教程,自行搜索)
- WinDbg
- WinXP Sp3 操作系统和其调试符号
- Visual C++ 6.0 英文版(建议用英文版,别用中文版,中文版有莫名奇妙的Bug,用VS我不建议,占用系统内存大)
- CheatEngine 6.3
- IDA 6.8(这个是兼容XP的最后一个版本)
> 选用
- 手心输入法(一个好用无广告的中文输入法,比XP自带的输入法好用多了,也比某狗好)
- OllyDBG(有名的32位调试器,简称OD,为什么不用X32DBG是因为运行不起来,这里缺库那里缺的)
- Intel白皮书,用来当字典用的,在讲解保护模式的所有知识点都在里面
- 我提供的WinXP补丁,目的是让符号更好的对应二进制,不用也可以
- WinXP激活工具,如果只用完全配置好的快照就无所谓了,它会被报毒为黑客工具
参考书
注意,本教程主要讲解的是了解内核安全方便的必备基础知识。由于Windows
源码并不开放也不好对照,有些细节可能没介绍。但有一些书是值得参考的:
- 毛德操的《Windows 内核情景分析》
- 潘爱民的《Windows 内核原理与实现》
- 微软出版的《Microsoft Windows Internals》
下载资源
为了方便大家学习,我都整理到网盘上了,除了微软商店特供的WinDbg
,有一说一它挺好用的,如果是Win10
及以上的系统强烈推荐,别用老版的,老版的也会在网盘提供。不会提供百度网盘的下载链接,下载速度大家都懂的。我会提供蓝奏云的分享链接,由于其大小和格式限制,我采用分卷模式,其详细按照要求做即可,后面教程也会说明,如果没链接分享的软件请自行搜官网下载,我只分享不好找的资源,也花费了我不少积分,请大家珍惜。
蓝奏云
☀️ WinXP系统 — — 密码:c5dn
☀️ WinXP补丁 — — 密码:4n0b
☀️ 老版WinDbg — — 密码:4pbo
☀️ WinXP调试符号 — — 密码:fqif
☀️ Intel白皮书中文版卷三 — — 密码:7cc1
☀️ Intel白皮书英文版全卷 — — 密码:copt
☀️ WinXP激活工具 — — 密码:ef2f
☀️ Cheat Engine 6.3 — — 密码:f7z7
☀️ OD吾爱破解专用版
☀️ WDK 帮助文档
☀️ WRK — — 密码:arvh
下一篇
本文来自博客园,作者:寂静的羽夏 ,一个热爱计算机技术的菜鸟
转载请注明原文链接:https://www.cnblogs.com/wingsummer/p/15303519.html