Windows内核安全与驱动开发-程序员宅基地

技术标签: 操作系统  数据结构与算法  驱动开发  

这篇是计算机中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 
开发篇等等···


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



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33713503/article/details/86430620

智能推荐

GitHub 上 6 款牛哄哄的后台模板-程序员宅基地

文章浏览阅读287次。今日推荐一个基于SpringBoot+Vue的百度网盘高仿项目一个Github项目搞定微信、QQ、支付宝等第三方登录推荐 7 个牛哄哄 Spring Cloud 实战项目一套既美观又方便的..._github 后台模板

【Linux】Rocky Linux 9.0 Podman服务无法正常启动_rocky linux x服务器未运行-程序员宅基地

文章浏览阅读3.4k次。从官方技术人员给的回复来看,是selinux导致了上面问题的出现,并且说这个问题可以通过更新container-selinux到2.179版本来解决。当/etc/selinux/config配置中,SELINUX=enforcing为默认配置的时候,启动Podman服务,会出现下面的报错。但是,时隔一个多月后,我再次测试,并将container-selinux升级到了2.189版本,此问题仍未能解决。发现此问题后,我第一时间上报问题到社区论坛。......_rocky linux x服务器未运行

15332 2008计算机标准,IEC 61000-2-2-程序员宅基地

文章浏览阅读216次。IEC 61000-3-2-2018 电磁兼容性(EMC).第3-2部分:极限值.谐波电流辐射的极限值(设备输入电流不大于16A/相)IEC/TR 61000-2-5-2017 电磁兼容性(EMC).第2-5部分:环境.电磁环境的描述和分类IEC/TR 61000-2-5-2017 电磁兼容性(EMC).第2-5部分:环境.电磁环境的描述和分类IEC 61000-1-2-2016 电磁兼容..._iec61000-2-5

太棒了!快来领养一位你的虚拟女友冰冰吧-程序员宅基地

文章浏览阅读936次,点赞8次,收藏6次。什么?都1202年了还有人没有女朋友?咳咳,各位帅气的小哥哥怎么可能没有女朋友呢,这就马上安排。呐,这就是今天我要带各位小伙伴“领养”的女友冰冰~啊,冰冰真好看。今天天气很热,但我的心还是冰冰的。想要一位这样的女朋友吗?想要和冰冰说上一些sao里sao气的悄悄话吗?想要冰冰回复你的来信并给你私发邮件附上她的美照吗?那么就和我一起来吧!目录什么?都1202年了还有人没有女朋友?一、爬取冰冰动图二、自动生成sao话三、冰冰回信ing四、冰冰向您发送..

【Windows】鼠标右键添加 以管理员身份在此处打开命令行(命令提示符)_hasluashield-程序员宅基地

文章浏览阅读9.6k次,点赞4次,收藏4次。鼠标右键添加 以管理员身份在此处打开命令行复制以下内容新建一个记事本粘进去保存修改文件扩展名为.reg 【文末附文件下载】双击运行选择“是”效果展示:详细代码内容:Windows Registry Editor Version 5.00[-HKEY_CLASSES_ROOT\Directory\shell\runas][HKEY_CLASSES_ROOT\Directory\shell\runas]@="Open cmd here as Admin""HasLUAShi_hasluashield

PHP点餐系统-程序员宅基地

文章浏览阅读187次。轮播管理/城市管理/分类管理/商品管理/样式管理/订单管理/评价管理/留言管理/公告管理/修改密码。技术栈:php html css thinkphp5 js ajax md5。登录/注册/修改密码/加入购物车/修改个人信息/查看订单/添加地址。系统分为用户和管理员。_php点餐系统

随便推点

技术解读 | 知识图谱在智能审单场景中的实践及其构建技术-程序员宅基地

文章浏览阅读2k次,点赞2次,收藏3次。2020年7月3-4日,由CSDN主办的第三届AI开发者大会(AI ProCon 2020)以线上直播的形式与大家见面,大会历时两天,一次性设立6大主题,20场分论坛,吸引了10000+..._ai procon 2020

QSEE中如何修改tz 所占用的堆栈大小?_高通修改tz大小-程序员宅基地

文章浏览阅读1.9k次,点赞2次,收藏11次。一般来说,这修改方法由高通告知,下面以msm8953平台为例子进行说明。 一、修改tz堆栈大小的方法 需要修改的地方有三个,TA、kernel、lk.1.1 修改qsee trustzone_images TZ 的配置 oem_config.xmlvi core/securemsm/trustzone/qsee/mink/oem/config/msm8953/oem_c..._高通修改tz大小

linux上安装Openssl步骤详解-程序员宅基地

文章浏览阅读1.8w次,点赞8次,收藏54次。linux上安装Openssl步骤详解 1,查看原有系统是否已安装Opensslopenssl version -a系统已经安装了openssl,我们先安装新的版本,然后将环境配置成最新的版本。2,从openssl官网下载最新的稳定版本,https://www.openssl.org/source/ 当前的稳定版是 openssl-fips-2.0.16.t_openssl

内核启动卡在Waiting for root device /dev/mmcblk0p2...-程序员宅基地

文章浏览阅读1.8k次。Waiting for root device /dev/mmcblk0p2... _waiting for root device

Java学习笔记——内部类(成员类,局部类,匿名类)-程序员宅基地

文章浏览阅读721次,点赞26次,收藏17次。private 为了保证数据的安全性System.out.println(“芯片工作”);o.show();//内部类加入了private权限修饰符之后,就不能被访问了是错误的芯片在电脑的里面,我们不希望芯片这个内部类被外界访问,所以用private修饰这时我们只能在Computer类里面创建Chip类的对象,再由这个对象来调用成员变量或者成员方法。再像之前那样用外部类名.内部类名 对象名 = 外部类对象.内部类对象;的方法来创建内部类对象就不行了。

CodeForces 1045G AI robots(CDQ分治 + 树状数组 + 单调队列)_codeforces cdq-程序员宅基地

文章浏览阅读418次。 大致题意:有很多个机器人,他们要相互交流有一些限制条件。首先是,两个人要相互能够能够看到;其次,两个人的智商的差不超过K。现在给出每个机器人的视力范围和他们的智商,现在问你总共有多少对机器人能够相互交流。首先来看下总共有多少个限制条件。由于是要求双方都能够看到,所以显然是要按照视野半径去排序的。然后要求两个人的智商差要在一定的范围内的,所以也要按照智商去排序。另外还要跟自己的位..._codeforces cdq

推荐文章

热门文章

相关标签