|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
int SearchFeature(int StarSearchAddr,char* pFeatureCode,int Leng) //开始地址 搜索代码 长度
{
char ReadCode[256]=""; //保存读取到的汇编代码
int i=5000; //定义循环次数
while(i--)
{
RtlMoveMemory(ReadCode,(char*)StarSearchAddr,Leng); //向ReadCode中写入读取到的汇编代码
if (RtlCompareMemory(pFeatureCode,ReadCode,Leng)==Leng) //比较读取到的汇编代码与特征码是否相同
{
return StarSearchAddr+Leng; //成功返回搜索起始地址即挂钩地址
}
StarSearchAddr++; //起始搜索地址自加
}
return 0; //失败返回值
}
bool CheckProcessName(char *HookProcessName)
{
int EProcess;
EProcess=(int)PsGetCurrentProcess(); //取得当前访问进程结构
char RcvProessaName[16];
strcpy(RcvProessaName,(char*)(EProcess+0x174)); //取得当前访问进程名
if(strcmp(RcvProessaName,HookProcessName)==0) //比较指定程序是否调用了此函数
{
return true; //返回真
}
return false; //返回假
}
这俩好基友为毛会导致我的驱动服务启动失败··· ···
经过我的测试,貌似是char类型定义那里的问题,反正就是红色那部分,有木有人知道肿马回事?
|
|