Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ReflectiveDLLInjection — 反射式DLL注入是一种库注入技术,它利用反射式编程的概念,将库从内存加载到宿主进程中。 | Kitploit
工具/GitHubGitHub/stephenfewer/reflectivedllinjection
内存取证漏洞利用后渗透利用红队Payload 开发
GitHubstephenfewer/reflectivedllinjection

ReflectiveDLLInjection

反射式DLL注入是一种库注入技术,它利用反射式编程的概念,将库从内存加载到宿主进程中。

查看仓库
3.3k81674年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

关于

反射式DLL注入是一种库注入技术,它利用反射式编程的概念,将库从内存加载到宿主进程中。因此,该库通过实现一个最小的可移植可执行文件(PE)加载器来负责自身的加载。它可以在与宿主系统和进程进行最小交互的情况下,控制自身如何加载以及与宿主交互。

该注入技术适用于从Windows NT4到Windows 8(含)的系统,并在适用的x86、x64和ARM架构上运行。

概述

将库远程注入进程的过程分为两步。首先,您希望注入的库必须被写入目标进程(下文称为宿主进程)的地址空间。其次,该库必须以满足其运行时预期的方式加载到宿主进程中,例如解析其导入表或将其重定位到内存中的合适位置。

假设我们在宿主进程中拥有代码执行能力,并且希望注入的库已被写入宿主进程内存中的任意位置,那么反射式DLL注入的工作方式如下。

  • 执行权通过CreateRemoteThread()或一个微小的引导shellcode传递给库的ReflectiveLoader函数,该函数是库导出表中找到的一个导出函数。
  • 由于库的映像当前存在于内存中的任意位置,ReflectiveLoader将首先计算自身映像在内存中的当前位置,以便稍后解析其自身的头文件。
  • 随后,ReflectiveLoader将解析宿主进程的kernel32.dll导出表,以计算加载器所需的三个函数的地址,即LoadLibraryA、GetProcAddress和VirtualAlloc。
  • ReflectiveLoader现在将分配一块连续的内存区域,并在此区域中加载自身的映像。该位置并不重要,因为加载器稍后会正确重定位映像。
  • 库的头文件和节区被加载到它们在内存中的新位置。
  • ReflectiveLoader随后将处理其映像新加载副本的导入表,加载任何附加库并解析它们各自导入的函数地址。
  • ReflectiveLoader随后将处理其映像新加载副本的重定位表。
  • ReflectiveLoader随后将调用其新加载映像的入口点函数DllMain,并传入DLL_PROCESS_ATTACH。此时,该库已成功加载到内存中。
  • 最后,ReflectiveLoader将执行权返回给最初调用它的引导shellcode,或者如果它是通过CreateRemoteThread调用的,则该线程将终止。

构建

在Visual Studio C++中打开'rdi.sln'文件,并以Release模式构建解决方案,以生成inject.exe和reflective_dll.dll。

用法

要测试,请使用inject.exe通过进程ID将reflective_dll.dll注入宿主进程,例如:

inject.exe 1234

许可证

根据三条款BSD许可证授权,详情请参阅LICENSE.txt。

下载工具