Windows内核驱动编程
呆萌白泽球
小萌新
展开
-
驱动编程学习5/IA-32e模式
文章目录IA-32e模式基础介绍段描述符权限切换x64用户态切换权限x86用户态切换权限总结IA-32e模式基础介绍内核64位,用户64位或32位(内核均为64位代码)IA32_EFER MSR C0000080H 中的值的第8位为1时,系统处于IA-32模式。在Intel手册上IA32_EFER MSR寄存器构造如下图所示,第8位的含义为IA-32e模式的启动标志位。在WinDbg中查看IA32_EFER标志位的命令如下:rdmsr c0000080在本机的查询结果如下图所示:原创 2020-11-19 17:03:38 · 955 阅读 · 0 评论 -
驱动编程学习4/第一个驱动程序的编写
1.进入vs2019,选择Kernel Mode Driver Empty,点击下一步如果找不到,重新下载WDK,https://docs.microsoft.com/zh-cn/windows-hardware/drivers/download-the-wdk默认安装即可(主要是安装VSIX)2.进入项目后,新增一个.c的文件 (必须是c文件,cpp会报错)3.内核驱动有一个统一的入口函数,为DriverEntry,原型如下NTSTATUS DriverEntry( PDRIVER_OBJ原创 2020-11-19 14:43:11 · 687 阅读 · 0 评论 -
驱动编程学习3/Win10双机调试环境配置
Win10双机调试环境组件需求windbg安装(实机中安装)虚拟机环境配置组件需求WinDbg最新版虚拟机环境:Windows 10镜像windbg安装(实机中安装)在添加或删除程序中选择Windows SDK 10.1.19041.1版本 修改(这个sdk一般在vs2019中下载)勾选Debugging Tools for Windows在搜索中搜索Windbg,打开Windbg(x64)虚拟机环境配置1.在虚拟机关机的状态下,在设置中将处理器及内核均调为1.2.删除硬件中的打原创 2020-11-19 14:23:09 · 890 阅读 · 0 评论 -
驱动编程学习2/x64汇编基础
x64寄存器x64寄存器基本介绍对32位寄存器的操作立即数的使用优先使用偏移寻址对于超过32位地址的CALL及返回方式调用约定x64寄存器基本介绍x64模式下有16个通用寄存器可使用,和x86相比多出了r8-r15共8个寄存器,这些寄存器每个都能能拆分为rXd(dword),rXw(word),rXb(byte)rsp,rbp,rsi,rdi分别能分出最小单位spl,bpl,sil,dil,均为8位寄存器。用户可用的寻址空间为00000000‘00000000-----00007FFF’FFFF原创 2020-11-19 13:38:26 · 1047 阅读 · 1 评论 -
驱动编程学习1/驱动编程环境配置
Windows驱动编程环境配置首先需要安装VS2019(社区版、专业版、企业版都可以)。注意一定要先安装vs工具包组件再安装WDK,否则出现问题概不负责。 安装程序中,选择“单个组件”,搜索Windows SDK ,勾选版本最新版(我的机器上最新版为10.0.19041.0),注意一定要装最新的,因为官网下载的WDK在安装的时候也是要求最新的SDK3.接下来搜索MSVC v14.27,勾选x64/x86 Spectre缓解库4.安装两项组件并等待至完成,若需要重启则进行...原创 2020-11-16 14:44:03 · 266 阅读 · 0 评论