Skip to content

DigitalForensicLab/PythonForDigitalForensic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Python For Digital Forensic

🧩 Image Checker — Перевірка графічних файлів

Image Checker — це Python-скрипт для автоматичної перевірки цілісності та відкривання графічних файлів (зображень). Він рекурсивно сканує директорію або список файлів, визначає валідність кожного зображення, формує детальний звіт, а за бажанням — копіює лише справні (валідні) файли у нову директорію зі збереженням структури.


🚀 Можливості

  • ✅ Перевірка усіх файлів у директорії (без фільтрації за розширенням)

  • 📄 Підтримка перевірки зі списку файлів (текстовий файл із шляхами)

  • 🧠 Визначення:

    • формату (JPEG, PNG, TIFF, BMP, WEBP, HEIC тощо)
    • роздільності (ширина × висота)
    • кольорової моделі (RGB, CMYK тощо)
  • 📊 Формування детального звіту у текстовому форматі

  • 📁 Опціональне копіювання лише валідних файлів у нову директорію

  • 💾 Виведення розміру кожного файлу у зручному форматі (KB, MB, GB)

  • 🔍 Обробка типових помилок (пошкоджені, недоступні або нерозпізнані зображення)


📦 Залежності

Для роботи необхідна бібліотека Pillow:

pip install Pillow

🧰 Використання

  1. Клонувати репозиторій або завантажити скрипт

    git clone https://github.com/your-org/image-checker.git
    cd image-checker
  2. Відредагувати налаштування в коді (розділ main):

    DIRECTORY = r"D:\Example\Images"   # шлях до директорії з файлами
    FILE_LIST = None                   # або шлях до файлу зі списком
    COPY_VALID_FILES = True            # чи копіювати валідні файли
  3. Запустити скрипт:

    python check_images.py

📁 Результати роботи

Після виконання в поточній директорії створюються три файли:

Файл Опис
valid_images.txt Список усіх успішно відкритих (валідних) файлів
invalid_images.txt Список проблемних файлів із причинами помилки
check_report.txt Підсумковий звіт із загальною статистикою

Якщо ввімкнено копіювання (COPY_VALID_FILES = True), буде створено папку valid_files/ зі збереженням структури оригінальних піддиректорій.


📊 Формат звіту (check_report.txt)

================================================================================
ЗВІТ ПРО ПЕРЕВІРКУ ГРАФІЧНИХ ФАЙЛІВ
================================================================================

Всього файлів у директорії: 1024
Всього перевірено файлів: 1024
Валідних файлів: 1000 (97.6%)
Невалідних файлів: 24 (2.4%)

Загальний обсяг всіх файлів: 3.42 GB
Загальний обсяг валідних файлів: 3.39 GB (99.1%)
Загальний обсяг невалідних файлів: 0.03 GB (0.9%)

Типи помилок:
  Не розпізнано як зображення: 20
  Файл не знайдено: 3
  Немає доступу до файлу: 1

⚙️ Основні функції

Функція Призначення
check_image(file_path) Перевіряє окремий файл і визначає, чи це дійсне зображення
check_images_in_directory(directory) Рекурсивно перевіряє всі файли у директорії
check_images_from_list(file_list_path) Перевіряє файли зі списку (по одному на рядок)
save_results(results, output_dir) Зберігає звіти у текстові файли
print_summary(results) Виводить короткий підсумок у консоль
copy_valid_files(results, source_dir, output_dir) Копіює валідні файли у нову директорію
format_size(size_bytes) Перетворює розмір файлу у читабельний вигляд (KB, MB, GB)

🧩 Приклад використання

Перевірка директорії з фотографіями:

python check_images.py

Перевірка файлів зі списку:

FILE_LIST = r"C:\lists\images.txt"
DIRECTORY = None

🧩 Sqlite forensic - дослідження SQLite баз даних

Назва скрипта:

sqlite_forensics.py

Автор:

Судовий експерт Дата створення: 07.11.2025


1. Призначення

