Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
sherloq — Набор инструментов с открытым исходным кодом для криминалистики цифровых изображений | Kitploit
Инструменты/GitHubGitHub/guidobartoli/sherloq
ФорензикаСтеганографияЦифровая криминалистикаКриптографияМашинное ОбучениеСтатьи и ИсследованияОбучение и Образование
GitHubguidobartoli/sherloq

sherloq

Набор инструментов с открытым исходным кодом для криминалистики цифровых изображений

Репозиторий
3.2k3051 месяц назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Sherloq
Набор инструментов с открытым исходным кодом для цифровой криминалистики изображений

Введение

«Криминалистический анализ изображений — это применение науки об изображениях и экспертных знаний для интерпретации содержания изображения и/или самого изображения в юридических вопросах. Основные поддисциплины криминалистического анализа изображений, применяемые в правоохранительных органах, включают: фотограмметрию, фотосравнение, контент-анализ и аутентификацию изображений.» (Научная рабочая группа по технологиям визуализации)

Sherloq — это личный исследовательский проект по созданию полностью интегрированной среды для цифровой криминалистики изображений. Он не предназначен для автоматического определения подлинности изображения (такого инструмента, скорее всего, никогда не будет...), а служит помощником для экспериментов с различными алгоритмами из последних исследовательских работ и семинаров.

В то время как многие коммерческие решения имеют высокие розничные цены и часто доступны только правоохранительным органам и государственным учреждениям, этот набор инструментов стремится быть как расширяемой платформой, так и отправной точкой для всех, кто заинтересован в проведении экспериментов в этой конкретной области цифровой обработки сигналов.

Я твердо верю, что безопасность через неясность — это неправильный способ предоставления каких-либо криминалистических услуг (например, «Используя это проприетарное программное обеспечение, я гарантирую, что это фото безупречно... и вы должны мне доверять!»). Следуя философии открытого исходного кода, каждый должен иметь возможность попробовать различные техники самостоятельно, получить знания и поделиться ими с сообществом... еще лучше, если они внесут свой вклад в улучшение кода! :)

  • История
  • Возможности
  • Скриншоты
  • Установка
  • Структура проекта
  • Обновления
  • Библиография

История

Первая версия была написана в 2015 году на C++11 для создания утилиты командной строки с множеством опций, но вскоре оказалось, что она слишком громоздкая и недостаточно интерактивная. Эту версию можно было скомпилировать с помощью CMake после установки библиотек OpenCV, Boost и AlgLib. Эта первая концепция предоставляла около 80% запланированных функций (см. полный список ниже).

Версия 2017 года, помимо включения новых алгоритмов, в основном добавила многоконный графический интерфейс на Qt для улучшения пользовательского опыта. На экране можно было отображать несколько анализов, а для удобной навигации по изображению был реализован быстрый просмотрщик с масштабированием и прокруткой. Этот проект можно было скомпилировать в Qt Creator с Qt 5 и OpenCV 3, и он охватывал около 70% запланированных функций.

Перенесемся в 2020 год, когда я решил портировать все на Python (PySide2 + Matplotlib + OpenCV) для упрощения разработки и развертывания. Хотя эта итерация только началась, и мне еще предстоит портировать весь предыдущий код на новую платформу, я думаю, это будет окончательной «формой» проекта (пока кто-нибудь не вызовется разработать хорошее веб-приложение!).

Я рад поделиться своим кодом и связаться с любым, кто заинтересован в его улучшении или тестировании, но, пожалуйста, имейте в виду, что этот репозиторий не предназначен для распространения готового продукта, моя цель — просто публично отслеживать разработку непритязательного образовательного инструмента, так что ожидайте ошибок, неотшлифованного кода и отсутствующих функций! ;)

Возможности

Этот список содержит функции, которые набор инструментов (надеюсь) будет предоставлять после достижения стадии бета-версии (ПРИМЕЧАНИЕ: функции, отображаемые курсивом в программе, еще не реализованы!).

Интерфейс

  • Современный графический интерфейс на Qt с управлением несколькими окнами инструментов
  • Поддержка множества форматов (JPEG, PNG, TIFF, BMP, WebP, PGM, PFM, GIF)
  • Высокоотзывчивый просмотрщик изображений с панорамированием и масштабированием в реальном времени
  • Множество современных алгоритмов для интерактивного опробования
  • Экспорт как визуальных, так и текстовых результатов анализа
  • Обширная онлайн-справка с объяснениями и учебными пособиями

Инструменты

Общие

  • Оригинальное изображение: отображение неизмененного эталонного изображения для визуального осмотра
  • Дайджест файла: получение физической информации о файле, криптографических и перцептивных хешей
  • Шестнадцатеричный редактор: открытие внешнего шестнадцатеричного редактора для просмотра и редактирования необработанных байтов
  • Поиск похожих: просмотр онлайн-сервисов поиска для нахождения визуально похожих изображений

Метаданные

  • Структура заголовка: дамп структуры заголовка файла и интерактивное представление
  • Полный дамп EXIF: сканирование метаданных файла и сбор всей доступной информации
  • Анализ миниатюр: извлечение встроенной миниатюры (если есть) и сравнение с оригиналом
  • Геолокационные данные: извлечение геолокационных данных (если есть) и отображение на карте мира

