Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
sherloq — 오픈소스 디지털 이미지 포렌식 도구 세트 | Kitploit
도구/GitHubGitHub/guidobartoli/sherloq
ForensicsSteganographyDigital ForensicsCryptographyMachine LearningPapers & ResearchLearning & Education
GitHubguidobartoli/sherloq

sherloq

오픈소스 디지털 이미지 포렌식 도구 세트

저장소 보기
3.2k3051개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Sherloq
오픈 소스 디지털 이미지 포렌식 툴셋

소개

"법의학적 이미지 분석은 이미지 과학과 도메인 전문 지식을 적용하여 법적 문제에서 이미지의 내용 및/또는 이미지 자체를 해석하는 것입니다. 법 집행 기관에서 사용되는 법의학적 이미지 분석의 주요 하위 분야는 다음과 같습니다: 사진 측량, 사진 비교, 콘텐츠 분석, 이미지 인증." (과학적 이미징 기술 작업 그룹)

Sherloq는 디지털 이미지 포렌식을 위한 완전 통합 환경을 구현하는 개인 연구 프로젝트입니다. 이미지가 위조되었는지 자동으로 판단하는 도구(아마도 그런 도구는 절대 존재하지 않을 것입니다...)가 아니라, 최신 연구 논문과 워크숍에서 발견된 다양한 알고리즘을 실험하는 도구입니다.

많은 상용 솔루션이 높은 가격으로 판매되며 종종 법 집행 기관 및 정부 기관에만 제한되는 반면, 이 툴셋은 확장 가능한 프레임워크이자 디지털 신호 처리의 이 특정 응용 분야에서 실험에 관심이 있는 모든 사람을 위한 출발점이 되고자 합니다.

저는 *보안을 통한 모호성(security-by-obscurity)*이 모든 종류의 포렌식 서비스를 제공하는 잘못된 방법이라고 강하게 믿습니다(예: "이 독점 소프트웨어를 사용하면 이 사진이 원본임을 보장합니다... 그리고 당신은 나를 믿어야 합니다!"). 오픈 소스 철학에 따라, 모든 사람이 다양한 기술을 스스로 시도하고 지식을 얻어 커뮤니티와 공유할 수 있어야 합니다... 코드 개선에 기여한다면 더 좋구요! :)

  • 역사
  • 기능
  • 스크린샷
  • 설치
  • 프로젝트 구조
  • 업데이트
  • 참고 문헌

역사

첫 번째 버전은 2015년에 C++11로 작성되어 많은 옵션이 있는 명령줄 유틸리티를 구축했지만, 곧 너무 번거롭고 상호작용이 부족하다는 것이 드러났습니다. 해당 버전은 OpenCV, Boost 및 AlgLib 라이브러리를 설치한 후 CMake로 컴파일할 수 있었습니다. 이 첫 번째 개념 증명은 계획된 기능의 약 80%를 제공했습니다(전체 목록은 아래 참조).

새로운 알고리즘도 포함되었지만, 2017 버전은 주로 Qt 기반의 다중 창 GUI를 추가하여 더 나은 사용자 경험을 제공했습니다. 여러 분석을 화면에 표시할 수 있었고 빠른 확대/축소 및 스크롤 뷰어가 구현되어 더 쉬운 이미지 탐색이 가능했습니다. 이 프로젝트는 Qt Creator에서 Qt 5 및 OpenCV 3으로 컴파일할 수 있었으며 계획된 기능의 약 70%를 다루었습니다.

시간이 흘러 2020년에 모든 것을 Python(PySide2 + Matplotlib + OpenCV)으로 포팅하기로 결정했습니다. 더 쉬운 개발과 배포를 위해서였죠. 이 반복이 막 시작되었고 이전 코드를 모두 새 플랫폼으로 포팅하지는 못했지만, 이것이 프로젝트의 최종 "형태"가 될 것이라고 생각합니다(누군가가 멋진 웹 애플리케이션을 개발하겠다고 자원하지 않는 한!).

코드를 공유하고 개선하거나 테스트하는 데 관심 있는 사람과 연락하게 되어 기쁩니다. 하지만 이 저장소는 최종 제품을 배포하기 위한 것이 아니라 공개적으로 소박한 교육용 도구의 개발을 추적하기 위한 것임을 명심해 주세요. 버그, 다듬어지지 않은 코드, 누락된 기능이 있을 수 있습니다! ;)

기능

이 목록은 베타 단계에 도달하면 툴킷이 제공할(바라건대) 기능을 포함합니다(참고: 프로그램 내에서 기울임꼴로 표시된 기능은 아직 구현되지 않았습니다!).

인터페이스

  • 다중 도구 창 관리를 위한 현대적인 Qt 기반 GUI
  • 다양한 형식 지원(JPEG, PNG, TIFF, BMP, WebP, PGM, PFM, GIF)
  • 실시간 이동 및 확대/축소가 가능한 매우 빠른 이미지 뷰어
  • 대화식으로 시도해 볼 수 있는 최첨단 알고리즘
  • 분석 결과의 시각적 및 텍스트 내보내기
  • 설명과 튜토리얼이 포함된 광범위한 온라인 도움말

