#include "Driver.h"
unsigned char OrgCode[5]; //原函数开头5个字节的代码
unsigned char HookJmp[5] = {0xe9,0,0,0,0}; //放入原函数开头的Hook跳转
INT old_cr0; //存放cr0寄存器的内容
ULONG CreateAddr; //存放NtCreateFile的地址
#pragma LOCKEDCODE
/******************************************
打开写保护
*******************************************/
VOID WOpen(){
_asm{
cli
push eax
mov eax,old_cr0
mov cr0,eax
pop eax
}
return;
}
#pragma LOCKEDCODE
/******************************************
关闭写保护
*******************************************/
VOID WClose(){
_asm{
push eax
mov eax,cr0
mov old_cr0,eax
and eax,0xfffeffff
mov cr0,eax
pop eax
sti
}
}
#pragma LOCKEDCODE
/***************