🤯 Вау-эффект: ловим «крота» по невидимым символам
🤯 Вау-эффект: ловим «крота» по невидимым символам Вы думаете, что текст — это просто буквы? В форензике текст — это минное поле скрытых меток, синтаксических паттернов и артефактов форматирования. > Что такое стеганография нулевой ширины «на пальцах»? > В таблице Юникода существуют символы, у которых нулевая ширина (например, \u200B — Zero-Width Space). Человеческий глаз в сообщении их не видит: строчка выглядит как обычное предложение. Однако компьютер видит каждый скрытый байт. > Спецслужбы и службы безопасности компаний часто вшивают уникальный невидимый бинарный код сотрудника прямо в текст корпоративной рассылки. Когда инсайдер копирует текст и сливает его в анонимный Telegram-канал — криминалист считывает скрытую метку и точно знает имя того, кто сделал утечку. > Кроме того, при расследовании PDF-документов злоумышленники часто «замазывают» секретные данные черными прямоугольниками в редакторе, забывая, что под плашкой в текстовом слое исходные буквы остаются нетронутыми! ⚡️ Готовый скрипт: детектор скрытых меток и очистка текста Скрипт проверяет текст на наличие невидимых символов-маркеров, вычисляет скрытую стеганографию и подготавливает текст к криминалистической экспертизе: import re # Набор невидимых символов Юникода (Zero-Width Characters) ZERO_WIDTH_CHARS = { '\u200B': 'Zero-Width Space', '\u200C': 'Zero-Width Non-Joiner', '\u200D': 'Zero-Width Joiner', '\uFEFF': 'Zero-Width No-Break Space (BOM)' } def analyze_text_forensics(text): print("[*] Анализ текстового блока на скрытые артефакты...") hidden_found = [] for i, char in enumerate(text): if char in ZERO_WIDTH_CHARS: hidden_found.append((i, ZERO_WIDTH_CHARS[char], hex(ord(char)))) if hidden_found: print(f"[!] ВНИМАНИЕ: Обнаружено {len(hidden_found)} невидимых символов (возможна стеганография/водяной знак)!") for pos, name, code in hidden_found[:5]: print(f" -> Позиция {pos}: {name} ({code})") if len(hidden_found) > 5: print(f" -> ...и еще {len(hidden_found) - 5} меток.") else: print("[+] Скрытых символов нулевой ширины не обнаружено.") # Дополнительно: поиск потенциальных утечек (Email, IP) ips = re.findall(r'\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b', text) if ips: print(f"[+] Найдены IP-адреса: {set(ips)}") # Пример проверки подозрительного сообщения: suspicious_message = "Служебная\u200B записка:\u200C сервер 192.168.1.45 скомпрометирован." analyze_text_forensics(suspicious_message) 💡 Мотивация на день «Преступник может стереть файл, очистить корзину и выключить питание, но законы физики и архитектуры операционных систем обмануть нельзя. Цифровые следы не исчезают — они лишь ждут внимательного криминалиста.» Пишите в комментариях какие у вас артефакты требуют цифрового вмешательства! 🚀 #цифроваякриминалистика #dfir #digitalforensics #exif #метаданные #стеганография #кибербезопасность #osint #инфосек #киберновости