ifBars/UEWorkshopScanner

GitHub: ifBars/UEWorkshopScanner

Rust 编写的虚幻引擎5 IoStore 资产静态恶意软件扫描器,在游戏加载前检测 Blueprint 中的恶意行为链并输出机器可读的判定结果。

Stars: 0 | Forks: 0

# UEWorkshopScanner [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/ifBars/UEWorkshopScanner/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![Rust](https://img.shields.io/badge/Rust-2024-orange.svg)](https://www.rust-lang.org/) UEWorkshopScanner 是一款用于 Unreal Engine Workshop 内容的本地静态恶意软件扫描器。 它在进程内打开 UE5 IoStore 包,扫描 cooked assets 以检测关联的 Blueprint 行为, 并在游戏加载该附加组件之前返回机器可读的判定结果。 初始规则主要针对恶意的 [MECCHA CHAMELEON](https://store.steampowered.com/app/4704690/MECCHA_CHAMELEON/) Workshop 地图中使用的攻击链:自动 Blueprint 执行、外部文件写入、脚本 构造、隐藏 shell 执行以及下载行为。 ## 它能检测什么 - 触及文件或 URL 操作的自动 `BeginPlay` 行为; - 写入用户控制的目录,尤其是脚本扩展; - PowerShell 和命令行 shell 的下载并执行链; - JSON/batch 多态构造; - 隐藏 shell 执行; - 已记录的 Meccha Chameleon dropper 行为链; - 保留的历史 RCE fixture 名称。 规则会在同一个 cooked asset 中关联这些标记。单个双用途的 Blueprint 函数本身不会阻止地图加载。 ## 快速开始 Windows 归档文件将通过 [GitHub Releases](../../releases) 发布。在第一个归档文件可用之前,请按照 以下说明从源代码构建 CLI。解压整个归档文件,然后通过其 `.utoc` 入口点扫描 Workshop 包: ``` .\ue-workshop-scanner.exe "D:\path\to\WorkshopItem\Map-Windows.utoc" ``` 发布归档文件将扫描器及其指定的 Oodle 解码器保存在一起。 首次使用时,请查看并接受捆绑的二进制文件条款: ``` .\ue-workshop-scanner.exe --licenses .\ue-workshop-scanner.exe "D:\path\to\Map-Windows.utoc" --accept-eula ``` 接受状态会存储在用户的本地配置目录中一次。 交互式使用会弹出提示,而不需要强制使用该标志。 ### 阅读结果 CLI 会将 JSON 报告写入标准输出。 | 判定结果 | 退出代码 | 含义 | | --- | ---: | --- | | `allow` | 0 | 扫描完成,且未匹配到当前规则 | | `review` | 2 | 可疑的双用途行为需要审查 | | `block` | 3 | 匹配到高置信度的恶意行为链 | | `incomplete` | 4 | 部分内容无法被安全检查 | 示例: ``` { "verdict": "block", "complete": true, "chunks_seen": 2088, "chunks_scanned": 2088, "findings": [ { "rule_id": "UWS108", "title": "Meccha Chameleon Blueprint dropper behavior chain", "severity": "critical", "blocking": true } ] } ``` ## 安全特性 - 无网络客户端,且无运行时依赖下载; - 无需 Unreal Engine 或 `UnrealPak.exe`; - 不将扫描的资产提取到磁盘; - 精确的 Oodle 可分发哈希白名单; - 可配置的每 chunk 大小上限; - 未完成的分析绝不会产生 `allow`; - 确定性的构建产物和发现顺序; - Workshop 包、cooked assets 和恶意软件样本被排除在 Git 之外。 原生解码器和容器解析器仍然会处理受攻击者控制的 输入。计划中的桌面集成应将此 CLI 作为非特权、资源受限的 worker 运行。请参阅 [THREAT_MODEL.md](THREAT_MODEL.md) 和 [ARCHITECTURE.md](ARCHITECTURE.md)。 ## 从源代码构建 环境要求: - 当前稳定的 Rust 工具链,使用 2024 edition; - 授权的 Oodle Data 2.9.10 Windows 解码器,用于处理 Oodle 压缩的内容。 ``` cargo build --locked --release cargo test --locked cargo clippy --locked --all-targets -- -D warnings ``` 通过提供路径和摘要来使用单独获取的解码器: ``` .\target\release\ue-workshop-scanner.exe ` "D:\path\to\Map-Windows.utoc" ` --oodle-path "D:\path\to\oo2core_9_win64.dll" ` --oodle-sha256 "" ``` 运行 `ue-workshop-scanner --help` 获取完整的 CLI 参考。 ## 发布打包 维护者可以从批准的本地 Epic 可分发文件构建独立的 Windows 归档: ``` .\scripts\package-windows-release.ps1 ` -OodlePath "D:\path\to\Epic\win\redist\oo2core_9_win64.dll" ` -Version "0.1.0" ``` 打包器不执行任何下载。它会验证解码器哈希,使用 `Cargo.lock` 进行构建,包含二进制 EULA 和声明,并生成每个文件和 归档的 SHA-256 校验和。有关分发逻辑 和剩余许可风险,请参阅 [OODLE_DISTRIBUTION.md](OODLE_DISTRIBUTION.md)。 ## 当前局限性 - UE5 IoStore `.utoc`/`.ucas` 包是当前的最终用户路径。 - 加密的容器需要授权密钥,目前不被 支持。 - 标记关联尚未重建完整的 Kismet 控制流。 - 原生 C++ 插件、UE4SS 模组和 DLL 注入链不在范围内。 - 目前的检测重点集中在已发布的 Meccha Chameleon 行为上。 ## 研究基础 - [Meccha Chameleon 中的两次点击远程代码执行](https://khaelkugler.com/blogs/meccha_chameleon.html) - [MECCHA CHAMELEON 的 Workshop 地图是一个恶意软件 dropper](https://medium.com/@FeintBE/workshop-map-for-meccha-chameleon-is-a-malware-dropper-full-breakdown-d1ac29565265) - [Meccha Chameleon 恶意软件事件](https://www.youtube.com/watch?v=RB9MrJ2fNqE) - [retoc](https://github.com/trumank/retoc) 本代码库中不包含任何恶意样本、私有 Workshop 包或专有的 Unreal 资产。 ## 贡献与安全 在更改规则或解析器行为之前,请阅读 [CONTRIBUTING.md](CONTRIBUTING.md)。 请通过 [GitHub Security Advisories](../../security/advisories/new) 私下报告扫描器漏洞; 请勿将活跃的恶意软件附加到公开的 issue 中。 ## 许可与商标 UEWorkshopScanner 源代码在 [MIT License](LICENSE) 下提供。 包含 Epic Games 授权技术的编译分发版本同样受 [BINARY-EULA.txt](BINARY-EULA.txt) 和 [THIRD_PARTY_NOTICES.txt](THIRD_PARTY_NOTICES.txt) 约束。 UEWorkshopScanner 是独立的,不隶属于、不受赞助于、也不受 Epic Games、Valve 或 MECCHA CHAMELEON 开发者的认可。
标签:AMSI绕过, DNS 反向解析, OpenCanary, Rust, 可视化界面, 威胁检测, 游戏安全, 知识库安全, 网络信息收集, 网络流量审计, 虚幻引擎, 通知系统, 静态恶意软件扫描