01 2025 档案
摘要:一、介绍 开源hook库已被用于实现 API 挂钩。然而,这种方法的一个主要问题是这些库的源代码是公开可用的,使得安全研究人员和安全产品供应商可以很直接地构建 IoC。因此,本文将手动实现 API 挂钩,虽然不如前面演示的库复杂,但足以在没有 IoC 的情况下实现预期结果,如果只想挂钩单个函数,自定
阅读全文
摘要:一、介绍 API hook(钩取)是一种用来拦截和修改 API 函数行为的技术。它常用于调试、逆向工程和游戏作弊。API 钩取涉及用一个自定义版本替换 API 函数的原始实现,该自定义版本在调用原始函数之前或之后执行一些附加动作。这允许人们在不修改程序源代码的情况下修改其行为 。 1.1 Tramp
阅读全文
摘要:一、介绍 导入地址表 (IAT) 包含有关 PE 文件的信息,例如使用过的函数和导出它们的 DLL。此类信息可用于对二进制文件进行签名和检测,如下图所示PE 文件导入被认为高度可疑的函数 二、隐藏混淆方法 (1)IAT 隐藏和混淆—方法 1 自定义函数 可以在运行时使用 GetProcAddress
阅读全文
摘要:一、介绍 利用函数篡改注入可以避免使用 VirtualAlloc/Ex WinAPI 调用,使用新代码替换原始函数的字节,导致函数被替换或不再按预期工作。相反,函数将执行不同的逻辑。要实现这一点,需要一个被践踏的牺牲函数地址 (1)选择目标函数 本地获取函数地址很简单,但用这种技术获得的主要关注点是
阅读全文
摘要:一、前言 在所有先前的实现中,私有内存类型都用于在执行期间存储有效负载。私有内存是使用 VirtualAlloc 或 VirtualAllocEx 分配的,如下图所示可以看到内存类型属于Private 二、映射内存注入 分配私有内存的过程因被恶意软件广泛使用而受到安全解决方案的高度监控。为了避免使用
阅读全文
摘要:一、介绍 回调函数本质上是一个被传递到另一个函数中的函数并且 在适当的时候被调用。在这个过程中,回调函数通常作为参数传递给其他函数(通常是调用者函数),而被调用者函数会在某些条件满足时调用这个回调函数, 回调函数用于处理事件或在满足条件时执行操作。它们用于 Windows 操作系统中的各种场景,包括
阅读全文
摘要:一、介绍 QueueUserAPC 用于执行本地 APC 注入,APC 注入利用需要一个已挂起或可警报的线程才能成功执行 Payload。但是很难碰到处于这些状态的线程,尤其是以普通用户权限运行的线程,而Early Bird注入则是利用CreateProcess WinAPI 创建一个挂起的进程,并
阅读全文