【2021.01.16】HOOK攻防、瞬时(临时)HOOK

常用手段

  • 阶段一
  1. 防守:检测JMP(E9)、检测跳转范围。
  2. 攻击:想方设法绕开。
  • 阶段二
  1. 防守:线程全代码校验/CRC校验。
  2. 攻击:修改检测代码、挂起检测线程。
  • 阶段三
  1. A->B->C->D->被 HOOK 函数
  2. 防守:相关API进行全代码校验,多个线程互相检测,并检测线程是否活动。
  3. 攻击:使用瞬时(临时)钩子/硬件钩子。

解决方案

  1. 对 VirtualProtect 进行 HOOK,只有当调用地址为 A 时,对 ExitProcess 进行挂钩,并修正返回结果,改变执行流程。
  2. 在 ExitProcess 的 HOOK 处理函数中判断,只有当调用地址为 B 的时候,才将 ExitProcess 函数进行失效,然后卸载 HOOK。

猜你喜欢

转载自blog.csdn.net/qq_18120361/article/details/112712843