RoRvzzz/RedFlag

GitHub: RoRvzzz/RedFlag

RedFlag 是一款面向 C++ 项目的静态分析工具,通过扫描源代码和构建系统中的危险特征、混淆手段及隐藏 payload,生成透明风险评分以辅助人工安全审查。

Stars: 2 | Forks: 0

# RedFlag # REDFLAG 现已加入 [PASTE-CO.DE](https://paste-co.de/scanner) ![Python](https://img.shields.io/badge/Python-3.12%2B-FF0000?style=for-the-badge&logo=python&logoColor=white) ![平台](https://img.shields.io/badge/Platform-Win%20%7C%20Linux-FF0000?style=for-the-badge&logo=windows&logoColor=white) ![许可证](https://img.shields.io/badge/License-GNU-FF0000?style=for-the-badge&logo=open-source-initiative&logoColor=white) ![方法论](https://img.shields.io/badge/Methodology-Static_Analysis-FF0000?style=for-the-badge&logo=code-review&logoColor=white) ![状态](https://img.shields.io/badge/Status-Active-success?style=for-the-badge&logo=activity&logoColor=white) **RedFlag** 是一款静态分析工具,旨在标记 C++ 项目、Visual Studio 解决方案和构建系统中的风险模式。 RedFlag 并非声称能“理解”代码行为,而是作为一个高级启发式引擎,扫描**已知的危险特征**、**可疑的 API 组合**、**混淆技术**以及**构建流水线攻击**。它将这些静态指标汇总为加权风险评分,帮助开发者和研究人员快速识别需要人工审查的第三方代码中的“危险信号”。 ![目录](https://img.shields.io/badge/00-Table_of_Contents-000000?style=flat-square) - [为什么选择 RedFlag?](#why-redflag) - [新功能](#features) - [安装](#installation) - [使用与 CLI](#usage--cli) - [配置](#configuration) - [工作原理](#how-it-works) - [截图](#screenshots) - [许可证](#license) ![为什么选择 RedFlag](https://img.shields.io/badge/01-Why_RedFlag%3F-b91c1c?style=for-the-badge&logo=help&logoColor=white) 在克隆仓库或接手遗留的 C++ 项目时,人工审计耗时费力。一个项目可能在 `.cpp` 文件中看起来很干净,但却通过 `.vcxproj` 文件中的 `PreBuildEvent` 执行反弹 shell,或者将 payload 隐藏在拼接的字符串中。 **RedFlag 通过以下方式解决此问题:** 1. ![扫描](https://img.shields.io/badge/SCANNING-Build_Systems-black?style=flat-square&color=333) 解析 `.vcxproj` 文件,以查找隐藏在构建前/后事件和链接库中的命令行执行操作。 2. ![启发式](https://img.shields.io/badge/ANALYSIS-Anti--Evasion-black?style=flat-square&color=333) 规范化字符串和宏,以检测混淆的 API 调用(例如 `system("c" "md.exe")`)。 3. ![检测](https://img.shields.io/badge/DETECTION-Entropy_Check-black?style=flat-square&color=333) 提取并解码 Base64/XOR blob,以检查通常与 shellcode 相关的高熵字符串。 ![功能](https://img.shields.io/badge/02-Features-b91c1c?style=for-the-badge&logo=star&logoColor=white) ### 分析引擎 * **构建事件扫描:** 检测深藏在 Visual Studio XML 配置文件中的 `PowerShell`、`cmd.exe`、`curl` 和 `wget` 命令。 * **依赖扫描:** 即使源代码中未显式调用,也会标记可疑的链接库(例如 `wininet.lib`、`urlmon.lib`)。 * **反规避规范化:** * 合并拼接的 C++ 字符串(`"A" "B"` → `"AB"`)。 * 去除逻辑中的注释,以暴露隐藏的命令。 * 检测通过 `#define` 进行的 API 别名化(例如 `#define RUN system`)。 * **启发式 XOR 与熵分析:** * 暴力破解 XOR 字符串以查找隐藏的 URL 或 payload。 * 上下文感知的熵分析(区分随机资产和加密的 shellcode)。 ### 模式匹配 * **执行:** `ShellExecute`、`CreateProcess`、`system()` * **内存:** `VirtualAlloc`、`ReflectiveLoader`、`WriteProcessMemory` * **网络:** `URLDownloadToFile`、`socket`、`InternetOpen` * **加密:** `CryptEncrypt`、`Xor`、`FromBase64String` ### 操作 * **审查模式:** 交互式 CLI,用于对扫描结果进行分类筛选并立即打开文件。 * **支持 CI/CD:** 将结果导出为 JSON,并在发现严重/高危威胁时以错误代码退出。 * **丰富的 UI:** 格式化的表格、进度条和带颜色的严重程度指示器。 ![安装](https://img.shields.io/badge/03-Installation-b91c1c?style=for-the-badge&logo=pypi&logoColor=white) 您的机器上需要安装 **Python 3.7+**。 **1. 克隆仓库:** ``` git clone https://github.com/rorvzzz/redflag.git cd redflag ``` **2. 安装依赖:** ``` pip install -r requirements.txt ``` ![使用与 CLI](https://img.shields.io/badge/04-Usage_&_CLI-b91c1c?style=for-the-badge&logo=terminal&logoColor=white) ### 基础扫描 针对单个文件或目录运行。 ``` python run.py "C:\Path\To\Project" ``` ### 交互式审查模式 启动扫描后的交互式会话,以筛选结果并在默认编辑器中打开文件。 ``` python run.py "C:\Path\To\Project" --review ``` ### CI/CD 与自动化 生成机器可读的报告。如果检测到高危或严重结果,脚本将以代码 `1`(失败)退出;否则以 `0`(成功)退出。 ``` python run.py "C:\Path\To\Project" --json results.json ``` ### 选项 | 标志 | 描述 | | :--- | :--- | | `--review` | 扫描后进入交互模式以对结果进行分类筛选。 | | `--json ` | 将结果导出为 JSON 文件。 | | `--no-definitions` | 在控制台输出中隐藏技术定义。 | | `--auto-update` | 自动检查并安装更新。 | | `--verbose` | 显示详细的错误日志(对调试有用)。 | ![配置](https://img.shields.io/badge/05-Configuration-b91c1c?style=for-the-badge&logo=json&logoColor=white) RedFlag 支持特定于项目的配置。在目标目录的根目录下放置一个名为 `.redflag` 的文件(JSON 格式)以自定义扫描。 **`.redflag` 内容示例:** ``` { "ignore_paths": [ "vendor/third_party_lib/", "tests/data/" ], "ignore_rules": [ "Mismatched File Extension" ], "custom_rules": [ { "category": "SECRETS", "pattern": "AKIA[0-9A-Z]{16}", "score": 10, "description": "AWS Access Key ID Detected" } ] } ``` *有关完整模板,请参阅仓库中的 `redflag.example.json`。* ![工作原理](https://img.shields.io/badge/06-How_It_Works-b91c1c?style=for-the-badge&logo=gears&logoColor=white) RedFlag 分 5 步执行分析: 1. **项目身份:** 检测目标是 VS 解决方案、Make 项目还是单个文件,以调整扫描策略。 2. **构建系统:** 解析 `.vcxproj` 和 `.sln` 文件,以识别命令行执行(PreBuild/PostBuild)和链接的二进制依赖项。 3. **规范化与预处理:** * 合并相邻字符串。 * 解析宏。 * 去除注释以防止规避。 4. **深度扫描:** * 对规范化的代码运行正则特征匹配。 * 提取数组以进行熵/图像分析。 * 暴力破解 XOR blob。 5. **裁定:** 汇总风险评分。如果文件包含多个相关指标(例如:混淆 + 网络 + 执行),它将生成行为学上的“高置信度”发现。 ![截图](https://img.shields.io/badge/07-Screenshots-b91c1c?style=for-the-badge&logo=google-photos&logoColor=white)

RedFlag Logo

### 观看实战演示! [在此处观看 RedFlag 演示视频!](https://streamable.com/ot16it) ![免责声明](https://img.shields.io/badge/WARNING-Disclaimer-orange?style=for-the-badge&logo=alert&logoColor=white) **RedFlag 是一款启发式静态分析工具。** 虽然通过上下文感知引擎得到了显著改进,但在处理复杂的游戏引擎或混淆的合法代码时,它仍可能产生误报。其设计初衷是为人工审查优先列出“危险信号”,而不是替代全面的安全审计。 ![许可证](https://img.shields.io/badge/License-GNU-blue?style=for-the-badge&logo=open-source-initiative&logoColor=white) 根据 GNU 许可证分发。有关更多信息,请参阅 `LICENSE`。
标签:C++, DNS 反向解析, LNA, Python, 云安全监控, 数据擦除, 无后门, 逆向工具, 静态分析