寒江独钓-Windows内核安全编程(完整版).pdf
 
编写Windows内核程序,就意味着这个程序可以执行任意指令,可以访问计算机所有的软件、硬件资源。因此,稍有不慎就有可能将系统变得不稳定。Windows的设计者设计了各种驱动模型或者框架,如NT式内核驱动模型、WDM框架和新推出的WDF框架。在这些模型框架下编程,就使内核编程变得简单,同样也降低了内核程序崩溃的机会。其实,Windows驱动程序员和黑客都在写内核程序,唯一不同的是驱动程序员按照微软设计的模型写程序,而黑客可以不按照这些框架写。Windows设计的这些框架,可以将操作系统的原理隐藏起来,只暴露一些接口,驱动程序员只要把这些接口写好就可以了。从这个角度看,驱动开发并不难,尤其是读完本书后,更会觉得不难了。但是想完成一些特殊的功能,如内核级隐藏进程等,Windows的这些框架就没什么用处了,程序员就需要对Windows内核有全面的了解,通过直接修改Windows内核来实现这些目的。往往黑客对这种技术乐此不疲,通过修改Windows内核,你会发现你的程序几乎无所不能。
  编写内核程序是一件很痛苦的事情,回想起这些年学习内核程序开发的经历,真是感慨万千。就如同谭文所说:编写内核程序的人从某种程度讲是孤独的。当一个经验并不丰富的小程序员面对庞大复杂的并且不开源的Windows框架时,那是一种怎样的无助感啊!谭文是我比较钦佩的程序员之一,他对技术非常执着,并且精力充沛。内核程序的知识涉及面非常广,不同类别的内核程序差别也特别大,他几乎都有所涉猎。相信读者在读完这本书后,能对Windows内核开发有比较详细的了解,同时也能结合书中的实例写出很优秀的内核程序了

本书从Windows内核编程出发,全面系统地介绍了串口、键盘、磁盘、文件系统、网络等相关的Windows内核模块的编程技术,以及基于这些技术实现的输入密码保护、防毒引擎、文件加密、网络嗅探、网络防火墙等信息安全软件的核心组件的具体编程。主要知识重点包括:Windows串口与键盘过滤驱动、Windows虚拟存储设备与存储设备过滤驱动、Windows文件系统过滤驱动、文件系统透明加密/解密驱动、Windows各类网络驱动(包括TDI过滤驱动及3类NDIS驱动),以及最新的WDF驱动开发模型。有助于读者熟悉Windows内核驱动的体系结构,并精通信息安全类的内核编程技术。本书的大部分代码具有广泛的兼容性,适合从Windows 2000一直到目前最新的Windows 7 Beta版。

 本书则基本上介绍的是正统的内核编程技术,是微软在内核编程中给信息安全软件开发者提供的相关接口的大集合,是名门正派的技术,不沾邪气。一个好的内核程序员,“正邪兼修”是有必要的。
  本书既适合于有志于成为软件程序员的学生使用,也适合于希望加强自己的技术实力的Windows程序员阅读,同时更适合于从事信息安全行业的Windows软件的开发者作为手头参考。
