这篇是计算机中Windows
Mobile/Symbian
类的优质预售推荐《Windows内核安全与驱动开发》。

编辑推荐

本书适合计算机安全软件从业人员、计算机相关专业院校学生以及有一定C语言和操作系统基础知识的编程爱好者阅读。

内容简单介绍

本书的前身是《天书夜读——从汇编语言到Windows内核编程》和《寒江独钓——Windows内核安全编程》。

与Windowsclient安全软件开发相关的驱动程序开发是本书的主题。

书中的程序使用环境从32位到64位。从Windows
XP到Windows 8都有涉及,大部分程序不经过改动就可以在Windows 10上执行。同一时候本书也深入浅出地介绍了进行内核安全编程所须要的操作系统、汇编等基础知识。

本书共分三篇,基础篇囊括了驱动开发的基础知识。减少了入门的难度;开发篇介绍了在实际工作中可能遇到的各种开发需求的技术实现,包括:串口的过滤、键盘的过滤、磁盘的虚拟、磁盘的过滤、文件系统的过滤与监控、文件系统透明加密、文件系统微过滤驱动、网络传输层过滤、Windows过滤平台、NDIS协议驱动、NDIS小port驱动、NDIS中间层驱动、IA-32汇编基础、IA-32体系中的内存地址、处理器权限级别切换、IA-32体系结构中的中断和Windows内核挂钩。高级篇包括了汇编语言、操作系统原理、处理器体系架构相关的内容。本书是由长期从事这个行业的project师自己写的,所以处处以有用为准。

对细节的考究主要体如今对实际问题的解决,而不是知识的详尽程度上。

部分文件夹

基 础 篇



第1章 内核上机指导 2

1.1 下载和使用WDK 2

1.1.1 下载并安装WDK 2

1.1.2 编写第一个C文件 4

1.1.3 编译一个project 5

1.2 安装与执行 6

1.2.1 下载一个安装工具 6

1.2.2 执行与查看输出信息 7

1.2.3 在虚拟机中执行 8

1.3 调试内核模块 9

1.3.1 下载和安装WinDbg 9

1.3.2 设置Windows XP调试运行 9

1.3.3 设置Vista调试运行 10

1.3.4 设置VMware的管道虚拟串口 11

1.3.5 设置Windows内核符号表 12

1.3.6 实战调试first 13

第2章 内核编程环境及其特殊性 16

2.1 内核编程的环境 16

2.1.1 隔离的应用程序 16

2.1.2 共享的内核空间 17

2.1.3 无处不在的内核模块 18

2.2 数据类型 19

2.2.1 基本数据类型 19

2.2.2 返回状态 19

2.2.3 字符串 20

2.3 重要的数据结构 21

2.3.1 驱动对象 21

2.3.2 设备对象 22

2.3.3 请求 24

2.4 函数调用 25

2.4.1 查阅帮助 25

2.4.2 帮助中有的几类函数 26

2.4.3 帮助中没有的函数 28

2.5 Windows的驱动开发模型 29

2.6 WDK编程中的特殊点 30

2.6.1 内核编程的主要调用源 30

2.6.2 函数的多线程安全性 30

2.6.3 代码的中断级 32

2.6.4 WDK中出现的特殊代码 32

第3章 字符串与链表 35

3.1 字符串操作 35

3.1.1 使用字符串结构 35

3.1.2 字符串的初始化 36

3.1.3 字符串的拷贝 37

3.1.4 字符串的连接 38

3.1.5 字符串的打印 38

3.2 内存与链表 40

3.2.1 内存的分配与释放 40

3.2.2 使用LIST_ENTRY 41

3.2.3 使用长长整型数据 43

3.3 自旋锁 44

3.3.1 使用自旋锁 44

3.3.2 在双向链表中使用自旋锁 45

3.3.3 使用队列自旋锁提高性能 46

第4章 文件、注冊表、线程 47

4.1 文件操作 47

4.1.1 使用OBJECT_ATTRIBUTES 47

4.1.2 打开和关闭文件 48

4.1.3 文件读/写操作 51

4.2 注冊表操作 53

4.2.1 注冊表键的打开 53

4.2.2 注冊表键值的读 55

4.2.3 注冊表键值的写 57

4.3 时间与定时器 58

4.3.1 获得当前“滴答”数 58

4.3.2 获得当前系统时间 58

4.3.3 使用定时器 59

4.4 线程与事件 62

4.4.1 使用系统线程 62

4.4.2 在线程中睡眠 63

4.4.3 使用同步事件 64

第5章 应用与内核通信 67

5.1 内核方面的编程 68

5.1.1 生成控制设备 68

5.1.2 控制设备的名字和符号链接 70

5.1.3 控制设备的删除 71

5.1.4 分发函数 72

5.1.5 请求的处理 73

5.2 应用方面的编程 74

5.2.1 主要的功能需求 74

5.2.2 在应用程序中打开与关闭设备 75

5.2.3 设备控制请求 75

5.2.4 内核中的相应处理 77

5.2.5 结合測试的效果 79

5.3 堵塞、等待与安全设计 80

5.3.1 驱动主动通知应用 80

5.3.2 通信接口的測试 81

5.3.3 内核中的缓冲区链表结构 83

5.3.4 输入:内核中的请求处理中的安全检查 84

5.3.5 输出处理与卸载清理 85

第6章 64位和32位内核开发差异 88

6.1 64位系统新增机制 88

6.1.1 WOW64子系统 88

6.1.2 PatchGuard技术 91

6.1.3 64位驱动的编译、安装与执行 91

6.2 编程差异 92

6.2.1 汇编嵌入变化 92

6.2.2 预处理与条件编译 93

