cognis-digital/fwxray

GitHub: cognis-digital/fwxray

FWXRAY 是一款固件镜像差异对比工具,用于精准呈现两个固件版本之间的二进制、配置标志、证书及熵区域等变化。

Stars: 1 | Forks: 0

FWXRAY # FWXRAY ### 对比两个固件镜像并准确呈现变化之处:新增的二进制文件、更改的配置标志、添加的证书以及偏移的熵区域。 [![PyPI](https://img.shields.io/pypi/v/cognis-fwxray.svg?color=6b46c1)](https://pypi.org/project/cognis-fwxray/) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/64fbc38336082813.svg)](https://github.com/cognis-digital/fwxray/actions) [![License: COCL 1.0](https://img.shields.io/badge/License-COCL%201.0-2b6cb0.svg)](LICENSE) [![Suite](https://img.shields.io/badge/Cognis-Neural%20Suite-6b46c1.svg)](https://github.com/cognis-digital) *IoT / OT / 嵌入式 — 固件、总线与设备安全。*
``` pip install cognis-fwxray fwxray scan . # → prioritized findings in seconds ``` ## 使用说明 — 分步指南 1. 安装 (Python 3.9+): pip install fwxray 2. 对两个固件镜像进行 X 光扫描,并打印出人类可读的更新日志,展示 OTA 实际 更改了哪些内容(变更的段、翻转的标志、熵的偏移、字符串差异): fwxray diff old.bin new.bin 3. 调整熵偏移的灵敏度以及块大小,以进行更细致/粗略的分析: fwxray diff v1.bin v2.bin --block 2048 --entropy-threshold 0.5 4. 阅读输出:报告将变更归类在 段 / 标志 / 熵偏移 / 字符串 之下。使用 `--format json` 以供机器读取;当两个镜像存在差异时,进程 退出代码为 `1`(如果逐字节完全一致则为 `0`)。 5. 在 CI 中捕获 OTA 更新日志: fwxray diff old.bin new.bin --format json > changelog.json ## 目录 - [为什么选择 fwxray?](#why) · [功能](#features) · [快速开始](#quick-start) · [示例](#example) · [架构](#architecture) · [AI 技术栈](#ai-stack) · [对比](#how-it-compares) · [集成](#integrations) · [随处安装](#install-anywhere) · [相关项目](#related) · [贡献指南](#contributing) ## 为什么选择 fwxray? 厂商“安全更新”的透明度 — 在 CI 中粘贴两个 .bin URL,即可获取一份人类可读的更新日志,看看 OTA 实际改动了什么,非常适合用来曝光那些“他们暗中添加了遥测功能”的热门话题。 `fwxray` 是单一用途、可脚本化且可自托管的:将其指向目标,即可获得符合您现有工作流格式(表格 · JSON · SARIF)的优先级排序结果,通过它来拦截 CI,并允许代理通过 MCP 进行驱动。
↑ 回到顶部
## 功能 - ✅ 香农熵 - ✅ 块熵分析 - ✅ 切割提取固件段 - ✅ 提取字符串 - ✅ 对比字符串差异 - ✅ 对比固件差异 - ✅ 可在 Linux/macOS/Windows · Docker · devcontainer 上运行 - ✅ 支持 Python、JavaScript、Go 和 Rust 移植版本 (`ports/`)
↑ 回到顶部
## 快速开始 ``` pip install cognis-fwxray fwxray --version fwxray scan . # scan current project fwxray scan . --format json # machine-readable fwxray scan . --fail-on high # CI gate (non-zero exit) ```
↑ 回到顶部
## 示例 ``` $ fwxray scan . [HIGH ] FWX-001 example finding (./src/app.py) [MEDIUM ] FWX-002 another signal (./config.yaml) 2 findings · risk score 5 · 38ms ```
↑ 回到顶部
## 架构 ``` flowchart LR IN[image / coordinates] --> P[fwxray
extract + geolocate] P --> OUT[location estimate] ```
↑ 回到顶部
## 从任意 AI 技术栈中使用 `fwxray` 可以与所有主流的 AI 使用方式实现互操作: - **MCP 服务器** — `fwxray mcp` (Claude Desktop, Cursor, Cognis.Studio, [uncensored-fleet](https://github.com/cognis-digital/uncensored-fleet)) - **兼容 OpenAI / JSON** — 将 `fwxray scan . --format json` 通过管道传递给任何代理或 LLM - **LangChain · CrewAI · AutoGen · LlamaIndex** — 一行代码即可将 CLI/JSON 封装为工具 - **CI / 脚本** — 退出代码 + SARIF 适用于非 AI 流水线
↑ 回到顶部
## 对比 | | **Cognis fwxray** | binwalk + diffoscope | |---|:---:|:---:| | 可自托管,无需账号 | ✅ | 视情况而定 | | 单一命令,零配置 | ✅ | ⚠️ | | 面向 CI 的 JSON + SARIF | ✅ | 视情况而定 | | 原生支持 MCP (AI 代理) | ✅ | ❌ | | 多语言移植版本 (JS/Go/Rust) | ✅ | ❌ | | 开放许可协议 | ✅ COCL | 视情况而定 | *秉承 **binwalk + diffoscope** 的精神,并以 Cognis 的方式重新构建。遗漏了某人或某项目的致谢?提交一个 PR 吧。*
↑ 回到顶部
## 集成 通过管道无缝接入您的技术栈:用于代码扫描的 **SARIF**,适用于任何场景的 **JSON**,面向 AI 代理的 **MCP 服务器** (`fwxray mcp`),以及用于 SIEM/Slack/Jira 的 webhook 转发器。详见 [`docs/INTEGRATIONS.md`](docs/INTEGRATIONS.md)。
↑ 回到顶部
## 安装 — 全平台,任意方式 ``` pip install "git+https://github.com/cognis-digital/fwxray.git" # pip (works today) pipx install "git+https://github.com/cognis-digital/fwxray.git" # isolated CLI uv tool install "git+https://github.com/cognis-digital/fwxray.git" # uv pip install cognis-fwxray # PyPI (when published) docker run --rm ghcr.io/cognis-digital/fwxray:latest --help # Docker brew install cognis-digital/tap/fwxray # Homebrew tap curl -fsSL https://raw.githubusercontent.com/cognis-digital/fwxray/main/install.sh | sh ``` | Linux | macOS | Windows | Docker | Cloud | |---|---|---|---|---| | `scripts/setup-linux.sh` | `scripts/setup-macos.sh` | `scripts/setup-windows.ps1` | `docker run ghcr.io/cognis-digital/fwxray` | [DEPLOY.md](docs/DEPLOY.md) (AWS/Azure/GCP/k8s) |
↑ 回到顶部
## 相关 Cognis 工具 - [`canzap`](https://github.com/cognis-digital/canzap) — 通过极简的 YAML DSL,从 .pcap 或 SocketCAN 接口重放、模糊测试并验证 CAN 总线流量。 - [`sbomb`](https://github.com/cognis-digital/sbomb) — 直接从解包的固件根文件系统生成 CycloneDX SBOM,并标记具有已知 CVE 的组件和 EOL 内核。 - [`mqttspy`](https://github.com/cognis-digital/mqttspy) — 被动探测 MQTT 代理:枚举主题、检测未经身份验证的写入操作、发现 payload 中的 PII/机密信息,并输出风险报告。 - [`uefiscan`](https://github.com/cognis-digital/uefiscan) — 审计 UEFI 固件转储,检查是否缺失 Secure Boot 密钥、存在未签名模块、S3 启动脚本漏洞以及已知的 SMM 威胁。 - [`modpot`](https://github.com/cognis-digital/modpot) — 搭建一个高交互性的 Modbus/DNP3 ICS 蜜罐,将攻击者的寄存器读取/写入操作记录为结构化的 JSON。 - [`keyhunt`](https://github.com/cognis-digital/keyhunt) — 扫描固件 blob 和文件系统转储,查找硬编码的私钥、API token、默认凭据以及弱 RSA/ECC 加密材料。 **探索完整工具套件 →** [🗂️ 全部 170+ 个工具](https://github.com/cognis-digital/cognis-neural-suite) · [⭐ awesome-cognis](https://github.com/cognis-digital/awesome-cognis) · [🔗 cognis-sources](https://github.com/cognis-digital/cognis-sources) · [🤖 uncensored-fleet](https://github.com/cognis-digital/uncensored-fleet) · [🧠 engram](https://github.com/cognis-digital/engram)
↑ 回到顶部
## 互操作性 `{}` 可与包含 300+ 工具的 Cognis 套件无缝组合 — 输入输出均为 JSON,并共享兼容 OpenAI 的 `/v1` 骨干网络。有关套件映射表、组合模式以及参考技术栈,请参阅 **[INTEROP.md](INTEROP.md)**。 ## 许可协议 在 **Cognis 开放协作许可协议 (COCL) v1.0** 下提供源代码 — 个人使用、内部评估、研究和教育用途免费;**商业 / 生产用途需要获取许可** (licensing@cognis.digital)。详见 [LICENSE](LICENSE)。
Cognis Digital · Cognis Neural Suite 中 170+ 个工具之一 · 让明天在今天更美好
标签:可视化界面, 固件分析, 差异比较, 数据可视化, 日志审计, 熵分析, 物联网, 请求拦截, 逆向工具