Анализатор TLS-колбэков
Разбирайте и анализируйте TLS-колбэки (Thread Local Storage) в PE-файлах. TLS-колбэки выполняются до точки входа программы, и их часто используют упаковщики, протекторы и вредоносное ПО для антиотладки, защиты от виртуальных машин и инициализации. Загрузите файл .exe, .dll или .sys либо вставьте шестнадцатеричные данные для мгновенного анализа. Вся обработка выполняется локально и конфиденциально.
Upload a PE file (.exe, .dll, .sys) or paste hex data to analyze TLS callbacks. The analyzer parses PE headers, extracts the TLS directory, and displays callback addresses.
Почему стоит использовать наш анализатор TLS-колбэков?
- Разбор заголовка PE и каталога TLS: анализатор TLS-колбэков разбирает всю структуру PE-файла, включая заголовок DOS, заголовок COFF, необязательный заголовок и все заголовки секций. Он целенаправленно извлекает запись каталога TLS (индекс 4 каталога данных), чтобы найти и декодировать адреса TLS-колбэков, выполняемых до точки входа программы.
- Глубокий анализ адресов колбэков: каждый адрес TLS-колбэка извлекается из массива колбэков и отображается вместе с исходными байтами, относительным виртуальным адресом (RVA) и содержащей его секцией. Анализатор определяет, в какой секции находится каждый колбэк (.text, .tls и т. д.), и выделяет необычные сопоставления, которые могут указывать на активность упаковщика.
- Полное представление структуры PE: просматривайте полную структуру PE-файла, включая архитектуру машины, адрес точки входа, базу образа, число секций, характеристики секций (CODE, INIT_DATA, EXECUTE, READ, WRITE) и предпросмотр первых 512 байт в шестнадцатеричном виде. Такая полная картина помогает аналитикам понять компоновку бинарного файла.
- 100 % приватно, без загрузки данных: весь анализ TLS-колбэков выполняется локально в вашем браузере на JavaScript. Ваши PE-файлы и шестнадцатеричные данные никогда не покидают устройство. Без аккаунта, без отслеживания, без хранения данных. Анализатор поддерживает и загрузку файлов, и вставку шестнадцатеричных данных для полной гибкости.
Типичные сценарии использования анализатора TLS-колбэков
- Обнаружение упаковщиков и протекторов: специалисты по безопасности используют анализ TLS-колбэков для выявления упакованных или защищённых исполняемых файлов. Упаковщики часто устанавливают TLS-колбэки, чтобы расшифровать или распаковать исходный код до выполнения точки входа. Наличие TLS-колбэков в бинарном файле - сильный признак упаковки или защиты.
- Анализ инициализации вредоносного ПО: вредоносное ПО часто использует TLS-колбэки для выполнения кода инициализации, сокрытия процессов, проверки наличия отладчиков или определения окружения до запуска основной логики. Обнаружение и анализ таких колбэков раскрывает этап настройки вредоносного ПО и его приёмы антианализа.
- Выявление антиотладки и защиты от виртуальных машин: TLS-колбэки часто применяются для реализации проверок на отладчики и виртуальные машины. Поскольку колбэки выполняются до точки входа, отладчики, подключающиеся к точке входа, пропускают эту инициализацию. Наш анализатор помогает выявить бинарные файлы, которые могут использовать этот приём.
- Подготовка к обратной разработке: перед обратной разработкой бинарного файла аналитикам следует проверить наличие TLS-колбэков, чтобы понять полный поток выполнения. Если пропустить TLS-колбэки, анализ может оказаться неверным, так как они могут настраивать расшифровку, изменять таблицы импорта или модифицировать анализируемый код.
- Анализ защиты ПО: коммерческие протекторы (Themida, VMProtect, Enigma, Obsidium) используют TLS-колбэки в составе своей цепочки защиты. Определение TLS-колбэков помогает понять, какой протектор применялся, и разобраться в слоях защиты бинарного файла.
- Обучение формату PE-файлов: студенты, изучающие формат PE, могут использовать анализатор TLS-колбэков для изучения реальной структуры PE. Инструмент визуализирует всю цепочку заголовков - от сигнатуры DOS через каталоги данных необязательного заголовка до таблиц секций, делая формат PE наглядным и интерактивным.
Что такое TLS-колбэки?
TLS-колбэки (Thread Local Storage) - это указатели на функции, хранящиеся в каталоге TLS PE-файла, которые операционная система выполняет до точки входа программы ( main или WinMain ). Изначально они предназначались для инициализации переменных локального хранилища потока, но авторы упаковщиков, протекторов и вредоносного ПО стали использовать их для выполнения кода инициализации до того, как отладчик или аналитик сможет его перехватить. Каждый колбэк - это указатель на функцию, хранящийся в массиве с нулевым терминатором внутри структуры каталога TLS.
Как работает наш анализатор TLS-колбэков
- Загрузите или вставьте PE-файл: перетащите файл .exe, .dll или .sys либо вставьте бинарные данные в виде шестнадцатеричной строки. Анализатор читает исходные байты и проверяет заголовок MZ и сигнатуру PE.
- Разберите заголовки PE: анализатор извлекает заголовок DOS, заголовок COFF, необязательный заголовок (PE32 или PE32+), все 16 каталогов данных и таблицу секций. Он целенаправленно находит запись каталога TLS (индекс 4 каталога данных) и преобразует её RVA в смещение файла.
- Извлеките адреса колбэков: из каталога TLS анализатор читает указатель на массив колбэков, переходит по нему к данным файла и читает каждый 4-байтовый (PE32) или 8-байтовый (PE32+) указатель на функцию, пока не достигнет нулевого терминатора. Каждый адрес отображается вместе с RVA, исходными байтами и содержащей его секцией - всё в вашем браузере без загрузки на сервер.
Распространённые приёмы с TLS-колбэками
- Инициализация упаковщиков: упаковщики вроде UPX, ASPack и MPRESS используют TLS-колбэки, чтобы расшифровать или распаковать исходный исполняемый код до запуска точки входа, делая распаковку во время выполнения прозрачной для процесса.
- Проверки на отладчики: TLS-колбэки могут проверять наличие отладчика с помощью NtQueryInformationProcess , IsDebuggerPresent или атак по времени ещё до запуска основного кода, что делает их эффективными против отладчиков, подключающихся к точке входа.
- Определение окружения: вредоносное ПО и протекторы используют TLS-колбэки для обнаружения виртуальных машин, песочниц или сред анализа, проверяя свойства оборудования, имена процессов или системные артефакты до того, как инструмент анализа сможет перехватить эти проверки.
- Модификация таблицы импорта: некоторые протекторы используют TLS-колбэки, чтобы динамически разрешать или изменять адреса импорта, скрывая реальные зависимости бинарного файла от инструментов статического анализа, которые проверяют только таблицу импорта.
Приватность, безопасность и примечания по использованию
Анализатор TLS-колбэков обрабатывает все данные полностью в вашем браузере на JavaScript. Никакие PE-файлы или шестнадцатеричные данные никогда не загружаются на сервер, не сохраняются в базах данных и не передаются третьим лицам. Ограничений по размеру файла нет, кроме доступной памяти браузера. Входящий в комплект образец PE-файла - это минимальный синтетический бинарник с искусственными TLS-колбэками для учебных целей; он не является настоящим исполняемым файлом и не может быть запущен. Всегда анализируйте неизвестные бинарные файлы в изолированной среде с соблюдением необходимых мер предосторожности.
Часто задаваемые вопросы
TLS-колбэки (Thread Local Storage) - это указатели на функции в заголовке PE-файла, которые автоматически выполняются до точки входа программы. Они важны потому, что выполняются раньше, чем обычно подключаются отладчики и инструменты анализа, что делает их ключевым приёмом антианализа у упаковщиков, протекторов и вредоносного ПО.
Точка входа - это первый код, выполняемый при запуске программы. TLS-колбэки выполняются до точки входа: операционная система вызывает каждый колбэк перед передачей управления. Это значит, что TLS-колбэки могут настроить расшифровку, проверить наличие отладчиков или изменить состояние программы до запуска основного кода.
TLS-колбэки используют коммерческие протекторы, включая Themida, VMProtect, Enigma Protector и Obsidium. Их применяют и упаковщики с открытым исходным кодом, такие как UPX и ASPack. Семейства вредоносного ПО, включая TrickBot и Dridex, используют TLS-колбэки для инициализации в целях антианализа.
Да, анализатор полностью поддерживает форматы PE32 (32 бита) и PE32+ (64 бита). Он автоматически определяет магическое число необязательного заголовка и корректирует разбор, в том числе читает 8-байтовые указатели для PE32+ вместо 4-байтовых.
TLS-колбэки, указывающие на нестандартные секции, например на саму .tls или .data, могут говорить об активности упаковщика. Анализатор автоматически определяет секцию, содержащую каждый колбэк, и показывает её характеристики, чтобы выделить необычные сопоставления.
Анализатор разбирает структуру PE, чтобы найти запись каталога TLS по индексу 4 в каталоге данных, преобразует RVA в смещение файла с помощью таблицы секций и читает каждый указатель на функцию в массиве колбэков, пока не достигнет нулевого терминатора.
Да, полностью. Весь разбор PE и анализ TLS-колбэков выполняются локально в вашем браузере. Ваши файлы или шестнадцатеричные данные никогда не покидают устройство и не отправляются на сервер. Аккаунт не требуется, данные не сохраняются.
Анализатор поддерживает два режима ввода: загрузку файлов (.exe, .dll, .sys, .ocx, .scr, .cpl, .efi, .pe, .bin) и ввод шестнадцатеричного текста. Также можно загрузить образец PE-бинарника, чтобы изучить вывод инструмента перед анализом собственных файлов.
Кнопка «Загрузить образец PE» создаёт минимальный синтетический бинарник PE32 с каталогом TLS и двумя искусственными адресами колбэков. Этот образец создаётся полностью в вашем браузере и не является настоящим исполняемым файлом - он не может быть запущен и не содержит исполняемого кода.
Да, на 100 % бесплатный, без регистрации, аккаунта и ограничений на использование. Все функции, включая загрузку PE-файлов, шестнадцатеричный ввод, полный анализ каталога TLS, извлечение колбэков, просмотр секций и предпросмотр шестнадцатеричных данных, доступны без ограничений.