6.2.3 数据结构调整 93 

开发篇等等···

窝们站点预售的该本书,购买传送门点击打开链接

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hpbmFwdWJfMjAwOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

Windows内核安全与驱动开发的更多相关文章

  1. 《windows内核安全与驱动开发》ctrl2cap中的ObReferenceObjectByName疑问

    国内有关于windows内核驱动这块的书籍实在是甚少,不过好在<windows内核安全与驱动开发>这本书还算不错(内容方面),但是不得不说这本书在许多地方存在着一些细节上的问题.比如我今天 ...

  2. 《Windows内核安全与驱动开发》 7.1&7.2&7.3 串口的过滤

    <Windows内核安全与驱动开发>阅读笔记 -- 索引目录 <Windows内核安全与驱动开发> 7.1&7.2&7.3 串口的过滤 一.设备绑定的内核API ...

  3. 《Windows内核安全与驱动开发》阅读笔记 -- 索引目录

    <Windows内核安全与驱动开发>阅读笔记 -- 索引目录 一.内核上机指导 二.内核编程环境及其特殊性 2.1 内核编程的环境 2.2 数据类型 2.3 重要的数据结构 2.4 函数调 ...

  4. 《Windows内核安全与驱动开发》 2.3 重要的数据结构

    <Windows内核安全与驱动开发>阅读笔记 -- 索引目录 <Windows内核安全与驱动开发> 2.3 重要的数据结构 一.驱动对象  Windows内核采用__的编程方式 ...

  5. 《Windows内核安全与驱动开发》 3.1 字符串操作

    <Windows内核安全与驱动开发>阅读笔记 -- 索引目录 <Windows内核安全与驱动开发> 3.1 字符串操作 一.字符串的初始化 1. 判断下列代码为什么会蓝屏? U ...

  6. 《Windows内核安全与驱动开发》 3.2 内存与链表

    <Windows内核安全与驱动开发>阅读笔记 -- 索引目录 <Windows内核安全与驱动开发> 3.2 内存与链表 1. 尝试生成一个链表头并将其初始化. 2. 尝试向内存 ...

  7. 《Windows内核安全与驱动开发》4.1 文件操作

    <Windows内核安全与驱动开发>阅读笔记 -- 索引目录 <Windows内核安全与驱动开发>4.1 文件操作 从 C:\a.txt 中读取一部分内容并利用 DbgPrin ...

  8. 《Windows内核安全与驱动开发》4.3 时间与定时器

    <Windows内核安全与驱动开发>阅读笔记 -- 索引目录 <Windows内核安全与驱动开发>4.3  时间与定时器 一.获取自系统启动以来的毫秒数 /* 函数作用:求自操 ...

  9. 《Windows内核安全与驱动开发》 4.4 线程与事件

    <Windows内核安全与驱动开发>阅读笔记 -- 索引目录 <Windows内核安全与驱动开发> 4.4 线程与事件 一.开辟一个线程,参数为(打印内容+打印次数),利用线程 ...

随机推荐

  1. RHEL5.8使用yum安装xclock

    使用xshell连接RHEL5.8服务器,敲入xclock命令想验证图形化安装条件,但是显示无此命令. [root@template ~]# xclock -bash: xclock: command ...

  2. halcon 常用算子中文解释说明(随时更新)

    select_contours_xld (Edges, SelectedContours, 'closed', 0, 0, 0, 0) 筛选闭合边缘曲线 sub_image (ImageConvert ...

  3. 从0开始学Swift笔记整理(二)

    这是跟在上一篇博文后续内容: --函数中参数的传递引用 类是引用类型,其他的数据类型如整型.浮点型.布尔型.字符.字符串.元组.集合.枚举和结构体全部是值类型. 有的时候就是要将一个值类型参数以引用方 ...

  4. [Orchard] 通过指定RouteData设置Pager的链接地址

    Orchard 中的Pager是一个很方便的用来分页的Shape, 但默认情况下,它是使用当前Action的地址作为链接地址,如果分页的数据要是由别的Action提供时,这样的分页链接就不对了,其实它 ...

  5. Asp.Net Web API 2第十二课——Media Formatters媒体格式化器

    前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本教程演示如何在ASP.N ...

  6. solr与.net系列课程(三)solr连接数据库

     solr与.net系列课程(三)solr连接数据库 上一章直接讲述的配置文件把大部分人看的很迷惑,大家都想听的是solr到底是怎么用的,好,这一节我们就开始链接数据库,首先讲一下连接之前都要配置哪些 ...

  7. 借助阿里AntUI元素实现两个Web页面之间的过渡——“Loading…”

    今天遇到了这么个问题,如下: 功能需求:有两个页面A和B,点击A中的"确定"按钮,超链接到页面B,在跳转到B页面时出现“Loading”的样式. 需求分析:作为一个后端程序员,一开 ...

  8. 使用Js脚本 修改控制IE的注册表相关设置(activex等)

    使用Js脚本 修改控制IE的注册表相关设置(activex等) 分类: PHP2012-12-05 18:51 2035人阅读 评论(2) 收藏 举报 脚本写法: <SCRIPT LANGUAG ...

  9. IIS7 配置

    1.配置应用程序池->高级设置 (1) .net Framework版本 :V4.0 (2)启用32位应用程序 :True (3)特定时间: 上班之前,下班之后 2.网站配置->高级设置 ...

  10. 套路!从Ruby 到 Cocoapods的发布

    前言: 现在的社会讲究的是套路,作为一名iOS工程师, 一言不合我要发套路了! 一.Ruby(ruby环境已经安装了的朋友可以跳过这一点) 准备: Mac OSX 安装xcode,它会帮你安装好 Un ...