1.双机调试
1.1 虚拟机中执行命令
1 2 3 4 5
| # 管理员身份--powershell bcdedit /set “{current}” bootmenupolicy Legacy bcdedit /dbgsettings SERIAL DEBUGPORT:1 BAUDRATE:115200 bcdedit /copy “{current}” /d “Debug” bcdedit /debug “{<新建的启动配置的标识符>}” on
|
1.2 VMVare设置
添加串行端口,配置如下:

1.3 Windbg设置

2.驱动框架
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
#include <ntifs.h>
VOID DriverUnloadProc(PDRIVER_OBJECT DriverObject) { DbgPrintEx(77, 0, "Driver unload.\r\n"); }
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver, PUNICODE_STRING pReg) { pDriver->DriverUnload = DriverUnloadProc; DbgPrintEx(77, 0, "Driver load.\r\n");
return STATUS_SUCCESS; }
|
3.x64内联汇编
源文件中添加.asm文件

右键汇编文件,如下设置

应用后设置自定义生成工具选项

配置如下
1 2
| ml64 /c %(filename).asm %(filename).obj;%(Outputs)
|
函数框架
tools.asm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| ; 读取MSR寄存器 .code
ReadMsr proc ; rcx msr地址 rdx 接收的地址 push rdi push rax mov rdi,rdx xor rax,rax xor rdx,rdx rdmsr mov [rdi],eax mov [rdi+4],edx pop rax pop rdi ret ReadMsr endp
end
|
main.cpp
1
| extern "c" void ReadMsr(unsigned long long, void *);
|
VS2015汇编高亮插件
插件地址:https://github.com/HJLebbink/asm-dude/releases
找到Common7\IDE\VSIXInstaller.exe运行,并将要安装的插件拖入即可。