도구

일반

  • 원본 이미지: 변경되지 않은 참조 이미지를 표시하여 육안 검사
  • 파일 다이제스트: 물리적 파일 정보, 암호화 및 지각 해시 검색
  • 헥스 에디터: 외부 16진수 편집기를 열어 원시 바이트 표시 및 편집
  • 유사 검색: 온라인 검색 서비스를 탐색하여 시각적으로 유사한 이미지 찾기

메타데이터

  • 헤더 구조: 파일 헤더 구조를 덤프하고 대화식 보기 표시
  • EXIF 전체 덤프: 파일 메타데이터를 스캔하여 모든 사용 가능한 정보 수집
  • 썸네일 분석: 선택적 포함 썸네일을 추출하여 원본과 비교
  • 지리 위치 데이터: 선택적 지리 위치 데이터를 검색하여 세계 지도에 표시

검사

  • 향상 돋보기: 위조 식별을 개선하기 위한 향상 기능이 포함된 돋보기
  • 채널 히스토그램: 단일 색상 채널 또는 RGB 합성 대화식 히스토그램 표시
  • 전역 조정: 표준 이미지 조정 적용(밝기, 색조, 채도 등)
  • 참조 비교: 다른 사진과 비교하기 위한 동기화된 이중 보기 열기

세부 정보

  • 휘도 그래디언트: 이미지의 수평/수직 밝기 변화 분석
  • 에코 에지 필터: 미분 필터를 사용하여 인위적인 초점 흐림 영역을 드러냄
  • 웨이블릿 임계값: 다른 웨이블릿 계수 임계값으로 이미지 재구성
  • 주파수 분할: 이미지 휘도를 고주파 및 저주파 성분으로 분할

색상

  • RGB/HSV 플롯: RGB 및 HSV 픽셀 값의 대화식 2D 및 3D 플롯 표시
  • 공간 변환: RGB 채널을 HSV/YCbCr/Lab/Luv/CMYK/Gray 공간으로 변환
  • PCA 투영: 컬러 PCA를 사용하여 픽셀을 가장 두드러진 구성 요소에 투영
  • 픽셀 통계: 모든 픽셀의 최소/최대/평균 RGB 값 계산

노이즈

  • 노이즈 분리: 다양한 종류의 이미지 노이즈 구성 요소 추정 및 추출
  • 최소/최대 편차: 블록 기반 최소/최대 통계에서 벗어난 픽셀 강조
  • 비트 평면 값: 개별 비트 평면을 표시하여 일관되지 않은 노이즈 패턴 찾기
  • 웨이블릿 블로킹: 이미지의 평균 노이즈 수준을 표시하여 노이즈 불일치 찾기
  • PRNU 식별: 다른 카메라에 의해 도입된 센서 패턴 노이즈 활용

JPEG

  • 품질 추정: 양자화 테이블 추출 및 마지막으로 저장된 JPEG 품질 추정
  • 오류 수준 분석: 고정된 압축 수준에 대한 픽셀 수준 차이 표시
  • 다중 압축: 기계 학습 모델을 사용하여 다중 압축 감지
  • JPEG 고스트 맵: 차이 이미지에서 다른 압축 수준의 흔적 강조

변조

  • 대비 향상: 색상 분포를 분석하여 대비 향상 감지
  • 복사-이동 위조: 불변 특징 설명자를 사용하여 복제 영역 감지
  • 합성 접합: DCT 통계를 활용하여 자동 접합 영역 감지
  • 이미지 리샘플링: 2D 픽셀 보간을 추정하여 리샘플링 흔적 감지

기타

  • 중간값 필터링: 비선형 중간값 필터링으로 남은 처리 흔적 감지
  • 조명 맵: 추정된 3D 표면에서 장면 로컬 광원 방향 추정
  • 데드/핫 픽셀: 센서 결함으로 인한 데드/핫 픽셀 감지 및 수정
  • 스테레오그램 디코더: 교차 시차 자동 입체 사진에 숨겨진 3D 이미지 디코딩

스크린샷

일반
일반: 원본 이미지, 헥스 에디터, 파일 다이제스트, 유사 검색

메타데이터
메타데이터: EXIF 전체 덤프, 헤더 구조

검사
검사: 향상 돋보기, 채널 히스토그램, 참조 비교

세부 정보
세부 정보: 휘도 그래디언트, 에코 에지 필터, 웨이블릿 임계값, 주파수 분할

색상
색상: RGB/HSV 플롯, 공간 변환, PCA 투영, 픽셀 통계

노이즈
노이즈: 신호 분리, 최소/최대 편차, 비트 평면 값

JPEG
JPEG: 품질 추정, 오류 수준 분석

변조
변조: 대비 향상, 복사/이동 위조, 합성 접합, 중간값 필터링

설치

[1/4] 소스 코드 다운로드

현재 저장소를 로컬 폴더로 클론하고 현재 디렉토리를 해당 폴더로 변경합니다.

