Hooking
Hook,即钩子,在网络安全用语中,指的是拦截并且修改特定的 API 执行流程,通常用于 Debugging,逆向工程,游戏作弊,检测恶意软件行为。API Hook 将原有的 API 替换为自定义的以进行额外的检视,如果非恶意,则继而调用原有的 API,否则会被拦截。
安全产品,例如 EDR,可能会实施 SSDT Hooking,IAT Hooking,内联 Hooking。不过对于 SSDT Hooking,因为是内核层的,虽然安全产品可以实施 SSDT Hooking 从而实现更彻底的检视,但也会被恶意软件用来实现文件、网络连接、注册表键等的隐藏。基于内核层的更改,无论目的是好是坏,都可能影响系统安全性、完整性、以及稳定性,因此微软后来引入了 PatchGuard 来阻止对内核的补丁。作为"补偿",微软引入了我们之前简述过的内核回调,供安全产品进行内核层面的检视。