news 2026/8/24 20:49:02

Injector:一行命令向 Windows 进程完成 DLL 注入与卸载

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Injector:一行命令向 Windows 进程完成 DLL 注入与卸载

Injector:一行命令向 Windows 进程完成 DLL 注入与卸载

【免费下载链接】InjectorCommand line utility to inject and eject DLLs项目地址: https://gitcode.com/gh_mirrors/injec/Injector

想 hook 一个正在运行的进程,传统做法要自己处理 OpenProcess、VirtualAllocEx、CreateRemoteThread,任何一步出错都要从头排。Injector 就是为这类场景准备的 Windows 命令行工具,一条命令把 DLL 注入或卸载进任意运行中的进程。

一句话定位:Injector 是一个 Windows 命令行工具,支持按进程名、窗口标题、PID 三种方式定位目标进程,一次调用完成一个或多个 DLL 的注入(inject)与卸载(eject),面向需要 hook 开发、进程调试和功能监控的开发者与测试人员。

安装与首次运行

获取源码:

git clone https://gitcode.com/gh_mirrors/injec/Injector

用 Visual Studio 2019 或更高版本打开解决方案文件 Injector.sln,选择 x86、x64 或 ARM64 平台生成即可;也可以直接从项目的 Releases 页下载对应架构的预编译二进制。

拿到可执行文件后,第一条能跑通的命令(目标:向记事本注入一个 DLL):

Injector.exe --process-name notepad.exe --inject C:\Temp\myHooks.dll

输出Successfully injected module!即注入成功,返回码为 0。

命令怎么拼:三步组出有效调用

一条完整命令由三部分组成,前两部分各选一,第三部分可传多个。

  1. 定位目标进程(三选一)
    • -n/--process-name:按进程模块名,默认不区分大小写,加-c/--case-sensitive开启精确匹配
    • -w/--window-name:按主窗口标题
    • -p/--process-id:按数字 PID
  2. 指定动作(二选一)
    • -i/--inject:加载 DLL
    • -e/--eject:卸载 DLL,按模块名匹配,磁盘上文件已删除也能卸载
  3. 附加一个或多个 DLL 路径(绝对或相对路径),空格分隔

其他要点:

  • 注入前工具会自动申请SeDebugPrivilege权限,这是调试其他进程所必需的
  • 返回码约定:0成功、1命令行参数无效、2一般错误、3结构化异常(SEH)错误、4未知错误,方便脚本判断
  • 输入Injector.exe -h可随时查看帮助

实战场景

  • Hook 开发者的编译后自动化:调试 DLL 每次重新编译后都要手动注入,很烦。把注入命令写进 Visual Studio 的后置生成事件,编译完成时 hook 自动加载进目标进程,全程不用手动操作。

  • 测试人员验证 hook 是否生效:验证完某个 hook 后不想杀进程重启(会丢失现场状态),执行Injector.exe --process-id 4321 --eject myHooks.dll,DLL 立即从目标进程中卸载,进程继续运行。

  • 批量挂多个模块:一次任务要挂 hook、overlay、日志三个 DLL,无需跑三遍命令,一条命令全部带上:

    Injector.exe --process-name chrome.exe --inject hook1.dll hook2.dll hook3.dll

进阶入口:源码与构建

想改行为或自己编译时,从这几个位置入手:

  • Injector/Main.cpp:命令行解析、参数校验、返回码定义
  • Injector/Injector.cpp 与 Injector/Injector.h:注入/卸载类的完整实现
  • Injector/Seh.cpp:把 SEH 异常代理成 C++ 异常,保证错误路径可捕获
  • scripts/finalize-release.ps1:发布流程脚本

踩坑速查

  1. 权限不足注入失败:目标若是 64 位系统进程或以管理员身份运行的程序,需以管理员身份运行 Injector(工具会自动申请 SeDebugPrivilege,但提升该权限本身需要管理员)。
  2. 架构不匹配:32 位 DLL 注入不进 64 位进程,反之亦然。先确认 DLL 与目标进程的位宽一致,再排查其他原因。
  3. 提示 No process identifier specified!-n-w-p至少传一个,-i-e也至少传一个,且-i-e不能同时用。跑Injector.exe -h对照格式。

结尾

工具边界很窄:你负责指定"哪个进程"和"哪个 DLL",OpenProcess 到远程线程的细节它全包。如果任务就是让某个进程加载某个 DLL,一行命令是它的上限复杂度。

【免费下载链接】InjectorCommand line utility to inject and eject DLLs项目地址: https://gitcode.com/gh_mirrors/injec/Injector

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 20:48:12

CSMA/CD协议详解:从总线以太网冲突解决到现代网络演进

这次我们来看一个计算机网络底层的关键问题:早期总线型以太网是怎么解决多台设备同时发送数据导致“数据打架”的?答案就是 CSMA/CD(载波侦听多路访问/碰撞检测)协议。这个协议是理解现代以太网,乃至整个共享介质网络通…

作者头像 李华
网站建设 2026/8/24 20:47:49

基于RIME的拼音输入法:5分钟装好四叶草拼音的完整安装配置指南

基于RIME的拼音输入法:5分钟装好四叶草拼音的完整安装配置指南 【免费下载链接】rime-cloverpinyin 🍀️四叶草拼音输入方案,做最好用的基于rime开源的简体拼音输入方案! 项目地址: https://gitcode.com/gh_mirrors/ri/rime-clo…

作者头像 李华
网站建设 2026/8/24 20:46:37

青少年抑郁如何化解?靠谱心理机构这样选

当孩子陷入情绪低谷,甚至出现厌学、自我封闭、对什么都提不起劲的状态,最揪心的往往是父母。我们既怕孩子被贴上“有问题”的标签,又怕自己哪里做得不对,加重孩子的负担。青少年抑郁的化解,靠的不是讲道理,…

作者头像 李华
网站建设 2026/8/24 20:42:32

2G2C挂机宝:从廉价服务器到自动化工作节点的工程实践

最近在整理一些自动化脚本和定时任务时,发现一个挺有意思的现象:很多朋友在讨论“挂机宝”时,第一反应是“便宜”,第二反应是“能挂游戏吗?”,然后就没了下文。这让我想起几年前刚开始接触云服务器时&#…

作者头像 李华
网站建设 2026/8/24 20:42:02

GetQzonehistory完整使用指南:5分钟找回QQ空间历史说说

GetQzonehistory完整使用指南:5分钟找回QQ空间历史说说 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory QQ空间没有数据导出功能,但 GetQzonehistory 能把你的历史…

作者头像 李华