[2/4] 가상 환경 생성

Sherloq는 Python 3.11을 사용합니다. 권장 설정은 uv를 사용하는 것입니다. Linux, macOS 및 Windows에서 동일한 워크플로우를 제공하고, 필요할 때 Python을 설치할 수 있으며, 로컬 .venv 폴더에 프로젝트 환경을 유지합니다.

uv를 공식 설치 가이드에 따라 설치한 후 Sherloq 루트 폴더에서 환경을 생성합니다:

root@kitploit:~
$ uv venv --python 3.11

저장소에는 .python-version 파일도 포함되어 있으므로, 향후 uv 명령은 기본적으로 Python 3.11을 사용합니다.

[3/4] 의존성 설치

root@kitploit:~
$ uv pip install -r gui/requirements.txt

일부 실험적인 AI 기반 도구에는 추가 패키지가 필요합니다. 해당 도구를 사용할 계획인 경우에만 설치하세요:

root@kitploit:~
$ uv pip install -r gui/requirements_ai_solutions.txt

[4/4] 프로그램 실행

Sherloq는 저장소 루트에서 실행할 수 있습니다. 애플리케이션 패키지는 중앙화된 프로젝트 경로를 통해 아이콘, 모델 및 번들 도구를 확인합니다.

Linux/macOS

root@kitploit:~
$ source .venv/bin/activate
$ python -m gui.sherloq_app

Windows PowerShell

root@kitploit:~
> .venv\Scripts\Activate.ps1
> python -m gui.sherloq_app

저장소 루트 호환성 실행기도 사용할 수 있습니다:

root@kitploit:~
$ python sherloq.py

Linux 사용자 참고: 다음 오류가 표시되는 경우:

root@kitploit:~
qt.qpa.plugin: From 6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platform plugin.
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

터미널에서 다음 명령을 실행하세요: sudo apt install -y libxcb-cursor-dev

프로젝트 구조

Python Qt 애플리케이션은 이제 가져오기 가능한 gui/sherloq_app 패키지에 있습니다:

  • main.py: Qt 애플리케이션 진입점 및 메인 창.
  • core/: JPEG 유틸리티 및 파일 로딩과 같은 공유 이미지 처리 도우미.
  • ui/: 재사용 가능한 Qt 위젯, 뷰어, 테이블 및 도구 트리.
  • tools/: 툴박스 범주별로 그룹화된 분석 위젯(general, metadata, inspection, detail, colors, noise, jpeg, tampering, various).
  • paths.py: 아이콘, 모델 및 번들 네이티브 도우미에 대한 중앙화된 접근을 제공하여 코드가 더 이상 gui에서 실행하는 데 의존하지 않도록 합니다.

대규모 번들 자산 및 타사 연구 구성 요소는 gui/icons, gui/models, gui/noiseprint, gui/pyexiftool, gui/butteraugli, gui/ssimulacra 및 선택적 gui/TruFor_main 아래에 남아 있습니다.

기여자 지향 맵은 docs/project-structure.md를 참조하세요.

업데이트

새 버전이 출시되면 Git을 사용하거나 최신 소스를 다운로드하여 로컬 작업 복사본을 업데이트한 다음 Sherloq 루트 폴더에서 환경을 새로 고칩니다:

root@kitploit:~
$ uv pip install --upgrade -r gui/requirements.txt

선택적 AI 의존성을 설치한 경우, 해당 의존성도 새로 고칩니다:

root@kitploit:~
$ uv pip install --upgrade -r gui/requirements_ai_solutions.txt

시작하기 위한 권장 자료

  • Sherloq에 구현된 기술에 대한 실용적인 예제와 신중한 분석이 포함된 논문: "A Picture's Worth: Digital Image Analysis and Forensics" (Neal Krawetz) [논문]
  • Sherloq에 구현된 "JPEG 고스트", "이미지 리샘플링" 및 "노이즈 웨이블릿 블로킹" 도구를 사용하기 위한 실용적인 예제와 신중한 분석이 포함된 논문. 이 작업은 또한 디지털 이미지 포렌식에서 AI 기반 접근 방식의 사용 및 신뢰성에 대한 통찰력을 제공합니다. (UHstudent) [논문]

Sherloq에 구현된 알고리즘 참조

  • 이미지 리샘플링: "Exposing Digital Forgeries by Detecting Traces of Re-sampling" (Alin C. Popescu and Hany Farid) [논문]
  • JPEG 고스트: "Exposing Digital Forgeries from JPEG Ghosts" (H. Farid) [논문]
  • 노이즈 웨이블릿 블로킹: "Using noise inconsistencies for blind image forensics" (Babak Mahdian and Stanislav Saic) [논문]

참고 문헌

  • "Noiseprint: a CNN-based camera model fingerprint" (Davide Cozzolino, Luisa Verdoliva) [웹사이트]
  • "Two Improved Forensic Methods of Detecting Contrast Enhancement in Digital Images" (Xufeng Lin, Xingjie Wei and Chang-Tsun Li) [논문]
도구 다운로드