参考书籍《windows内核安全与驱动开发》
看了之后里面的开发环境很老,和我的开发环境相差甚远,所以需要先把我的本地开发环境搭建起来
安装下载
安装vs2017+wdk10
下载地址:https://docs.microsoft.com/zh-cn/windows-hardware/drivers/download-the-wdk
编写第一个c文件
vs2017文件-->新建项目
#include <ntddk.h>
//提供一个Unload函数只是为了让这个程序能够动态卸载,方便调试
VOIDDriverUnload(PDRIVER_OBJECT driver){
DbgPrint("first :our driver is unloading ...\r\n");
};
//DriverEntry 入口函数 相当于main
NTSTATUSDriverEntry(PDRIVER_OBJECT driver,PUNICODE_STRING reg_path){
DbgPrint("first:Hello,my salary");
//设置一个卸载函数,便与函数推出
driver->DriverUnload = DriverUnload;
returnSTATUS_SUCCESS;
};
编译一个工程
项目-->属性
设置目标系统
生成 -->生成解决方法
没报错的话就生成好了
安装与运行
win10关闭驱动强制签名
临时方法:
永久关闭:(没有测试成功)
命令行下:bcdedit.exe /set nointegritychecks on
重启之后选强制关闭驱动签名
驱动加载
器.exe
32KB
使用管理员权限打开驱动加载器
将刚刚编译好的sys程序放进去
Dbgvie
w.exe
457.08KB
以管理员权限打开debugview.exe
打勾之后
安装驱动,然后启动 ,卸载就能在debug view里看到效果了
设置win7虚拟机调试模式
管理员权限打开cmd
bcdedit /dbgsettings serial baudrate:115200 debugport:1
bcdedit /copy {current} /d DebugEntry
bcdedit /displayorder {current} {ID}
bcdedit /debug {ID} ON
(以上id替换成生成的数字或字母)
重启之后选择MyDebug
测试是否进入调试模式 :bcdedit /enum
设置vm管道虚拟串口
移除打印机
更改windbg的快捷方式(安装wdk时自带了windbg)
"C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe" -b -k com:pipe,port=\\.\pipe\com_1,resets=0
开启虚拟机进入debug启动时以管理员方式启动windbg
刚刚连接时虚拟机会终端,在windbg里输入g并按回车键继续
[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界