《逆向工程核心原理》学习笔记9 DLL注入——注入过程

《逆向工程核心原理》学习笔记9

DLL注入——注入过程

一、DLL注入简介

DLL注入指的是向运行中的其他进程强制插入特定的DLL文件。从技术细节来说,DLL注入命令其他进程自行调用LoadLibrary() API,加载(Loading)用户指定的DLL文件。DLL注入和一般的DLL加载的区别在于,加载的目标进程是自身或者其他进程

二、DLL注入示例

  1. 改善功能与修复Bug
  2. 消息钩取
  3. API钩取
  4. 其他应用程序
  5. 恶意代码

三、DLL注入实现的方法

向某个进程注入DLL时主要使用以下三种方法:
DLL注入方法

  1. 创建远程线程(CreateRemoteThread() API)
  2. 使用注册表(AppInit_DLLs值)
  3. 消息钩取(SetWindowsHookEx() API)

四、CreateRemoteThread()

通过练习示例myhack.dll,了解通过创建远程线程进行DLL注入的方法。
首先将InjectDll.exe和myhack.dll放在同一目录下
《逆向工程核心原理》学习笔记9 DLL注入——注入过程_第1张图片
运行notepad.exe程序
此处有一个问题
我一开始运行的是书中的示例中使用的notepad.exe,不是系统自带的记事本,然后无论如何都无法注入,后来使用了系统自带的notepad.exe才成功注入,不知道是为什么
在Process Explorer中找到记事本的PID为1984
《逆向工程核心原理》学习笔记9 DLL注入——注入过程_第2张图片
打开DebugView
然后在命令行当中执行InjectDll.exe

此时能看到DebugView中出现了一段字符串
《逆向工程核心原理》学习笔记9 DLL注入——注入过程_第3张图片
以及可以在Process Explorer中找到被注入的dll文件

这就完成了初步的注入,这只是最初步的了解,欲知后事如何,请听下回分解

你可能感兴趣的:(信息安全,windows,安全,c语言)