Advertisement

《Windows核心编程》读书笔记:第22章对DLL注入与API拦截的深入分析

阅读量:

第22章 DLL注入和API拦截

本章内容

22.1 DLL注入的一个实例

22.2 通过注册表实现DLL注入

22.3 借助Windows挂钩技术完成DLL注入

22.4 运用远程线程进行DLL注入

22.5 利用木马DLL实施注入操作

22.6 将DLL作为调试工具进行注入

22.7 使用CreateProcess方法实现代码注入

22.8 API拦截的具体示例

在操作系统运行过程中,通常每个进程都会拥有各自独立的虚拟内存空间,这种设计能够有效防止对其他进程数据造成干扰。然而,也正因为如此,若要与其他进程进行交互或对其执行控制操作,则会面临一定困难。

存在以下几种情形需要应用程序跨越进程边界,访问其他进程的内存空间:

1)希望基于其他进程中创建的窗口派生出新的窗口对象

2)需要识别并确认其他进程当前所加载的DLL组件信息

3)为其他进程设置或安装特定的钩子(hook)机制

22.1 DLL注入的一个例子

例如,若需调整由其他进程生成的窗口实例的行为(即实现子类化操作),可借助SetWindowLongPtr函数对默认窗口处理函数进行修改。(尽管MSDN文档中指出,无法直接对其他进程所创建的窗口执行子类化操作,原因在于无法跨进程地址空间访问目标进程的数据)

例如,可执行如下代码:

复制代码
    SetW

全部评论 (0)

还没有任何评论哟~