
AperiSolve v3.7.1
16개의 병렬 분석기, 비트 레이어 시각화, CTF 및 포렌식 조사를 위한 앱 내 위키를 사용하여 이미지에서 숨겨진 데이터를 탐지하는 자동화된 스테가날리시스 플랫폼입니다.
Aperi'Solve
지금 사용해 보세요: https://www.aperisolve.com
Aperi'Solve 후원하기:
Aperi'Solve는 일반적인 스테가노그래피 도구와 기법을 사용하여 이미지에서 숨겨진 데이터를 탐지하고 추출하는 자동화된 분석을 수행하는 오픈소스 스테가노그래피 분석 웹 플랫폼입니다.
주요 기능
- 이미지 채널(R/G/B/알파)별로 각 비트 레이어(LSB 및 기타 레이어)를 시각화합니다.
- 색상 리매핑(8가지 생성 변형이 포함된 무작위 팔레트 리매핑)
- 16개의 분석기를 병렬로 실행하고 결과를 표시하며, 도구별 성공/결과 없음 배지와 추출된 파일의 원클릭 다운로드를 제공합니다:
- binwalk (임베디드 아카이브)
- exiftool (메타데이터 및 지리정보)
- file (MIME 유형 및 형식 탐지)
- GraphicsMagick identify (이미지 정보 및 속성)
- foremost (추출된 파일)
- jsteg (JPEG LSB 추출)
- jpseek / jphide (비밀번호를 사용한 JPEG 스테가노그래피 추출)
- openstego (비밀번호를 사용한 추출)
- outguess (비밀번호를 사용한 추출, 심층 분석)
- pcrt (PNG 검사 및 복구)
- pngcheck
- steghide (비밀번호를 사용한 추출)
- strings
- zsteg (LSB 텍스트/데이터 추출)
- 앱 내 위키 (
/wiki): HackTricks 스타일의 스테가노그래피 핸드북 — 분류 방법론, 의사결정 트리 치트시트, 매체별(이미지, 오디오, 텍스트, 파일) 기술 페이지, 분석기별 가이드를 모두 Markdown으로 작성했습니다. - 국제화(i18n): UI는 언어 접두사 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
그런 다음 URL을 엽니다: http://localhost:5000/
광고와 분석은 기본적으로 비활성화되어 있습니다. 모든 통합(CUSTOM_EXTERNAL_SCRIPT, GOOGLE_ADS_TXT, SITE_BASE_URL, Sentry)은 .env.example에 문서화된 환경 변수를 통해 선택적으로 활성화됩니다. 앱은 자체적으로 광고 마크업을 삽입하지 않습니다. CUSTOM_EXTERNAL_SCRIPT는 AdSense 스크립트를 로드하며, 배치는 Auto ads에 맡겨집니다.
아키텍처
스택은 Docker Compose 서비스로 실행됩니다:
- web — gunicorn이 서비스하는 Flask 앱(Jinja 템플릿 + 바닐라 JS 프런트엔드).
- worker — 각 제출물에 대해 분석기를 실행하고 도구별로 하나의 스레드로 분산하는 RQ 작업자.
- cron — 요청 경로에서 벗어나 보존 정리(retention cleanup)를 실행하는 RQ cron 스케줄러.
- initdb — 테이블을 생성하고 IHDR CRC 복구 데이터베이스를 미리 채우는 일회성 서비스.
- postgres — 이미지 메타데이터와 제출 상태를 저장합니다.
- redis — RQ 브로커(DB 0) 및 속도 제한기 저장소(DB 1).
- rqdashboard — localhost:9181에 바인딩된 큐 모니터링.
이러한 분리는 무거운 도구(binwalk, foremost, zsteg 등)를 격리하고 웹 작업자를 차단하지 않도록 합니다. 동일한 제출물은 콘텐츠 해시로 중복 제거되며, 파생 이미지는 장기간 유지되는 불변 HTTP 헤더로 캐시되므로 반복 트래픽 비용이 저렴합니다.
문서
- docs/adding-analyzer.md — 새 분석기 추가.
- docs/deploy.md — 태그 기반 프로덕션 배포 흐름.
- CONTRIBUTING.md — 개발 환경 설정, 테스트, 위키 페이지, 번역.
테스트
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] 보안 문제를 발견한 경우 공개 이슈를 여는 대신 저장소 소유자에게 비공개로 신고해 주세요.
크레딧
후원자에게 감사드립니다:
기여자에게 감사드립니다:
오픈소스 커뮤니티에 감사드립니다: binwalk, exiftool, GraphicsMagick identify, foremost, jsteg, jphide/jpseek, openstego, outguess, pcrt, pngcheck, steghide, strings, zsteg, ...