
AperiSolve v3.6.0
Plataforma automatizada de esteganálisis que detecta datos ocultos en imágenes mediante 16 analizadores paralelos, visualización de capas de bits y un wiki integrado para investigaciones en CTF y forenses.
Aperi'Solve
Pruébalo ahora: https://www.aperisolve.com
Apoya a Aperi'Solve:
Aperi'Solve es una plataforma web de esteganálisis de código abierto que realiza análisis automatizados sobre imágenes para detectar y extraer datos ocultos mediante herramientas y técnicas de esteganografía comunes.
Características principales
- Visualiza cada capa de bits (LSB y otras capas) por canal de imagen (R/G/B/Alpha).
- Remapeo de color (remapeos aleatorios de paleta con 8 variantes generadas).
- Ejecuta 16 analizadores en paralelo y muestra su salida, con insignias de
éxito/sin resultado por herramienta y descarga de archivos extraídos con un solo clic:
- binwalk (archivos embebidos)
- exiftool (metadatos y geolocalización)
- file (detección de tipo MIME y formato)
- GraphicsMagick identify (información y propiedades de imagen)
- foremost (archivos tallados)
- jsteg (extracción LSB en JPEG)
- jpseek / jphide (extracción de esteganografía JPEG, con contraseña)
- openstego (extracción con contraseña)
- outguess (extracción con contraseña, análisis profundo)
- pcrt (verificación y reparación de PNG)
- pngcheck
- steghide (extracción con contraseña)
- strings
- zsteg (extracción de texto/datos LSB)
- Wiki integrada en la aplicación (
/wiki): un manual de esteganografía estilo HackTricks — una metodología de triaje, una chuleta de árbol de decisión, páginas de técnicas por medio (imagen, audio, texto, archivos) y una guía por analizador, todo escrito en Markdown. - Internacionalización: interfaz disponible en inglés, francés, español, alemán,
ruso, chino y portugués bajo URLs con prefijo de idioma (
/fr/,/es/, …). - Arquitectura de cola de trabajadores para descargar analizadores pesados/lentos (Redis + trabajadores en segundo plano).
- Caché de resultados direccionada por contenido, caché HTTP y limitación de tasa por endpoint.
- Los resultados se almacenan temporalmente para su posterior navegación y descarga, y luego se limpian automáticamente mediante un trabajo programado.
Añadir un analizador
Añadir un analizador es un único archivo: subclase SubprocessAnalyzer, define algunos
atributos de clase (name, has_archive, needs_password, deep_only,
display_order) e instala la herramienta en el Dockerfile. La lista de
ejecución del trabajador, la lista blanca de descargas y el orden en el frontend se derivan
automáticamente. Consulta docs/adding-analyzer.md.
Inicio rápido (Docker)
Por si quieres alojar tu propia versión de https://www.aperisolve.com/.
Requisito: Docker + Docker Compose.
git clone https://github.com/Zeecka/AperiSolve.git
cd AperiSolve
cp .env.example .env
docker compose up -d
Luego visita la url: http://localhost:5000/
Los anuncios y la analítica están desactivados por defecto; cada integración
(CUSTOM_EXTERNAL_SCRIPT, GOOGLE_ADS_TXT, SITE_BASE_URL, Sentry) es
opt-in mediante variables de entorno documentadas en .env.example.
La aplicación nunca inyecta marcado publicitario por sí misma: CUSTOM_EXTERNAL_SCRIPT carga el
script de AdSense y la colocación se deja a los anuncios automáticos.
Arquitectura
La pila se ejecuta como servicios de Docker Compose:
- web — aplicación Flask servida por gunicorn (plantillas Jinja + frontend JavaScript vainilla).
- worker — un trabajador RQ que ejecuta los analizadores para cada envío, distribuyendo el trabajo a un hilo por herramienta.
- cron — un programador de cron RQ que ejecuta la limpieza de retención fuera de la ruta de solicitudes.
- initdb — un servicio de una sola ejecución que crea las tablas y precarga la base de datos de recuperación de CRC IHDR.
- postgres — almacena los metadatos de las imágenes y el estado de los envíos.
- redis — broker RQ (DB 0) y almacenamiento del limitador de tasa (DB 1).
- rqdashboard — monitoreo de colas, vinculado a localhost:9181.
Esta separación mantiene aisladas las herramientas pesadas (binwalk, foremost, zsteg, etc.) y evita bloquear el trabajador web. Los envíos idénticos se deduplican mediante un hash de contenido, y las imágenes derivadas se cachean con cabeceras HTTP inmutables de larga duración, por lo que el tráfico repetido es barato.
Documentación
- docs/adding-analyzer.md — añade un nuevo analizador.
- docs/deploy.md — el flujo de despliegue de producción basado en tags.
- CONTRIBUTING.md — configuración de desarrollo, pruebas, páginas wiki y traducciones.
Pruebas
uv sync --extra dev
uv run pytest -q # pruebas unitarias (no se necesitan servicios)
# pruebas end-to-end de analizadores a través de la aplicación en ejecución:
docker compose -f compose.dev.yml up -d
uv run pytest tests/test_webapp_analyzers.py -v
Hoja de ruta
Consulta Issues.
Contribuciones
Consulta CONTRIBUTING.md.
Seguridad
[!WARNING] Si descubres un problema de seguridad, repórtalo de forma privada al propietario del repositorio en lugar de abrir un issue público.
Créditos
Gracias a los donantes:
Gracias a los contribuyentes:
- Zeecka - (autor)
- aradhyacp
- Philip Zimmermann
- abneeeees
Gracias a la comunidad de código abierto: binwalk, exiftool, GraphicsMagick identify, foremost, jsteg, jphide/jpseek, openstego, outguess, pcrt, pngcheck, steghide, strings, zsteg, ...