Skip to content

Bluestar-34/InjectUI

Repository files navigation

InjectUI

Windows 桌面端可视化面板:管理运行中进程、调用 Injector-cap 提供的 injector 做防截屏相关操作,并支持收藏、拖放启动、进程列表筛选等。


参考与致谢

本项目的注入能力与使用方式 参考并依赖 第三方开源项目:

项目 说明
Injector-cap 防截屏注入工具(C++),仓库内包含 Injector.cppInjectDLL.cpp发布包Releases · v2025.07.2120
  • InjectUI 不包含 Injector-cap 的完整源码实现,仅通过 命令行调用 injector(或用户配置的等价路径),并在界面侧做进程管理与快捷操作。
  • 请勿将 InjectUI 等同于 Injector-cap 官方发行物;使用注入、防截屏等功能时,请遵守当地法律法规与目标软件许可,风险自负。
  • 上游仓库已于 2025-11-04 标记为 Archived,只读存档,后续维护以本仓库与本地 attach 文件为准。

功能概要

  1. 进程列表:用户模式(有主窗口)/ 全面模式(全部 Win32 进程),支持搜索。
  2. 禁止截屏:对运行中进程执行类似 injector <进程名>.exe -notopmost(以侧栏设置为准)。
  3. 结束 / 重启:用于在进程级消除注入影响(新进程未注入)。
  4. 收藏、拖放启动、快速启动、一键从 attach 部署 injector(见下文)。

使用流程(简要)

  1. 启动目标程序(注入仅对 正在运行 的进程有效)。
  2. 在列表中 搜索 后点击 禁止截屏
  3. 需要恢复可截屏时:结束进程重启 该应用。

更详细的参数、环境变量与界面行为见下文「配置」与「attach」章节。


attach 目录与一键配置

  1. Injector-cap 发布页 2025.07.2120 获取作者提供的压缩包(解压密码见包内说明)。
  2. injector.exeInjectDLL.dll 及同包内需随附的 .exe / .dll 散文件 放入本仓库 attach/(可与 Toolkit_fix.reg 等文件同级)。
  3. 在 InjectUI 侧栏 注入命令设置Injector-cap(attach)
    • 一键部署并检测:复制到应用数据目录下的 injector-bundle 并自动填写 injector.exe 绝对路径后自检。
    • 检测当前命令:对当前「可执行文件」配置执行无参数运行检测。
    • 部署到系统目录:按官方说明将散文件复制到 %SystemRoot%(通常需 管理员权限),并将命令设为 injector

打包发布electron-builder 会把 attach/ 整体 作为 extraResources 打进安装包,安装后位于 resources/attach,与开发时行为一致。


配置说明

  • 默认:可执行文件名为 injector,进程名之后参数 -notopmost(与上游发布说明中的示例一致)。
  • 环境变量可覆盖本地保存项:
    • INJECTUI_INJECT_COMMAND
    • INJECTUI_INJECT_MODEexeName | localPid
    • INJECTUI_INJECT_EXE_ARGS

开发与本地运行

npm install
npm run dev
  • npm install 时下载 Electron 超时,可在终端设置 ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ 后再执行;其它镜像说明见 npmmirror。(npm 10+ 不建议在 .npmrc 里写非官方 electron_mirror 键,易触发警告。)
  • 开发态下 Electron 加载 Vite 开发服务器;生产态加载 dist/index.html
npm run build
npm start

打包与 GitHub Release 规范

遵循常见 GitHub Releases 约定,便于用户与自动化识别版本。

1. 版本号(SemVer)

  • 使用 语义化版本 MAJOR.MINOR.PATCH(如 1.0.0)。
  • package.json 中的 version 与 Git tag、Release 标题应对齐。

2. Git 标签

  • 推荐带 v 前缀 的 tag,与内置 CI 一致:
    • 示例:v1.0.0
  • 创建 release 前:
npm version patch   # 或 minor / major;会改 package.json 并创建 tag
git push origin main --follow-tags

或手动:

git tag -a v1.0.0 -m "InjectUI v1.0.0"
git push origin v1.0.0

3. 本地构建安装包(Windows x64)

npm ci
npm run dist:win

Electron 下载卡在 retrying / GitHub 超时dist:win / pack / dist 已内置 ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/(见 package.json 脚本)。若仍失败,可在当前终端手动再设一次后重跑:

