KingxTheDev/KingxFiveMBackDoorRemover

GitHub: KingxTheDev/KingxFiveMBackDoorRemover

一款 Windows 桌面工具,通过多信号评分机制扫描 FiveM resources 文件夹中的混淆 JavaScript 后门并支持隔离或删除。

Stars: 0 | Forks: 0

# Backdoor Scanner 一款 Windows 桌面工具,用于扫描 FiveM 的 `resources` 文件夹,查找混淆的 JavaScript 后门并进行隔离或删除。由 Kingx Development 开发。 ## 背景 以 `.js` 插件形式分发的 FiveM 脚本,有时会附带隐藏的、混淆的 payload,这些 payload 会在运行时解码并 `eval()` 恶意代码(数据泄露、远程代码执行等)。该工具会扫描文件夹树下的每个 `.js` 文件,并标记符合已知后门特征的文件,以便在服务器加载它们之前进行审查、隔离或移除。 ## 检测机制 每个 `.js` 文件都会根据一组信号进行评分。当文件的评分超过阈值时,就会被标记: - **隐藏文件** - 带有 Windows 隐藏属性的 `.js` 文件或点文件,本身就具有可疑性。 - **`require('vm')`** - 加载 Node 的 `vm` 模块以执行动态解码的代码。这在合法的 FiveM 资源脚本中几乎从未出现过。 - **`vm.runInThisContext()`** - 在当前上下文中直接执行解码后的内容。 - **`eval(decodeFn(payload, key))`** - 解码后的 payload 作为裸函数调用直接传入 `eval()`。这种确切的形式(`eval(` 立即包裹一个带有 1-2 个普通标识符参数的函数调用)正是本工具所基于的混淆 payload 存根的实际特征,无论文件大小如何,合法代码都不会这么写。 - **XOR 解码循环**(`String.fromCharCode(...) ^ key`)、**大型数字字节数组 payload** 以及**大量十六进制转义字符串** - 仅作为辅助证据。它们的权重都很低,单凭其中任何一项都无法标记一个文件,因为一个庞大的合法捆绑包(构建好的 NUI `index.js`、webpack 的 `build.js` 等)可能仅仅因为体积庞大就会触发其中某一项。只有当它们与上述某个信号同时出现时,才具有参考价值。 评分机制是根据实际在野发现的真实后门样本调整的,而非凭空猜测,但没有任何自动化扫描器是完美的。在决定删除被标记的文件之前,请务必先进行审查。 ## 功能特性 - 递归扫描整个 `resources` 文件夹,跳过 `node_modules`/`.git` 和符号链接循环 - 扫描时显示实时进度 - 右键点击检测结果可执行**打开文件**、**打开文件位置**、**隔离**或**永久删除** - 支持跨多个检测结果进行批量**隔离选中项** / **删除选中项** - 隔离操作会将文件移动到扫描根目录下的 `_quarantine` 文件夹中(不会静默删除任何内容),并记录每次移动的时间戳和原因 - 删除操作需要明确的确认,因为该操作不可逆 ## 环境要求 - Windows 10/11 - [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0) 用于构建 无其他运行时依赖 - 这是一个普通的 WPF 应用程序,不需要浏览器引擎或 WebView。 ## 构建 ``` dotnet build ``` 这将在 `bin/Debug/net8.0-windows/` 中生成标准的依赖框架的构建版本。 ## 发布单文件 exe ``` dotnet publish -c Release ``` 输出:`bin/Release/net8.0-windows/win-x64/publish/BackdoorScanner.exe` - 一个独立的单文件可执行程序,无需附带任何其他文件。 ## 用法 1. 打开应用程序,粘贴或浏览选择你的 FiveM `resources` 文件夹。 2. 点击 **Scan**。 3. 在结果列表中查看被标记的文件 - 右键点击任意一行查看选项。 4. 选择 **Quarantine** 将可疑文件移至一旁(可恢复),或选择 **Delete Permanently** 将其彻底删除。 ## 免责声明 本工具仅供出于防御安全目的,在您拥有或被授权检查的服务器和文件上使用。它只会标记可疑的特征;它不能保证某个文件一定是恶意的,也不能保证一次干净的扫描就意味着服务器是安全的。在删除任何内容之前,请务必做好备份。 ## 更新日志 ### 1.1.0 - 添加了对 `eval(decodeFn(payload, key))` 的精确结构检查 - 能够捕获直接对其解码后的 payload 执行 `eval()` 而不通过 `vm.runInThisContext()` 的后门存根。 - 修复了 1.0 版本中的一个漏报问题:数字数组/十六进制转义信号之前受到一个小文件大小阈值的限制以减少误报,但这同时也默默禁用了对那些因编码后的 payload 数组导致文件体积超过该大小的真实后门的检测。现在这些信号不再受大小限制,但其权重足够低,单凭它们都无法标记一个文件。 - 添加了 Kingx Development 品牌标识和应用程序图标。 - 在右键菜单中添加了“打开文件”和“打开文件位置”。 ### 1.0.0 - 初始版本:实现递归扫描 `.js` 文件、隐藏文件检测、带确认的隔离和删除功能,以及隔离日志。
标签:FiveM游戏, Windows桌面软件, 云安全监控, 后门扫描, 静态分析