vc++ hook 拦截自己进程指定的api函数_游戏辅助原理:过用户层HOOK 驱动层SSDT HOOK (之进程保护篇)...
·
一、进程自我保护:
HOOK windows 用户层api (用户层保护)
内核层api(驱动层保护)
1:用户层hook(简单例子)
Hook
OpenProcess(....,....,DWORD dwProcessId)
拦截函数
DWORD MyOpenProcess(...,....,DWORD dwProcessId)
{
// MydwProcessId 被保护进程id
If(dwProcessId == MydwProcessId)
{
return ERROR_ACCESS_DENIED; //过滤拦截
}
else
{
return OpenProcess(....,....,dwProcessId); //正常操作
}
}

2:驱动层hook
首先看一下OpenProcess 整个操作流程:

用户层可以
HOOK:OpenProcess NtOpenProcess
驱动层可以
替换SSTD表对应服务的函数地址,
HOOK: NtOpenProcess,PspOpenProcess,ObOpenObjectByPointer
HOOK SSTD表对应服务的函数地址(简单例子):


某某SSDT 自我保护进程:
正常OpenProcess 会出现访问拒绝。
但通过驱动去获取,便原型必现

二.畅想:
这只是基本的开发模型。主要方向反病毒软件。
近期搜集了一些资料,喜欢钻研的可以聊聊。

更多推荐


所有评论(0)