$env:ELECTRON_MIRROR = "https://npmmirror.com/mirrors/electron/"
npm run dist:win

winCodeSign 解压报错 Cannot create symbolic link / 客户端没有所需特权:未做代码签名时不应拉取该工具链。本项目已在 package.json 中关闭 Windows 签名并默认设置 CSC_IDENTITY_AUTO_DISCOVERY=false。若你曾失败过,请删掉缓存目录后重试:

%LOCALAPPDATA%\electron-builder\Cache\winCodeSign

仍要自行签名时,可用 管理员 打开终端,或在 Windows 设置 → 隐私和安全性 → 开发人员模式 中开启以允许创建符号链接。

产物默认在 release/ 目录,例如:

  • InjectUI-<version>-win-x64.exe — NSIS 安装程序
  • InjectUI-<version>-win-x64.zip — 绿色压缩包

发布前检查:在干净虚拟机或未安装过旧版的机器上安装/解压,确认能启动、attach 内文件随包存在、一键部署/检测逻辑正常。

若安装包/zip 启动后 白屏:多为前端资源路径问题。本项目已在 vite.config.js 中设置 base: './',请重新执行 npm run build / npm run dist:win 后再测。

4. 在 GitHub 上发 Release

  1. 打开仓库 ReleasesDraft a new release
  2. Choose a tag:选择或新建 v*.*.*
  3. Release title:建议 InjectUI v1.0.0(与 tag 一致)。
  4. Describe this release
    • 简述变更(Added / Fixed / 破坏性变更等);
    • 标明 仅 Windows x64、依赖用户自备/包内 Injector-cap 文件 与合规使用说明。
  5. Attach binaries:上传 release/ 下生成的 .exe.zip(勿将密码、密钥写入仓库)。
  6. (可选)在说明中附上 SHA256 校验和,便于用户校验下载完整性。

5. CI 自动构建(可选)

仓库包含 .github/workflows/release.yml:当推送符合 v*.*.* 的 tag 时,在 windows-latest 上执行 npm cinpm run dist:win,并将 release/*.exerelease/*.zip 上传到 同一 tag 对应的 GitHub Release。

  • 首次使用需在 Settings → Actions → General 中允许 Workflow 权限(发布 Release 需要 contents: write)。
  • Workflow 已为 Job 设置 ELECTRON_MIRROR 指向 npmmirror,降低 Actions 内拉取 Electron 失败概率。

6. 首次创建公开仓库并推送代码

GitHub 新建仓库:Repository name 自定(如 InjectUI)、Public不要勾选 “Add a README”(本地已有 README.md)。创建后按页面提示或执行:

cd F:\inject
git branch -M main
git remote add origin https://github.com/<你的用户名>/<仓库名>.git
git push -u origin main

若本地分支仍为 master 且不想改名:

git remote add origin https://github.com/<你的用户名>/<仓库名>.git
git push -u origin master

再到仓库 Settings → General 里把 Default branch 设为你要保留的分支。

关于 attach/:若其中包含 Injector-capinjector.exeInjectDLL.dll 等,公开前请确认 上游许可是否允许再分发;若不允许,应从 Git 中移除并在 README 中说明用户自行从 Injector-cap Releases 获取(可用 git rm --cached attach/*.dll attach/*.exe 等,并把这些路径加入 .gitignore)。勿将解压密码、个人密钥提交进仓库。

推送完成后,可按上文 §4Releases 上传 release/ 下构建产物,或推送 v* 标签走 CI 自动构建。

使用 SSH 时把 origin 改为 git@github.com:<用户名>/<仓库名>.git

已安装 GitHub CLI 时可:gh repo create InjectUI --public --source=. --remote=origin --push


界面与布局

  • 左侧:统计、启动区、收藏、注入设置等,独立滚动
  • 右侧:进程表在右栏内滚动,不带动左侧

许可证

MIT,全文见仓库根目录 LICENSE(与 package.jsonlicense 一致)。Injector-cap 为独立项目,其许可证与版权以上游仓库为准;请勿将二者版权混为一谈。


相关链接

About

防止特定应用被录屏、截屏(Prevent specific apps from being recorded or screenshotted)

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors