Zeecka/AperiSolve
GitHub: Zeecka/AperiSolve
一个开源的图像隐写分析 Web 平台,集成多种隐写检测与数据提取工具,实现对图像中隐藏数据的自动化分析与可视化。
Stars: 827 | Forks: 102
# Aperi'Solve
[](https://aperisolve.com/)












[](https://inventory.raw.pm/tools.html#Aperi'Solve)
立即体验:**https://www.aperisolve.com**
Aperi'Solve 是一个开源的隐写分析 Web 平台,通过使用常见的隐写工具和技术对图像执行自动化分析,以检测和提取隐藏数据。
## 主要功能
- 可视化每个图像通道(R/G/B/Alpha)的各个位层(LSB 及其他层)。
- 颜色重映射(随机调色板重映射,生成 8 个变体)
- 并行运行 16 个分析器并显示其输出,带有每个工具的
成功/无结果徽章,以及一键下载提取的文件:
- [binwalk](https://github.com/ReFirmLabs/binwalk)(嵌入式归档)
- [exiftool](https://exiftool.org/)(元数据和地理位置)
- [file](https://manned.org/file.1)(MIME 类型和格式检测)
- [GraphicsMagick identify](http://www.graphicsmagick.org/identify.html)(图像信息与属性)
- [foremost](https://foremost.sourceforge.net/)(提取的文件)
- [jsteg](https://github.com/lukechampine/jsteg)(JPEG LSB 提取)
- [jpseek / jphide](https://github.com/h3xx/jphs)(JPEG 隐写提取,需密码)
- [openstego](https://www.openstego.com/)(需密码提取)
- [outguess](https://www.rbcafe.com/software/outguess/)(需密码提取,深度分析)
- [pcrt](https://github.com/sherlly/PCRT)(PNG 检查与修复)
- [pngcheck](https://www.libpng.org/pub/png/apps/pngcheck.html)
- [steghide](https://steghide.sourceforge.net/)(需密码提取)
- [strings](https://pubs.opengroup.org/onlinepubs/9799919799/utilities/strings.html)
- [zsteg](https://github.com/zed-0xff/zsteg)(LSB 文本/数据提取)
- **应用内 wiki**([`/wiki`](https://www.aperisolve.com/wiki/)):一份隐写术 CTF
速查表以及每个分析器的指南,以 Markdown 编写。
- **国际化**:UI 提供英语、法语、西班牙语、德语、
俄语、中文和葡萄牙语版本,位于带有语言前缀的 URL(`/fr/`、`/es/` 等)下。
- Worker 队列架构,用于卸载繁重/缓慢的分析器(Redis + 后台 worker)。
- 内容寻址的结果缓存、HTTP 缓存以及基于 endpoint 的速率限制。
- 结果临时存储以供稍后浏览和下载,然后由计划任务
自动清理。
## 添加分析器
添加分析器只需单个文件:继承 `SubprocessAnalyzer` 子类,设置几个
类属性(`name`、`has_archive`、`needs_password`、`deep_only`、
`display_order`),然后在 `Dockerfile` 中安装该工具。Worker 运行
列表、下载白名单以及前端顺序都是自动派生的。
请参阅 [docs/adding-analyzer.md](docs/adding-analyzer.md)。
## 快速开始(Docker)
如果你想搭建自己的 https://www.aperisolve.com/ 版本。
```
git clone https://github.com/Zeecka/AperiSolve.git
cd AperiSolve
cp .env.example .env
docker compose up -d
```
然后浏览网址:http://localhost:5000/
广告和分析默认处于禁用状态;每一项集成(`ADSENSE_*`、
`CUSTOM_EXTERNAL_SCRIPT`、`SITE_BASE_URL`、Sentry)都可以通过记录在 [`.env.example`](.env.example) 中的环境变量进行选择性开启。
## 架构
该技术栈以 Docker Compose 服务的形式运行:
- **web** — 由 gunicorn 提供服务的 Flask 应用(Jinja 模板 + 原生 JS 前端)。
- **worker** — 一个 RQ worker,为每次提交运行分析器,
分发给每个工具一个线程。
- **cron** — 一个 RQ cron 调度器,在
请求路径之外运行保留期清理。
- **postgres** — 存储图像元数据和提交状态。
- **redis** — RQ broker(DB 0)和速率限制器存储(DB 1)。
- **rqdashboard** — 在端口 9181 上进行队列监控。
这种分离将繁重的工具(binwalk、foremost、zsteg 等)隔离开来,
并避免阻塞 Web worker。相同的提交会通过
内容哈希进行去重,并且派生图像会使用长期不可变的 HTTP
标头进行缓存,因此重复流量成本很低。
## 文档
- [docs/adding-analyzer.md](docs/adding-analyzer.md) — 添加新的分析器。
- [docs/deploy.md](docs/deploy.md) — 基于标签的生产环境部署流程。
- [CONTRIBUTING.md](CONTRIBUTING.md) — 开发设置、测试、wiki 页面和翻译。
## 测试
```
uv sync --extra dev
uv run pytest -q # unit tests (no services needed)
# 通过运行中的应用进行端到端 analyzer 测试:
docker compose -f compose.dev.yml up -d
uv run pytest tests/test_webapp_analyzers.py -v
```
## 路线图
请参阅 [Issues](../../issues)。
## 安全性
标签:IPv6支持, Python, Web平台, 信息隐藏, 图像分析, 搜索引擎查询, 数据可视化, 无后门, 测试用例, 请求拦截, 逆向工具, 隐写分析