Осмотр

  • Увеличительное стекло с улучшением: лупа с улучшениями для лучшего выявления подделок
  • Гистограмма канала: отображение отдельных цветовых каналов или композитной RGB-гистограммы в интерактивном режиме
  • Глобальные настройки: применение стандартных настроек изображения (яркость, оттенок, насыщенность, ...)
  • Сравнение с эталоном: открытие синхронизированного двойного вида для сравнения с другим изображением

Детали

  • Градиент яркости: анализ горизонтальных/вертикальных вариаций яркости по изображению
  • Фильтр эхо-краев: использование производных фильтров для выявления искусственно размытых областей
  • Вейвлет-порог: реконструкция изображения с различными порогами вейвлет-коэффициентов
  • Частотное разделение: разделение яркости изображения на высоко- и низкочастотные компоненты

Цвета

  • Графики RGB/HSV: отображение интерактивных 2D и 3D графиков значений пикселей RGB и HSV
  • Преобразование пространства: преобразование RGB-каналов в пространства HSV/YCbCr/Lab/Luv/CMYK/Gray
  • Проекция PCA: использование цветового PCA для проецирования пикселя на наиболее значимые компоненты
  • Статистика пикселей: вычисление минимальных/максимальных/средних значений RGB для каждого пикселя

Шум

  • Разделение шума: оценка и извлечение различных компонентов шума изображения
  • Отклонение мин/макс: выделение пикселей, отклоняющихся от блочной статистики минимума/максимума
  • Значения битовых плоскостей: отображение отдельных битовых плоскостей для поиска несогласованных шумовых паттернов
  • Вейвлет-блокирование: отображение усредненных уровней шума в изображении для поиска несоответствий шума
  • Идентификация PRNU: использование характерного шума сенсора, вносимого разными камерами

JPEG

  • Оценка качества: извлечение таблиц квантования и оценка последнего сохраненного качества JPEG
  • Анализ уровня ошибок: отображение поникельной разницы при фиксированных уровнях сжатия
  • Многократное сжатие: использование модели машинного обучения для обнаружения многократного сжатия
  • JPEG Ghost Maps: выделение следов различных уровней сжатия в разностных изображениях

Фальсификация

  • Улучшение контраста: анализ цветового распределения для обнаружения улучшений контраста
  • Подделка копированием-перемещением: использование инвариантных дескрипторов признаков для обнаружения клонированных областей
  • Композитный монтаж: использование статистики DCT для автоматического обнаружения зон монтажа
  • Передискретизация изображения: оценка 2D пиксельной интерполяции для обнаружения следов передискретизации

Разное

  • Медианная фильтрация: обнаружение следов обработки, оставленных нелинейной медианной фильтрацией
  • Карта освещения: оценка локального направления света в сцене на предполагаемых 3D поверхностях
  • Мертвые/горячие пиксели: обнаружение и исправление мертвых/горячих пикселей, вызванных несовершенством сенсора
  • Декодер стереограмм: декодирование 3D изображений, скрытых в перекрестных автостереограммах

Скриншоты

General
Общие: Оригинальное изображение, Шестнадцатеричный редактор, Дайджест файла, Поиск похожих

Metadata
Метаданные: Полный дамп EXIF, Структура заголовка

Inspection
Осмотр: Увеличительное стекло с улучшением, Гистограмма канала, Сравнение с эталоном

Detail
Детали: Градиент яркости, Фильтр эхо-краев, Вейвлет-порог, Частотное разделение

Colors
Цвета: Графики RGB/HSV, Преобразование пространства, Проекция PCA, Статистика пикселей

Noise
Шум: Разделение сигнала, Отклонение мин/макс, Значения битовых плоскостей

JPEG
JPEG: Оценка качества, Анализ уровня ошибок

Tampering
Фальсификация: Улучшение контраста, Подделка копированием/перемещением, Композитный монтаж, Медианная фильтрация

Установка

[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

Некоторые экспериментальные инструменты на основе ИИ требуют дополнительных пакетов. Устанавливайте их только если планируете использовать эти инструменты:

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/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

Если вы установили дополнительные зависимости ИИ, обновите и их:

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

Рекомендуемые ресурсы для начала работы

  • Статья с практическими примерами и глубоким анализом техник, которые были реализованы в Sherloq: "A Picture's Worth: Digital Image Analysis and Forensics" (Neal Krawetz) [статья]
  • Диссертация с практическими примерами и глубоким анализом использования инструментов "JPEG Ghosts", "Image Resampling" и "Noise Wavelet Blocking", реализованных в Sherloq. Эта работа также предлагает понимание использования и надежности подходов на основе ИИ в цифровой криминалистике изображений. (UHstudent) [статья]

Ссылки на алгоритмы, реализованные в Sherloq

  • Передискретизация изображения: "Exposing Digital Forgeries by Detecting Traces of Re-sampling" (Alin C. Popescu and Hany Farid) [статья]
  • JPEG Ghosts: "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) [статья]
Скачать инструмент
gui