第一部分 基础篇 
第1章 前置要求与环境搭建 
1.1 驱动编程的语言 
1.2 开发环境搭建 
1.2.1 Visual Studio 2005/2008的安装与配置 
1.2.2 WDK的安装与配置 
1.2.3 VisualDDK的安装与配置 
1.3 常用工具介绍 
第2章 内核编程基础知识 
2.1 Windows主要系统组件 
2.1.1 对象管理器 
2.1.2 内存管理器 
2.1.3 进程和线程管理器 
2.1.4 I/O管理器 
2.1.5 PnP管理器 
2.1.6 电源管理器 
2.1.7 配置管理器 
2.1.8 安全引用监视器 
2.2 常见名词解释 
2.2.1 内核名词 
2.2.2 文件名词 
2.2.3 网络名词 
2.3 常见内核数据结构 
2.3.1 驱动框架常见数据结构 
2.3.2 进程与线程数据结构 
2.3.3 存储系统数据结构 
2.3.4 网络数据结构 
2.3.5 其他一些常见的数据结构 
第3章 基本编程方法 
3.1 简单的NT式驱动模型 
3.1.1 驱动模型的选择 
3.1.2 NT式驱动程序基本结构 
3.1.3 编译驱动程序 
3.1.4 加载驱动及查看输出信息 
3.2 应用层与内核的通信方法 
3.2.1 访问数据的I/O方式 
3.2.2 读写驱动程序 
3.2.3 发送I/O控制码 
3.2.4 内存共享 
3.3 同步技术 
3.3.1 事件对象 
3.3.2 信号灯对象 
3.3.3 互斥体对象 
3.3.4 定时器对象 
3.3.5 自旋锁 
3.3.6 回调对象 
3.3.7 原子操作 
3.4 IRP处理 
3.4.1 简单的IRP流动图 
3.4.2 IRP的创建 
3.4.3 IRP的发送 
3.4.4 为IRP设置完成函数 
3.4.5 IRP的完成 
3.4.6 多种典型的 IRP处理示例 
3.5 字符串操作 
3.5.1 STRING、ANSI_STRING和UNICODE_STRING 
3.5.2 初始化和销毁 
3.5.3 复制和添加 
3.5.4 比较 
3.5.5 转换 
3.6 内存管理 
3.6.1 分配系统空间内存 
3.6.2 运行时库管理函数 
3.6.3 使用内核栈 
3.6.4 使用Lookaside快速链表 
3.6.5 访问用户空间内存 
3.6.6 内存区对象和视图 
3.6.7 MDL的使用 
3.7 注册表编程 
3.7.1 注册表对象管理函数 
3.7.2 注册表运行时库函数 
3.7.3 注册表调用过滤 
3.8 文件编程 
3.8.1 打开文件句柄 
3.8.2 执行相关文件操作 
3.9 其他 
3.9.1 本地系统服务函数的Nt 
和Zw版本 
3.9.2 NTSTATUS返回值 
3.9.3 双向链表的使用 
3.9.4 异常处理 
第二部分 提升篇 
第4章 进程 
4.1 进程监控实现原理 
4.2 Windows 7系统下的进程 
监控软件实例 
4.2.1 内核模块程序实现 
4.2.2 用户模式程序实现 
4.3 安装与使用 
第5章 磁盘 
5.1 存储驱动体系结构 
5.2 设备树示例 
5.3 diskperf磁盘过滤驱动 
5.3.1 diskperf介绍 
5.3.2 diskperf的过滤框架 
5.3.3 diskperf的PnP支持 
5.3.4 diskperf的硬盘访问监控和性能数据捕获 
5.3.5 diskperf的电源支持 
5.3.6 diskperf的安装与测试 
第6章 键盘 
6.1 原理跟踪 
6.1.1 自下而上的过程 
6.1.2 自上而下的过程 
6.2 几种常见的键盘记录行为 
6.2.1 应用层的消息钩子 
6.2.2 键盘过滤驱动 
6.2.3 键盘类驱动的分发函数Hook 
6.2.4 DKOM技术 
6.2.5 其他方法 
6.3 反键盘记录 
6.3.1 实现原理 
6.3.2 反键盘记录示例 
第7章 文件 
7.1 原理跟踪 
7.1.1 Windows存储栈 
7.1.2 不涉及缓存的数据存储 
7.1.3 涉及缓存的数据存储 
7.2 简单的文件隐藏 
7.2.1 文件隐藏的原理 
7.2.2 文件隐藏的实现 
7.3 scanner扫描程序 
7.3.1 过滤管理器与微过滤驱动概念 
7.3.2 使用过滤管理模型的优势 
7.3.3 微过滤驱动的加载和卸载 
7.3.4 用户模式和内核模式的交互 
7.3.5 scanner介绍 
7.3.6 scanner驱动程序 
7.3.7 scanner应用层程序 
7.3.8 scanner的安装与使用 
第8章 网络 
8.1 原理跟踪 
8.2 NDIS协议驱动 
8.2.1 DriverEntry 
8.2.2 绑定 
8.2.3 数据发送 
8.2.4 数据接收 
8.2.5 数据流动总结 
8.3 OPEN_BLOCK的展示 
8.3.1 原理知识 
8.3.2 相关代码 
第三部分 辅助篇 
第9章 安全编码 
9.1 蓝屏的概念 
9.2 创建可靠的驱动程序 
9.2.1 验证设备对象 
9.2.2 使用安全字符串 
9.2.3 验证对象句柄 
9.2.4 支持多CPU 
9.2.5 确认驱动状态 
9.2.6 IRP安全检查 
9.3 使用驱动验证程序 
9.3.1 驱动验证程序的测试选项 
9.3.2 使用驱动验证程序 
第10章 调试与逆向 
10.1 静态调试 
10.1.1 静态调试驱动程序 
10.1.2 静态调试应用程序 
10.2 动态调试 
10.2.1 双机调试的基本方法 
10.2.2 WinDbg的常用命令 
10.2.3 WinDbg的使用技巧 
10.3 逆向与调试相结合 
10.3.1 示例

