windows DLL注入之注册表注入
- 星夢妙者
- 2025-09-04
- 热度
大家好,很高兴再次和大家见面,我是你们的朋友全栈君。
今天我们将深入探讨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(内核层) |