1.定义x64汇编函数
在 Source Files 下创建一个*.asm文件,编写以下demo代码:
.CODE ;文件开始
vt_Add PROC ;函数开始
add rcx,rdx ;参数1与参数2相加
mov rax,rcx ;结果赋值到rax
ret ;返回rax
vt_Add ENDP ;函数结束
END ;文件结束
2.调用x64汇编函数
EXTERN_C ULONG64 vt_Add(ULONG64 u1, ULONG64 u2);//声明
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver, PUNICODE_STRING reg_path)
{
DbgPrint("驱动被加载\n");
ULONG64 result = vt_Add(0x111111111, 0x333333333); //调用
DbgPrint("result = %x\n", result);
pDriver->DriverUnload = DriverUnload;
return STATUS_SUCCESS;
}
3.编译
右键项目-生成依赖项-生成自定义-勾选masm
2.VS2019下的汇编语法
sub rax,0F1111111h √
sub rax, 11111111h √
sub rax,0x11111111 ×
sub rax,0xF1111111 ×
sub rax, F1111111h ×
jmp 11111111h ×
jmp ___XXX √
___XXX: