windows DLL注入之注册表注入

大家好,很高兴再次和大家见面,我是你们的朋友全栈君。

今天我们将深入探讨Windows系统下的注入技术,特别是注册表注入。首先,让我们了解一下注入和Hook的概念:

注入与Hook: 注入和Hook是Windows编程中的两种技术,经常被混淆。虽然它们在安全编程中常被结合使用,但它们有各自的特点。注入技术是我们今天的重点。

1.1 Hook: Hook的中文名称是钩子,是编程中最灵活多变的技巧之一。通过设置钩子,可以在指定的API被调用时,执行自定义的回调函数,从而改变代码逻辑或获取代码控制权(这是黑客编程的核心目标)。我个人更倾向于将Hook理解为一种机制,类似于中间人攻击。Hook技术有多种类型(以后会详细介绍)。在Windows中,Hook有两种含义:

1.1.1 Windows系统提供的消息Hook机制: 这是由一系列API提供的服务,允许对大多数应用程序的关键节点进行函数API或消息的Hook操作。Windows为每种Hook类型维护一个钩子链表,我们可以通过系统API来对符合此机制的函数API或消息进行Hook。

1.1.2 自定义的Hook编程技巧: 这是一种不使用Windows API的高级技术,基于特定的系统结构、文件结构和汇编语言。以下是一个表格,按照技术本质(而非具体实现细节)对不同类型的Hook进行分类:

Windows提供的消息Hook Hook技术 自定义Hook
Hook类型 inline Hook
EAT Hook(用户层)
IAT Hook(用户层)
SSDT Hook(内核层)