
AperiSolve v3.7.1
自动化隐写分析平台,使用16个并行分析器检测图像中的隐藏数据,提供位层可视化,并内置维基百科风格指南,用于CTF和取证调查。
Aperi'Solve
立即试用:https://www.aperisolve.com
支持 Aperi'Solve:
Aperi'Solve 是一个开源隐写分析 Web 平台,它利用常见的隐写工具和技术对图像执行自动化分析,以检测并提取隐藏数据。
主要功能
- 按图像通道(R/G/B/Alpha)可视化每个位层(LSB 及其他层)。
- 颜色重映射(随机调色板重映射,生成 8 种变体)
- 并行运行 16 个分析器并显示其输出,带有每个工具的 成功/无结果徽章,以及一键下载提取的文件:
- 应用内 wiki(
/wiki):一本 HackTricks 风格的 隐写术手册——包含分类方法论、决策树速查表、 按介质(图像、音频、文本、文件)分类的技术页面,以及每个分析器的 指南,全部以 Markdown 编写。 - 国际化:界面支持英语、法语、西班牙语、德语、
俄语、中文和葡萄牙语,通过语言前缀 URL(
/fr/、/es/等)访问。 - 工作队列架构,用于卸载重型/慢速分析器(Redis + 后台工作进程)。
- 内容寻址结果缓存、HTTP 缓存以及按端点的速率限制。
- 结果临时存储以供稍后浏览和下载,然后由计划任务自动清理。
添加分析器
添加分析器只需一个文件:继承 SubprocessAnalyzer,设置几个
类属性(name、has_archive、needs_password、deep_only、
display_order),并在 Dockerfile 中安装该工具。工作进程运行
列表、下载白名单和前端顺序都会自动派生。
参见 docs/adding-analyzer.md。
快速开始(Docker)
如果你想自行部署 https://www.aperisolve.com/ 的版本。
要求:Docker + Docker Compose。
git clone https://github.com/Zeecka/AperiSolve.git
cd AperiSolve
cp .env.example .env
docker compose up -d
然后访问网址:http://localhost:5000/
默认情况下,广告和分析功能处于禁用状态;所有集成
(CUSTOM_EXTERNAL_SCRIPT、GOOGLE_ADS_TXT、SITE_BASE_URL、Sentry)都
通过 .env.example 中记录的环境变量选择启用。
应用本身从不注入广告标记:CUSTOM_EXTERNAL_SCRIPT 会加载
AdSense 脚本,广告位的放置交由自动广告处理。
架构
该技术栈以 Docker Compose 服务形式运行:
- web — 由 gunicorn 提供服务的 Flask 应用(Jinja 模板 + 原生 JS 前端)。
- worker — 一个 RQ 工作进程,为每个提交运行分析器,每个工具分配一个线程。
- cron — 一个 RQ 定时调度器,在请求路径之外运行保留清理。
- initdb — 一次性服务,用于创建表并预填充 IHDR CRC 恢复数据库。
- postgres — 存储图像元数据和提交状态。
- redis — RQ 代理(DB 0)和速率限制存储(DB 1)。
- rqdashboard — 队列监控,绑定到 localhost:9181。
这种分离使重型工具(binwalk、foremost、zsteg 等)保持隔离, 并避免阻塞 web 工作进程。相同提交通过内容哈希去重, 派生图像使用长期不变的 HTTP 头进行缓存, 因此重复访问的成本很低。
文档
- docs/adding-analyzer.md — 添加新的分析器。
- docs/deploy.md — 基于标签驱动的生产部署流程。
- CONTRIBUTING.md — 开发环境搭建、测试、wiki 页面和翻译。
测试
uv sync --extra dev
uv run pytest -q # unit tests (no services needed)
# end-to-end analyzer tests through the running app:
docker compose -f compose.dev.yml up -d
uv run pytest tests/test_webapp_analyzers.py -v
路线图
参见 Issues。
贡献
参见 CONTRIBUTING.md。
安全
[!WARNING] 如果您发现安全问题,请私下向仓库所有者报告,而不是公开 issue。
致谢
感谢捐赠者:
感谢贡献者:
感谢开源社区: binwalk, exiftool, GraphicsMagick identify, foremost, jsteg, jphide/jpseek, openstego, outguess, pcrt, pngcheck, steghide, strings, zsteg, ...