2018.8.13链接已补
点击下载:寒江独钓-Windows内核安全编程(完整版).pdf

寒江独钓-Windows内核安全编程(完整版).pdf相关推荐

  1. 驱动开发专家解读 寒江独钓 Windows内核安全编程

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 驱动开发 ...

  2. 寒江独钓 Windows内核安全编程

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! < ...

  3. 寒江独钓——Windows内核安全编程

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow <寒江独钓- ...

  4. 寒江独钓:Windows内核安全编程(china-pub到货首发)

    寒江独钓:Windows内核安全编程(china-pub到货首发) [作 者]谭文;杨潇;邵坚磊等 [丛 书 名] 驱网核心技术丛书  [出 版 社] 电子工业出版社     [书 号] 978712 ...

  5. 寒江独钓windows 内核安全编程学习笔记

    寒江独钓windows 内核安全编程学习笔记 本博客记录自己的学习过程,如有侵犯或者打扰请告知. 由于项目的需求,第一次接触到驱动程序.开始学习了寒江大神的的内核安全编程.小白一个,第一章就遇到了问题 ...

  6. 寒江独钓Windows内核安全编程__一个简单的Windows串口过滤驱动程序的开发

    在Windows系统上与安全软件相关的驱动开发过程中,"过滤(filter)"是极其重要的一个概念.过滤是在不影响上层和下层接口的情况下,在Windows系统内核中加入新的层,从而 ...

  7. 寒江独钓-Windows内核安全编程总结

    内核编程工具集安装: 1:下载安装WDK 2:编写程序(DrvierEntry必选),编译 3:利用srvinstw.exe等工具安装服务,用net start启动服务 4:使用WinDbg,利用串口 ...

  8. 寒江独钓-Windows内核安全编程笔记-第4章代码

    #ifndef __CTRL2CAP_H__ #define __CTRL2CAP_H__ #pragma once typedef struct _C2P_DEV_EXT { // 结构的大小 UL ...

  9. 寒江独钓-Windows内核安全编程笔记-第3章代码和笔记

    第3章代码 // #include #include #define NTSTRSAFE_LIB #include #define CPP_MAX_COM_ID 32 #define DELAY_ON ...

最新文章

  1. Python 库突发 PyPI 危机!
  2. 强势安利5款高质量办公软件,极大提高办公效率
  3. MDT 2010之部署Windows XP-5
  4. 看完微软大神写的求平均值代码,我意识到自己还是too young了
  5. 报错:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
  6. aws mysql价格_mysql – AWS RDS“转出”成本有多贵?
  7. Python self,init,对象属性
  8. 如何查询SID及根据SID反查对应的账户
  9. 07. Declare destructors virtual in polymorphic base classes
  10. 华住被脱库!5亿开房信息遭泄露,连你的身份证都有
  11. Latex三线表格制作及相关问题
  12. 如何比较两个EXCEL 文件的不同(各个EXCEL版本的方法)
  13. Graphics详解
  14. 腾讯优图发布三款AI硬件,深化To B能力
  15. HTML5网页编辑基础(简介+基础标签使用)
  16. 北京妙计旅行 后台开发实习一面二面
  17. houdini快速物体拖尾笔记
  18. java中单例和多例
  19. c语言既是素数又是回文数的三位数,编写程序,找出所有既是素数又是回文数的三位正整数.例如:131等...
  20. 最新云豹二开直/播短视频完整系统源码+带开发文档/教程

热门文章

  1. highChart导出PDF
  2. Centos6.6下编译安装Apache2.2.31
  3. Android图像适配
  4. Java导出超大Excel文件,防止内存溢出
  5. android简易计算器的实现
  6. 什么软件测试血压最准确,‎App Store 上的“血压准-校准血压计血压测量更准确”...
  7. 手机怎么拍照点数?好用的拍照点数方法来啦
  8. 测试老鸟都在用的接口抓包常用工具以及接口测试工具都有哪些?
  9. 知道两点坐标,怎么计算两点方向的方位角
  10. 从前后端分离到前后端整合的“退步”(一)项目结构