Nour833/StegoForge
GitHub: Nour833/StegoForge
一款集隐写与数字取证于一体的模块化工具,覆盖多载体隐藏、盲检测与 CTF 模式。
Stars: 561 | Forks: 78

# 🛡️ StegoForge
**隐写术、数字取证与隐蔽通信的终极混合体。**
[](https://python.org)
[](LICENSE)
[](https://github.com/Nour833/StegoForge/releases)
[](https://github.com/Nour833/StegoForge/stargazers)
[](https://github.com/Nour833/StegoForge/releases)
[](#-3-blind-forensics--ctf-mode-zero-knowledge)
## ⚡ 快速启动(独立二进制文件)
StegoForge 是一个复杂的 Python 框架,但在进行主动取证时,您不应该去处理糟糕的环境问题。我们已经编译了**零依赖的原生可执行文件**,它们会自动解决自身的 AI 和媒体依赖需求。
前往 **[Releases 页面](https://github.com/Nour833/StegoForge/releases)** 下载适合您操作系统的二进制文件。
* 无需 `pip install`。
* 无需配置 `PATH`。
* **只需直接运行。**
## 🚀 30 秒快速开始
```
# 1. 将文件隐藏在图像中 (AES-256-GCM 加密, auto-method)
stegoforge encode -c photo.png -p secret.pdf -k "my-pass"
# 2. 提取隐藏的文件
stegoforge decode -f photo_stego.png -k "my-pass"
# 3. 对任何可疑文件进行 CTF 一键 forensic dump
stegoforge ctf -f suspicious.mp3
# 4. 比较原始图像与 stego 图像 — pixel heatmap
stegoforge diff -c photo.png -s photo_stego.png
# 5. 将 secret 批量嵌入到文件夹中的每个 carrier
stegoforge batch -d ./carriers/ -p secret.txt -k "my-pass"
# 6. 检查 carrier 的容量和 stealth score
stegoforge capacity -c photo.png --depth 2
# 7. 模拟 Twitter recompression 并测试 payload 是否存活
stegoforge encode -c photo.png -p secret.txt -k "my-pass" --target twitter --test-survival
# 8. 启动本地 web UI (数据绝不离开您的机器)
stegoforge web
# 安装 tab-completion (bash)
eval "$(stegoforge completion bash)"
# 使用 env var 避免 key 出现在 shell history 中
export STEGOFORGE_KEY="my-pass"
stegoforge decode -f stego.png # key read from env
```
## 🧠 什么是 StegoForge?
StegoForge 是一个**模块化、企业级的隐写工具包**,专为隐蔽数据的整个生命周期而设计:从将 payload 嵌入图像、音频、视频和活动的网络协议中,到部署机器学习隐写分析以强制从可疑载体文件中提取异常。
它专为安全研究人员、CTF 选手和数字取证从业者打造,并不局限于单一功能。它能够无缝执行整个取证环节。
```
$ stegoforge encode --carrier cover.png --payload secret.txt --key "mypassword" --method lsb
[+] Payload encrypted with AES-256-GCM
[+] Embedded 2048 bits across RGB channels (1-bit depth)
[+] Output: cover_stego.png
[+] Statistical profile: indistinguishable from baseline (chi² = 0.021)
$ stegoforge ctf --file suspicious.mp3
[*] Running all detectors on suspicious.mp3 ...
[⏭] Chi-square LSB anomaly SKIPPED
[⏭] RS analysis SKIPPED
[!] Blind extractor found payload at: audio-lsb, depth=1, AES encrypted blob
[+] Extracted 412 bytes → saved to extracted_payload.bin
```
## 功能概览
```
stegoforge/
├── Image Carriers PNG · JPEG · BMP · GIF · WebP
│ ├── LSB / Adaptive LSB 1–4 bit depth + WOW-style content-aware cost ordering
│ ├── DCT + JND-safe cap JPEG frequency-domain embedding + Watson-style perceptual budget
│ ├── Fingerprint LSB PRNU-aware embedding mode
│ └── Alpha / Palette Transparency and indexed-color channels
│
├── Video Carriers MP4 · WebM
│ ├── Video DCT Keyframe embedding with block-cost ranking
│ └── Video Motion Temporal+texture masked block embedding (MP4)
│
├── Audio Carriers WAV · FLAC · MP3 · OGG
│ ├── Sample LSB Psychoacoustic-style cost-ordered PCM LSB
│ ├── Phase coding Segment-phase encoding
│ └── Spectrogram art Visual payloads in spectrum domain
│
├── Document Carriers TXT · PDF · DOCX · XLSX
│ ├── Unicode whitespace Adaptive insertion-point ranking (ZWSP/ZWNJ/ZWJ)
│ ├── Linguistic mode Key-aware synonym-channel text steganography
│ ├── PDF streams Object/stream/metadata injection
│ └── Office XML Custom XML parts and streams
│
├── Binary Carriers ELF · PE/EXE/DLL (CLI)
│ ├── ELF slack/notes 2-bit masked region-cost embedding
│ └── PE slack/overlay 2-bit masked region-cost embedding
│
├── Network Covert Channels (CLI)
│ ├── TCP field channels ip_id, tcp_seq, ttl
│ └── Timing channel Inter-packet delay encoding
│
├── Crypto + Survivability
│ ├── AES-256-GCM + Argon2
│ ├── Decoy mode Dual-payload plausible deniability
│ ├── Wet-paper wrapping Reed-Solomon resilience wrapper
│ └── Platform profiles Social-media-aware method selection/simulation
│
└── Interfaces
├── CLI Hybrid-first grouped method selection + full command mode
├── Web UI (Flask) Grouped method pills, hybrid badges, local SSE streaming
└── CTF mode One command, all relevant detectors, ranked report
```
## 💻 开发者安装
如果您希望从源码构建 StegoForge 或原生地使用 Python API:
```
git clone https://github.com/Nour833/StegoForge.git
cd StegoForge
pip install -r requirements.txt
pip install -r requirements-web.txt
pip install -e .
```
立即启动 Glassmorphism Web App:
```
stegoforge web # Automatically deploys at http://localhost:5000
```
## 🎨 交互式菜单(推荐初学者使用)
不想死记硬背终端命令?只需直接运行该工具即可访问交互式 CLI!
```
stegoforge
```
**自动化专业提示:**
- `STEGOFORGE_FAST_UI=1 stegoforge` 跳过动画,实现快速、零延迟启动。
- `STEGOFORGE_UI_STAGE_DELAY=0.45 stegoforge` 微调视觉显示的节奏。
## 💻 高级命令行界面
如果您偏好原始的终端吞吐量,CLI 支持对所有模块进行超精确的路由。
### 🥷 1. Payload 编码
```
# Basic LSB 嵌入 PNG
stegoforge encode -c photo.png -p message.txt -k "passphrase"
# Stealth JPEG DCT 与自定义 bit depth
stegoforge encode -c photo.jpg -p secret.bin -k "key" --method dct
# Spectrogram Art — 将视觉图像隐藏在可播放的音频中
stegoforge encode -c music.wav -p logo.png --method spectrogram
# Decoy mode — 生成两个 key,将两个 payload 隐藏在一个文件中以实现 plausible deniability
stegoforge encode -c photo.png -p real_secret.txt -k "realkey" \
--decoy decoy_message.txt --decoy-key "duresskey"
```
### 🔓 2. Payload 解码
```
stegoforge decode -f photo_stego.png -k "passphrase"
stegoforge decode -f music_stego.wav -k "key" --method phase
```
### 🕵️ 3. 盲取证与 CTF 模式(零知识)
```
# 原生运行完整的 heuristic gauntlet (强烈推荐)
stegoforge ctf -f suspicious.png
# Targeted ML / Statistical Detection
stegoforge detect --chi2 -f image.png
stegoforge detect --rs -f image.png
```
### 🛰️ 4. 隐蔽协议(死信箱)
```
# 嵌入 payload 并将其作为伪装的 HTTP packet 安全地 POST
stegoforge deadrop post -c cover.png -p msg.txt -k "shared_key"
# 监控远程 image URL 以获取传入的 payload 更改
stegoforge deadrop monitor --url "https://example.com/image.png" -k "shared_key" --interval 20
```
## 🔬 检测方法概述
点击展开完整的取证功能列表
| 方法 | 目标文件 | 自动检测内容 |
|---|---|---|
| **Chi-square(卡方)** | 图像 | LSB 频率分布异常 |
| **RS Analysis(RS 分析)** | 图像 | 无密钥情况下的 payload 容量估算 |
| **ML Steganalysis(机器学习隐写分析)** | 图像 | 通过 HuggingFace ONNX CNN 模型学习隐写的可能性 |
| **Fingerprint(指纹)** | 图像 | PRNU 不一致性 + 浏览器内篡改热力图 |
| **Video anomaly(视频异常)** | MP4/WebM | 关键帧 DCT 分布异常 |
| **Audio anomaly(音频异常)** | WAV/FLAC/MP3 | 采样位平面和统计不规则性 |
| **PDF anomaly(PDF 异常)** | PDF | 可疑的 `/EmbeddedFile`、JS 或尾部熵 |
| **Blind extractor(盲提取)** | 多媒体 | 自动尝试常见的位模式和 AES 魔数头 |
## 📂 系统架构
点击探索 StegoForge 的模块树
```
stegoforge/
├── core/
│ ├── image/ # LSB, Adaptive WOW, DCT, PRNU Fingerprinting, Palette
│ ├── audio/ # PCM LSB, Phase-Coding, Spectrogram visual embedding
│ ├── video/ # Keyframe block-cost, motion temporal masks
│ ├── document/ # PDF Streams, Office XML, Unicode Zero-Width
│ ├── network/ # Timing channels, TCP field covert channels
│ ├── crypto/ # AES-256-GCM, Decoy Deniability, Argon2 KDF
│ └── binary/ # ELF / PE Slack space embedding
├── detect/ # Statistical analysis, HuggingFace ONNX CNNs, Brute-forcing
├── protocol/ # HTTP Dead Drops, X25519 Stego Key Exchange
└── web/ # High-performance Flask dashboard & Server-Sent Events
```
## 🚀 支持的功能矩阵
| 载体格式 | 注入方法 | 提取状态 | 取证盲检测 |
|:---:|:---:|:---:|:---:|
| **PNG** | ✅ LSB, Alpha, Palette | ✅ 支持 | ✅ 支持 |
| **JPEG** | ✅ DCT | ✅ 支持 | ✅ 支持 |
| **MP4** | ✅ Video DCT, Motion | ✅ 支持 | ✅ 支持 |
| **WAV / MP3** | ✅ Sample, Phase, Spectro | ✅ 支持 | ✅ 支持 |
| **PDF** | ✅ Object/Stream | ✅ 支持 | ✅ 支持 |
| **Office XML** | ✅ XML Streams | ✅ 支持 | ✅ 支持 |
| **ELF / PE** | ✅ Slack Space / Header | ✅ 支持 | ✅ 支持 |
目前通过 Reed-Solomon 包装支持的社交平台生存能力目标包括:`twitter`、`instagram`、`telegram`、`discord`、`whatsapp`、`signal`。
## ⚖️ 法律免责声明与贡献
**贡献:**
热烈欢迎 Pull request。请确保新的编码方法实现了 `BaseEncoder` 接口,并包含完善的 PyTest 覆盖率。
由 Nour833 构建。为社区而编码。
如果您觉得 StegoForge 有用、有教育意义,或者纯粹觉得很酷,请考虑留下一个 ⭐!
报告 Bug •
请求新功能
标签:CTF, DNS 反向解析, Python, 信息隐藏, 安全工具, 数字取证, 无后门, 自动化脚本, 隐写术