Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
LdrLockLiberator — 当DLLMain是唯一途径时 | Kitploit
工具/GitHubGitHub/elliotkillick/ldrlockliberator
持久化机制漏洞利用后渗透利用红队Payload 开发
GitHubelliotkillick/ldrlockliberator

LdrLockLiberator

当DLLMain是唯一途径时

查看仓库
43571131年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站
Logo

LdrLockLiberator

当 DLLMain 是唯一途径时

LdrLockLiberator 是一系列技术集合,用于在执行代码时逃出或以其他方式避开 Loader Lock——无论是从 DllMain 中,还是在任何其他可能存在该锁的地方。它与《完美 DLL 劫持》文章一同发布。我们为你提供解锁库加载器的 钥匙,让你可以在自己的计算机上随心所欲地处理你的加载器!

这些技术尽可能做到通用、干净且 100% 安全。它们的设计目标是在不修改内存保护或指针的情况下工作。这对于与现代漏洞缓解机制保持兼容至关重要。唯一官方支持的架构是 x86-64(32 位已基本绝迹)。

想了解为什么 DllMain 在 Windows 上如此令人头疼,而类 Unix 操作系统却不会有此困扰的架构原因吗?请随意!。

技术

LdrFullUnlock

它的功能正如其名字所示。解锁 Loader Lock,设置加载器事件,并翻转 LdrpWorkInProgress。建议保持 RUN_PAYLOAD_DIRECTLY_FROM_DLLMAIN 未定义,以获得最佳稳定性。

切勿在生产代码中使用此技术。 这是出于我纯粹的好奇心以及不留死角的意愿而创造的副产品。你对此代码所做的任何事情,后果自负。

在退出时逃逸

我们在 DLL 代码中使用了通常由 EXE 使用的 CRT atexit,在程序退出时逃出 Loader Lock。对于动态加载(使用 LoadLibrary),通过使用 LdrAddRefDll 将我们的库固定(LDR_ADDREF_DLL_PIN),使其达到 100% 安全,这样之后的 FreeLibrary 就不会将我们的 DLL 从内存中移除。

利用锁为我所用

敬请期待!

示例

提供的示例劫持了来自 C:\Program Files\Windows Defender\Offline\OfflineScannerShell.exe 的 MpClient.dll。源代码注释中提供了相关说明,方便你将其轻松调整为任何其他 DLL 与程序组合(主要只需为静态加载更新导出表)!

作为概念验证,我们默认以 ShellExecute 作为载荷运行。不过,你可以让它做任何你想做的事情!

编译

Visual Studio

此项目根目录下的 LdrLockLiberator.c 已在 Visual Studio 2022 上测试编译通过。

通过在“解决方案资源管理器”窗口中选择当前的 Visual Studio 项目,然后转到菜单栏中的 Project > Properties 来链接到 NTDLL。在顶部的 Configuration 下拉菜单中,选择 All Configurations 和 All Platforms。然后,转到 Linker > Input,在 Additional Dependencies 末尾追加:ntdll.lib。

WDK

安装正确的 WDK

  1. 前往 WDK 下载页面
  2. 点击 Windows 7 的 WDK 7.1.0 链接,开始下载正确的 WDK 版本
  • 这是最后一个 官方 支持链接到原始 MSVCRT(C:\Windows\System32\msvcrt.dll)的公共 WDK
  • SHA-256 校验和:5edc723b50ea28a070cad361dd0927df402b7a861a036bbcf11d27ebba77657d
  1. 挂载下载好的 ISO,然后运行 KitSetup.exe
  2. 使用默认选项一路点击完成安装过程

编译

  1. 在开始菜单中搜索“x64 Free Build Environment”并打开它
  2. (使用 cd)导航到本仓库中的 LdrLockLiberatorWDK
  3. 运行 build

完成!你的 DLL 已构建完毕,可以使用了!

作为 WDK 的替代方案,使用 MinGW 编译可能也能成功。

许可证

MIT 许可证 - 版权所有(C)2023-2024 Elliot Killick [email protected]

下载工具