news 2026/9/8 23:58:25

第一个驱动程序

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第一个驱动程序

第一个驱动程序

创建空项目

删除.inf文件

关闭将警告视为错误

设置驱动在什么操作系统运行

代码:

#include<ntifs.h>//卸载函数VOIDDriverUnload(PDRIVER_OBJECT pDriver){DbgPrint("(mydriver)驱动程序停止运行了。\n");}NTSTATUSDriverEntry(PDRIVER_OBJECT pDriver,PUNICODE_STRING RegistryPath){DbgPrint("(mydriver)驱动开始运行了。\n");pDriver->DriverUnload=DriverUnload;return0;}




调试技巧

勾选view ->options->evaluate on hover选项,当你把鼠标移动到某个寄存器、变量、内存地址、表达式上时,windbg会自动对这个内容求值并弹出气泡显示它的值。

使win10驱动在win7下运行

测试发现,在driver setting选项中选择win10,编译生成的sys文件运行在win7下直接蓝屏。我们的代码只是DbgPrint输出了一下,并没有和win10强关联的代码,为什么会蓝屏呢?

接下来分析一下.win10版本的sys和win7版本的.sys

win10和win7的入口函数都是GSDriverEntry,都同样先执行一个___security_init_cookie函数,然后再跳入我们代码里写的DriverEntry函数。

__security_init_cookie 是vs编译器在编译内核驱动或用户态程序时自动插入的一个安全初始化函数,用于设置 GS 安全 Cookie(Security Cookie)。

win7和win10的__security_init_cookie 函数区别很大,下面分析一下:

win7:

win7:1.Cookie 未初始化 → 自动用 RDTSC 生成一个随机值2.若生成的值为0→ 使用默认 Cookie3.最终写入 complement4.完全不会 FailFast5.驱动允许自行初始化 Cookie 总结:无论cookie是什么值,都不会蓝屏

win10:

1.Cookie==0→ FailFast(蓝屏)2.Cookie==默认弱cookie(0x0BB40E64E)→ FailFast(蓝屏)3.不允许用 RDTSC 生成新的 cookie4.只在 cookie 合法时写 complement5.任何非法 cookie 都导致int29h(RtlFailFast)

可以看到win10的sys代码逻辑无论如何都会蓝屏,但 Win10 在加载驱动前,会自动覆盖___security_cookie这个值。但是win7不会写___security_cookie,所以在win7上执行肯定会蓝屏

解决方案思路:修改驱动的 __security_cookie

只要满足:

__security_cookie!=0__security_cookie!=0xBB40E64E

那么在win7上执行 Win10驱动文件, __security_init_cookie 就不会进入 FailFast(蓝屏)。

因此我尝试:

将 __security_cookie 从0xBB40E64E修改为0xBB40E64F修改步骤 IDAPRO:file->patch program->changebyte 修改值,最后保存 file->patch program->Apply patches to input file

于是 __security_init_cookie 会顺利进入:

noteax mov __security_cookie_complement,eax retn 并成功执行 DriverEntry

但是需要注意的是:修改了Cookie导致改变了 PE Checksum(optional_header.Checksum),所以还需要修复Checksum

PE 的 Checksum 是一个32位加法校验和,其算法非常简单粗暴: 把整个文件按16-bit(WORD)累加,加到32位整数里,溢出自动回卷,然后加上文件长度。 所以:0x00005992改为0x00005992+1=0x00005993

最终成功使win10驱动在win7运行!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/8 20:23:35

炉石传说自动化脚本:5大核心问题解决方案全解析

炉石传说自动化脚本&#xff1a;5大核心问题解决方案全解析 【免费下载链接】Hearthstone-Script Hearthstone script&#xff08;炉石传说脚本&#xff09;&#xff08;2024.01.25停更至国服回归&#xff09; 项目地址: https://gitcode.com/gh_mirrors/he/Hearthstone-Scri…

作者头像 李华
网站建设 2026/9/8 4:18:42

3步解锁M1/M2/M3 Mac新玩法:PlayCover安装iOS应用终极指南

3步解锁M1/M2/M3 Mac新玩法&#xff1a;PlayCover安装iOS应用终极指南 【免费下载链接】PlayCover Community fork of PlayCover 项目地址: https://gitcode.com/gh_mirrors/pl/PlayCover 还在为Mac无法运行心仪的iOS应用而烦恼吗&#xff1f;PlayCover作为专为Apple Si…

作者头像 李华
网站建设 2026/9/8 15:48:56

数据驱动时代:企业数字化转型的核心路径与实践策略

在当今快速发展的商业环境中&#xff0c;数字化转型已不再是企业的可选项&#xff0c;而是生存和发展的必由之路。随着云计算、大数据、人工智能等技术的不断成熟&#xff0c;数据已成为企业最重要的战略资产之一。如何有效利用数据驱动业务增长、提升运营效率、优化客户体验&a…

作者头像 李华
网站建设 2026/9/8 22:05:06

Wan2.2-T2V-A14B在艺术展览数字内容创作中的尝试

Wan2.2-T2V-A14B在艺术展览数字内容创作中的尝试 在当代艺术策展中&#xff0c;动态视觉表达正变得愈发关键。传统的视频制作流程——从脚本撰写、分镜设计到拍摄剪辑——往往需要数周甚至更长时间&#xff0c;且高度依赖专业团队协作。然而&#xff0c;当策展周期被压缩、创意…

作者头像 李华
网站建设 2026/9/9 2:19:18

N_m3u8DL-CLI-SimpleG高效实战:专业级M3U8视频下载解决方案

在流媒体内容日益普及的今天&#xff0c;M3U8格式视频的下载需求显著增长。传统命令行工具虽然功能强大&#xff0c;但操作复杂度限制了普通用户的使用。N_m3u8DL-CLI-SimpleG作为一款图形化界面工具&#xff0c;在保留核心功能的同时大幅降低了使用门槛&#xff0c;为技术爱好…

作者头像 李华
网站建设 2026/9/8 16:24:11

大数据爬虫可视化一线城市二手房价格分析预测系统的设计与分析

文章目录项目简介系统截图大数据系统开发流程主要运用技术介绍参考文献结论源码文档获取定制开发/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;项目简介 本系统具备全面的功能&#xff0c;前端实现价格对比、可视化大图展示、二手房信息查询、房价…

作者头像 李华