Скрипт призначений для автоматизованого судово-експертного аналізу SQLite баз даних, виявлених у цифрових доказах (мобільних пристроях, комп’ютерах, резервних копіях тощо). Інструмент дозволяє:

  • виявляти всі SQLite-файли у заданому каталозі;
  • аналізувати їх структуру та вміст;
  • перевіряти цілісність баз даних;
  • збирати метадані файлів (дати створення, модифікації, розміри, хеш-суми);
  • експортувати вміст таблиць у CSV-формат;
  • фіксувати наявність можливих видалених даних (через freelist);
  • формувати структурований звіт у форматах JSON та TXT для подальшого використання у висновках експерта.

2. Основні можливості

Функціонал Опис
1 🔍 Пошук баз даних Автоматичне виявлення файлів з розширеннями .db, .sqlite, .sqlite3, .sqlitedb у вказаному каталозі.
2 📦 Отримання метаданих Збір атрибутів файлу: повний шлях, розмір, дати створення/модифікації/доступу, контрольні суми (MD5, SHA-1, SHA-256).
3 🧩 Перевірка цілісності Виконується через команду PRAGMA integrity_check; для оцінки пошкоджень БД.
4 📋 Аналіз структури БД Визначення кількості таблиць, колонок, тригерів, індексів та версії SQLite.
5 📂 Експорт даних таблиць Збереження вмісту кожної таблиці у CSV-файл для подальшого аналізу або огляду.
6 🧾 Пошук видалених записів Виявлення кількості сторінок freelist як індикатора наявності видалених об’єктів.
7 📑 Формування звітів Генерація детального звіту у форматі JSON (повна технічна інформація) та TXT (людиночитний звіт для експертного висновку).

3. Структура та логіка роботи

  1. Запуск програми (main)

    • Користувач вказує шлях до каталогу з досліджуваними файлами (DIRECTORY_PATH).
    • Створюється об’єкт класу SQLiteForensics.
  2. Пошук баз даних

    • Метод find_sqlitedb_files() сканує каталог рекурсивно.
  3. Аналіз кожної БД

    • Для кожного знайденого файлу викликається analyze_database(), який:

      • збирає метадані (get_file_metadata);
      • перевіряє цілісність (check_database_integrity);
      • досліджує структуру таблиць (get_database_info);
      • перевіряє можливість відновлення видалених записів (search_deleted_records);
      • експортує таблиці в CSV (export_table_data).
  4. Формування підсумкових звітів

    • Повний технічний звіт у форматі JSON — з усіма полями, таблицями, хешами, датами;
    • Текстовий звіт у форматі TXT — з коротким описом результатів для використання у висновках експерта.

4. Структура вихідних файлів

Після завершення роботи скрипта в каталозі створюється папка:

forensic_report/
├── forensic_report_YYYYMMDD_HHMMSS.json
├── text_report_YYYYMMDD_HHMMSS.txt
└── exported_data/
    ├── database1_table1.csv
    ├── database1_table2.csv
    └── ...
  • *.json – повний звіт для архівування або машинного аналізу;
  • *.txt – готовий текст для включення до експертного висновку;
  • exported_data – CSV-файли з даними таблиць усіх знайдених баз.

5. Використання

Запуск через код:

python sqlite_forensics.py

Або з аргументом каталогу:

python sqlite_forensics.py "D:\Evidence\Phone_Backup"

⚠️ Перед запуском обов’язково вкажіть шлях до каталогу у змінній DIRECTORY_PATH або передайте його як аргумент.


6. Сумісність

  • Python: 3.8+
  • ОС: Windows / Linux / macOS
  • Зовнішні бібліотеки: тільки стандартні модулі Python (sqlite3, hashlib, json, csv, os, datetime, pathlib, sys)

7. Призначення для використання

Скрипт може застосовуватись:

  • при проведенні комп’ютерно-технічних або цифрових експертиз;
  • під час аналізу резервних копій мобільних пристроїв (Android, iOS);
  • для аудиту цілісності даних у базах SQLite;
  • при підготовці експертних висновків у кримінальних, адміністративних та цивільних справах.

8. Результат роботи

Після виконання скрипта експерт отримує:

  • зібрані технічні характеристики кожного файлу бази;
  • інформацію про структуру, кількість таблиць та записів;
  • результати перевірки цілісності;
  • збережені копії таблиць у форматі CSV;
  • готовий звіт для долучення до експертного висновку.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages