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); //正常操作

}

}

f95203b6b2c5e0f497173dbc16f8b119.png

2:驱动层hook

首先看一下OpenProcess 整个操作流程:

234ea5f8d6f2864dcf24e7c66772038c.png

用户层可以

HOOK:OpenProcess NtOpenProcess

驱动层可以

替换SSTD表对应服务的函数地址,

HOOK: NtOpenProcess,PspOpenProcess,ObOpenObjectByPointer

HOOK SSTD表对应服务的函数地址(简单例子):

fe01c7791d21ac3f0a0ed4089650dfe2.png
183d3b7e19981fc4d059650d50b259a4.png

某某SSDT 自我保护进程:

正常OpenProcess 会出现访问拒绝。

但通过驱动去获取,便原型必现

46071e1738063af297a617b2dd0711da.png

二.畅想:

这只是基本的开发模型。主要方向反病毒软件。

近期搜集了一些资料,喜欢钻研的可以聊聊。

af3bf9f4d62cf7f95aa604cc415950a8.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值