- Как проверить, содержит ли файл скрытый «payload» после конца последней секции
- Что это за «payload после последней секции»?
- Как проверить — шаг за шагом
- Что смотреть для разных форматов
- Что выбрать: проверить вручную или автоматизировать?
- Частые ошибки
- Что делать в разных ситуациях
- Как лучше делать — рекомендации
- Итог: что делать прямо сейчас
Как проверить, содержит ли файл скрытый «payload» после конца последней секции
Ты скачал файл — архив, изображение, PDF, EXE — и чувствуешь, что что-то не так. Он ведёт себя странно: медленно открывается, внезапно запускает процессы, или просто не даёт покоя. Ты не уверен, что это вирус — но точно знаешь: в файле что-то лишнее. И не просто лишнее — спрятанное за концом структуры. Это называется «payload после последней секции» — и это один из самых старых, но эффективных способов скрыть вредоносный код.
Ты не ищешь теорию. Ты хочешь понять: есть ли в этом файле скрытый вредоносный код, и как это проверить — прямо сейчас, без спецпрограмм и глубокого погружения в бинарные форматы.
Что это за «payload после последней секции»?
Многие файлы — PDF, JPEG, MP3, EXE — имеют чёткую структуру: заголовки, секции, метаданные, данные. После того как файл «заканчивается» по своей логике (например, после последнего блока данных в JPEG или после EOF в PE-файле), операционная система и программы игнорируют всё, что идёт дальше. Это не ошибка — это особенность. И злоумышленники этим пользуются.
Вот как это работает:
- Ты открываешь JPEG — он показывает картинку. Всё нормально.
- Но в конце файла, после последнего байта изображения, вставлено 15 КБ вредоносного EXE-кода.
- Твоя система видит JPEG — и показывает картинку.
- А если ты запустишь этот файл как исполняемый (например, переименуешь в .exe), то сначала загрузится картинка (как мусор), а потом — скрытый код.
Это называется file appending — «прикрепление» к файлу. И это не редкость. В 2023 году в отчётах ESET и Kaspersky 12% новых вредоносных образцов использовали именно этот метод, чтобы обойти антивирусы, которые сканируют только «основную» часть файла.
Как проверить — шаг за шагом
Ты не должен быть программистом, чтобы это сделать. Вот простой алгоритм — на Windows, macOS и Linux.
- Узнай реальный размер файла. Кликни правой кнопкой → «Свойства» (Windows) или «Получить информацию» (macOS). Запиши размер в байтах. Например: 2 145 789 байт.
- Открой файл в HEX-редакторе. Это не «блокнот». Нужен инструмент, который показывает байты. На Windows — HxD (бесплатно). На macOS — Hex Fiend. На Linux —
xxdилиghex. - Найди конец структуры файла. Это ключевой момент. Ты должен знать, где заканчивается «легальная» часть. Например:
- JPEG: заканчивается на
FF D9— это маркер EOF. Всё, что идёт после — подозрительно. - PDF: заканчивается на
%EOF— и обычно после него идёт 1–3 строки с комментариями. Если после этого — ещё килобайты бинарных данных — это тревожный знак. - EXE (PE): в конце файла есть таблица секций. Последняя секция определяет, где заканчивается «нормальная» часть. Но проще: ищи последний
50 45 00 00(подпись PE) и смотри, где заканчивается последняя секция по её размеру и смещению.
- JPEG: заканчивается на
- Сравни размер на диске с размером «легальной» части. Если после конца структуры есть ещё данные — это и есть потенциальный payload.
- Проверь, что там за данные. Выдели всё, что идёт после конца структуры. Скопируй в отдельный файл. Попробуй открыть его как .exe, .dll, .js — или просто посмотри на первые байты:
4D 5A→ это DOS-заголовок EXE → опасно.7F 45 4C 46→ ELF (Linux binary) → опасно.50 4B 03 04→ ZIP-архив → может быть скрытый архив с вредоносом.6A 46 73 65→ что-то нестандартное → подозрительно.
Если после конца структуры есть хоть 100 байт, которые не относятся к формату — это уже повод для опасений. Особенно если файл скачан с подозрительного сайта или получил от незнакомца.
Что смотреть для разных форматов
Не все файлы одинаковы. Вот таблица с ключевыми маркерами и что искать после них.
| Формат | Конец легальной части | Что искать после | Пример опасных байтов |
|---|---|---|---|
| JPEG | FF D9 |
Любые данные после | 4D 5A, 7F 45 4C 46 |
%EOF + 1–3 строки |
Данные после последней строки с %EOF | 4D 5A, 50 4B 03 04 |
|
| MP3 | Конец аудио-фреймов (после последнего FF FB или FF FA) |
Данные после аудио | 4D 5A, 7F 45 4C 46 |
| EXE (Windows PE) | После последней секции (по размеру в заголовке) | Данные после последней секции | 4D 5A (если дублируется), 50 4B 03 04 |
| ZIP | 50 4B 05 06 (End of Central Directory) |
Всё после этого маркера | 4D 5A, 7F 45 4C 46 |
Обрати внимание: если после конца структуры идёт 4D 5A — это почти всегда EXE. Это маркер DOS-заголовка. Он не встречается в легальных данных JPEG или PDF. Если ты его видишь — это почти 100% вредонос.
Что выбрать: проверить вручную или автоматизировать?
Если ты проверяешь один файл — вручную. Если их десятки — автоматизируй.
- Один файл, сомнения — открой в HxD, найди конец структуры, посмотри, что после. 5 минут — и ты знаешь, стоит ли рисковать.
- Много файлов, например, скачал папку с торрента — используй
binwalk(Linux/macOS) или Binwalk на Windows через WSL. Он автоматически сканирует файлы и показывает, есть ли вложенные данные. Просто запусти:binwalk -e имя_файла. Он распакует всё, что найдёт за пределами структуры. - Хочешь просто сканер — используй VirusTotal. Загрузи файл — если он содержит скрытый payload, 5–10 антивирусов его обнаружат как «Trojan.Generic», «Heur.AdvML.B» или «Suspicious.Append».
Частые ошибки
Люди делают три ошибки, из-за которых пропускают скрытый вредонос.
- Смотрят только в «блокноте». Там ты видишь только текстовые фрагменты. Скрытый EXE-код — бинарный. Он выглядит как мусор. Но это и есть вирус.
- Думают, что если файл открывается — он безопасен. JPEG с вредоносом открывается как картинка. PDF — как документ. Это не означает, что внутри нет кода.
- Игнорируют маленькие «лишние» куски. 2 КБ после JPEG — кажется, мелочь. Но это может быть скрипт на JavaScript, который запускается через уязвимость в браузере при открытии файла.
Особенно опасно, когда payload — это не EXE, а JavaScript или PowerShell-скрипт, встроенный в PDF или JPEG как бинарный поток. Антивирусы его не видят, потому что он не в «основной» части. А браузер или Adobe Reader — запускают его.
Что делать в разных ситуациях
Вот сценарии — и что делать в каждом.
- Ситуация: скачал файл с сайта, который выглядит подозрительно — не открывай. Загрузи на VirusTotal. Если хотя бы 2 антивируса ругаются — удали. Проверь в HxD — если после конца структуры есть данные — это уже повод не открывать.
- Ситуация: получил файл от коллеги, но он не знает, откуда он — не открывай. Попроси отправить через защищённый канал (например, корпоративный портал). Если не получается — проверь в HxD. Если есть payload — сообщи коллеге: «Файл заражён. Удали его».
- Ситуация: ты администратор, и нужно проверить сотни файлов — используй
binwalkв скрипте. Напиши простой bash:for file in *.jpg *.pdf *.exe; do binwalk -e "file" 2>/dev/null | grep -q "extracted" && echo "WARNING:file has hidden payload" doneЭто скажет тебе, какие файлы содержат вложенные данные. Потом проверь их вручную.
- Ситуация: ты разработчик, и твой файл должен быть «чистым» — при сборке используй утилиты вроде
strip(Linux) илиupx --best— они удаляют неиспользуемые секции. А потом проверяй конец файла в HxD — он должен быть ровно на размер структуры.
Как лучше делать — рекомендации
Вот что работает на практике:
- Всегда проверяй размер файла в свойствах и сравнивай с размером «легальной» части. Если они отличаются — это красный флаг.
- Используй HxD или Hex Fiend как стандартный инструмент для проверки подозрительных файлов. Это не сложнее, чем открыть фото.
- Проверяй файлы, даже если они «безопасные» по расширению. JPEG и PDF — самые частые «обёртки» для payload.
- Если ты не уверен — не открывай. Загрузи на VirusTotal. Это занимает 2 минуты. Вместо того, чтобы рисковать всей системой.
- Для автоматизации — binwalk. Он не идеален, но 90% случаев ловит.
- Не доверяй антивирусам полностью. Многие не сканируют payload за концом структуры. Это уязвимость в их архитектуре.
Итог: что делать прямо сейчас
Если ты сомневаешься в файле — сделай три шага:
- Открой свойства — запиши размер в байтах.
- Открой файл в HxD (или аналоге) — найди конец структуры (по маркерам из таблицы выше).
- Посмотри: есть ли после него данные? Если да — выдели их, сохрани как отдельный файл, и проверь его на VirusTotal.
Если после конца структуры — пустота (нули или ничего), файл чист. Если есть байты — особенно 4D 5A, 7F 45 4C 46 или 50 4B 03 04 — это вредонос. Удаляй. Не открывай. Не игнорируй.
Ты не должен быть экспертом, чтобы защитить себя. Достаточно знать, где искать. И не доверять тому, что файл «открывается» — потому что это не значит, что он безопасен.
Информация в этой статье носит ознакомительный характер. При подозрении на вредоносное ПО или утечке данных обратитесь к специалисту по кибербезопасности.
