Доброе утро, цифровые следопыты! ☕️🔍
Доброе утро, цифровые следопыты! ☕️🔍 Думаете, преступник может спрятаться за обычной фотографией или короткой строчкой текста в чате? Как бы не так. В цифровом мире невозможно сделать шаг и не наследить — даже если файл «почистили», а текст скопировали десять раз. Сегодня разберём два фундаментальных кита расследования: EXIF-метаданные фото и скрытые улики в тексте. Для новичков объясняем всё на пальцах, а для практиков — даём готовые скрипты, которые можно запустить прямо сейчас. 📸 1. EXIF-ДАННЫЕ: РЕНТГЕН ДЛЯ КАРТИНОК 🤯 Вау-эффект: почему это взрывает мозг новичкам? Представьте: подозреваемый присылает фото товара на фоне белой стены и утверждает, что находится в Дубае. Но обычный графический файл — это не просто цветные пиксели. > Что такое EXIF «на пальцах»? > Каждый раз, когда смартфон или фотоаппарат делает снимок, он тайком прикрепляет к файлу невидимый «паспорт». В этот паспорт устройство записывает: > * точные координаты места съемки (с точностью до подъезда и высоты над уровнем моря); > * точную дату, секунду и часовой пояс; > * марку, модель телефона и даже уникальный серийный номер объектива; > * уровень заряда батареи и параметры вспышки. Пока злоумышленник уверен, что на фото «просто стена», криминалист за 10 секунд видит, что снимок сделан с iPhone 15 Pro в Рязани сегодня в 04:12 утра с зарядом батареи 14%. ⚡️ Готовый инструмент: Python-скрипт «GPS-радар» Не нужно открывать тяжелый софт. Этот скрипт извлекает EXIF, переводит GPS-градусы в десятичные координаты и сразу генерирует кликабельную ссылку на карту: import os from PIL import Image from PIL.ExifTags import TAGS, GPSTAGS def dms_to_dd(dms, ref): degrees = dms[0] minutes = dms[1] / 60.0 seconds = dms[2] / 3600.0 dd = degrees + minutes + seconds if ref in ['S', 'W']: dd = -dd return dd def extract_geo(image_path): img = Image.open(image_path) exif = img._getexif() if not exif: print("[-] EXIF-данные отсутствуют или очищены мессенджером.") return gps_info = {} for tag_id, value in exif.items(): tag = TAGS.get(tag_id, tag_id) if tag == "GPSInfo": for key in value: sub_tag = GPSTAGS.get(key, key) gps_info[sub_tag] = value[key] if "GPSLatitude" in gps_info and "GPSLongitude" in gps_info: lat = dms_to_dd(gps_info["GPSLatitude"], gps_info["GPSLatitudeRef"]) lon = dms_to_dd(gps_info["GPSLongitude"], gps_info["GPSLongitudeRef"]) print(f"[+] Координаты найдены: {lat:.6f}, {lon:.6f}") print(f"[+] Точка на карте: https://www.google.com/maps?q={lat},{lon}") else: print("[*] EXIF есть, но координаты GPS не записаны.") # Запуск: extract_geo("ваш файл???.jpg") > Криминалистический нюанс: Соцсети и мессенджеры (Telegram, VK, WhatsApp) при стандартной отправке сжимают картинки и стирают EXIF. Но если файл отправлен «как документ» (без сжатия), метаданные сохраняются полностью. А если файл удалили на самом устройстве — превьюшки и метаданные часто остаются в базе эскизов thumbcache и slack-областях диска! #цифроваякриминалистика #dfir #digitalforensics #exif #метаданные #стеганография #кибербезопасность #osint #инфосек #киберновости