- •Внимание!
- •Об авторах
- •О техническом редакторе
- •О соавторах
- •Предисловие
- •Благодарности
- •Отдельное спасибо
- •Введение
- •Необходимая квалификация
- •Изучение на примерах
- •Структура книги
- •Глава 0. Анализ вредоносных программ для начинающих
- •Цель анализа вредоносных программ
- •Методики анализа вредоносного ПО
- •Общие правила анализа вредоносного ПО
- •Глава 1. Основные статические методики
- •Сканирование антивирусом: первый шаг
- •Хеширование: отпечатки пальцев злоумышленника
- •Поиск строк
- •Упакованное и обфусцированное вредоносное ПО
- •Формат переносимых исполняемых файлов
- •Компонуемые библиотеки и функции
- •Статический анализ на практике
- •Заголовки и разделы PE-файла
- •Итоги главы
- •Глава 2. Анализ вредоносных программ в виртуальных машинах
- •Структура виртуальной машины
- •Запуск виртуальной машины для анализа вредоносного ПО
- •Использование виртуальной машины для анализа безопасности
- •Риски при использовании VMware для анализа безопасности
- •Запись/воспроизведение работы компьютера
- •Итоги главы
- •Глава 3. Основы динамического анализа
- •Песочницы: решение на скорую руку
- •Запуск вредоносных программ
- •Мониторинг с помощью Process Monitor
- •Сравнение снимков реестра с помощью Regshot
- •Симуляция сети
- •Перехват пакетов с помощью Wireshark
- •Использование INetSim
- •Применение основных инструментов для динамического анализа
- •Итоги главы
- •Уровни абстракции
- •Архитектура x86
- •Итоги главы
- •Глава 5. IDA Pro
- •Загрузка исполняемого файла
- •Интерфейс IDA Pro
- •Использование перекрестных ссылок
- •Анализ функций
- •Схематическое представление
- •Повышение эффективности дизассемблирования
- •Плагины к IDA Pro
- •Итоги главы
- •Глава 6. Распознавание конструкций языка C в ассемблере
- •Переменные: локальные и глобальные
- •Дизассемблирование арифметических операций
- •Распознавание выражений if
- •Распознавание циклов
- •Соглашения, касающиеся вызова функций
- •Анализ выражений switch
- •Дизассемблирование массивов
- •Распознавание структур
- •Анализ обхода связного списка
- •Итоги главы
- •Глава 7. Анализ вредоносных программ для Windows
- •Windows API
- •Реестр Windows
- •API для работы с сетью
- •Отслеживание запущенной вредоносной программы
- •Сравнение режимов ядра и пользователя
- •Native API
- •Итоги главы
- •Глава 8. Отладка
- •Сравнение отладки на уровне исходного и дизассемблированного кода
- •Отладка на уровне ядра и пользователя
- •Использование отладчика
- •Исключения
- •Управление выполнением с помощью отладчика
- •Изменение хода выполнения программы на практике
- •Итоги главы
- •Глава 9. OllyDbg
- •Загрузка вредоносного ПО
- •Пользовательский интерфейс OllyDbg
- •Карта памяти
- •Просмотр потоков и стеков
- •Выполнение кода
- •Точки останова
- •Трассировка
- •Обработка исключений
- •Редактирование кода
- •Анализ кода командной оболочки
- •Вспомогательные возможности
- •Подключаемые модули
- •Отладка с использованием скриптов
- •Итоги главы
- •Драйверы и код ядра
- •Подготовка к отладке ядра
- •Использование WinDbg
- •Отладочные символы Microsoft
- •Отладка ядра на практике
- •Руткиты
- •Загрузка драйверов
- •Итоги главы
- •Глава 11. Поведение вредоносных программ
- •Программы для загрузки и запуска ПО
- •Бэкдоры
- •Похищение учетных данных
- •Механизм постоянного присутствия
- •Повышение привилегий
- •Заметая следы: руткиты, работающие в пользовательском режиме
- •Итоги главы
- •Глава 12. Скрытый запуск вредоносного ПО
- •Загрузчики
- •Внедрение в процесс
- •Подмена процесса
- •Внедрение перехватчиков
- •Detours
- •Внедрение асинхронных процедур
- •Итоги главы
- •Глава 13. Кодирование данных
- •Простые шифры
- •Распространенные криптографические алгоритмы
- •Нестандартное кодирование
- •Декодирование
- •Итоги главы
- •Глава 14. Сетевые сигнатуры, нацеленные на вредоносное ПО
- •Сетевые контрмеры
- •Безопасное расследование вредоносной деятельности в Интернете
- •Контрмеры, основанные на сетевом трафике
- •Углубленный анализ
- •Сочетание динамических и статических методик анализа
- •Понимание психологии злоумышленника
- •Итоги главы
- •Искажение алгоритмов дизассемблирования
- •Срыв анализа слоя стека
- •Итоги главы
- •Глава 16. Антиотладка
- •Обнаружение отладчика в Windows
- •Распознавание поведения отладчика
- •Искажение работы отладчика
- •Уязвимости отладчиков
- •Итоги главы
- •Глава 17. Методы противодействия виртуальным машинам
- •Признаки присутствия VMware
- •Уязвимые инструкции
- •Изменение настроек
- •Побег из виртуальной машины
- •Итоги главы
- •Глава 18. Упаковщики и распаковка
- •Анатомия упаковщика
- •Распознавание упакованных программ
- •Способы распаковки
- •Автоматизированная распаковка
- •Ручная распаковка
- •Советы и приемы для работы с распространенными упаковщиками
- •Анализ без полной распаковки
- •Итоги главы
- •Глава 19. Анализ кода командной оболочки
- •Загрузка кода командной оболочки для анализа
- •Позиционно-независимый код
- •Определение адреса выполнения
- •Поиск символов вручную
- •Окончательная версия программы Hello World
- •Кодировки кода командной оболочки
- •NOP-цепочки
- •Поиск кода командной оболочки
- •Итоги главы
- •Глава 20. Анализ кода на C++
- •Объектно-ориентированное программирование
- •Обычные и виртуальные функции
- •Создание и уничтожение объектов
- •Итоги главы
- •Какой смысл в 64-битном вредоносном ПО?
- •Особенности архитектуры x64
- •Признаки вредоносного кода на платформе x64
- •Итоги главы
- •Приложения
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
Глава 13. Кодирование данных 309 |
to |
|
|
|
|
|
||||
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
дыдущая строка, у которой символ a передвинут в начало. Злоумышленник просто взял стандартный алгоритм и поменял строку кодирования. На рис. 13.8 мы еще раз пытаемся расшифровать данные, но на этот раз с помощью новой строки.
Рис. 13.8. Успешное декодирование данных в формате Base64 с помощью нестандартной индексирующей строки
Распространенные криптографические алгоритмы
Примитивные методы кодирования, аналогичные подстановочному шифру, сильно отличаются от современных криптографических алгоритмов. В наши дни в криптографии учитываются вычислительные возможности, растущие по экспоненте. Шифры проектируются таким образом, чтобы затраты на их взлом были попросту непозволительными.
Примитивные методы кодирования, рассмотренные выше, даже не пытаются защитить данные от простого перебора. Их основная задача — сделать информацию неузнаваемой. Со временем криптография эволюционировала и стала более развитой. Теперь без нее не обходится ни один аспект работы с компьютером: в браузере используется SSL, в беспроводных точках доступа включено шифрование и т. д. Почему же вредоносное ПО не всегда применяет криптографию для скрытия своей внутренней информации?
Вредоносные программы часто прибегают к примитивным методам шифрования ввиду их простоты и эффективности. Кроме того, использование стандартных криптографических возможностей имеет потенциальные недостатки, особенно если речь идет о вредоносном коде.
Криптографические библиотеки могут иметь большой размер, из-за чего вредоносу приходится интегрировать их код статически или прибегать к динамической компоновке уже имеющегося кода.
Динамическая компоновка существующего системного кода может ухудшить совместимость с другими платформами.
Стандартные криптографические библиотеки легко обнаруживаются (по таблице импорта, криптографическим константам или путем сопоставления функций).
При использовании симметричных алгоритмов шифрования приходится думать о том, как спрятать ключ.
Надежность многих стандартных криптографических алгоритмов основана на устойчивом ключе. Идея состоит в том, что сам алгоритм широко известен, но
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
w |
|
|
to |
|
|
310 Часть IV • Возможности вредоносного ПО |
||||
w Click |
|
|
|
|
|
|
||||
|
|
|
|
|
o |
m |
||||
|
w |
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
без ключа зашифрованный текст почти невозможно расшифровать (это потребует огромного объема работы). Раз нужно сделать расшифровку максимально трудоемкой, ключ должен быть настолько длинным, чтобы невозможно было проверить все его потенциальные варианты. В случае со стандартными алгоритмами, которые применяются во вредоносном ПО, нужно определить не только метод шифрования, но и ключ.
Существует несколько простых способов обнаружения стандартных криптографических возможностей. Например, можно попытаться найти строки и импортированные символы, которые ссылаются на функции шифрования. Для поиска специфической информации можно воспользоваться несколькими инструментами.
Распознавание строк и импортированных символов
Один из методов распознавания стандартных криптографических алгоритмов заключается в поиске строк, которые указывают на применение шифрования. Например, во вредоносную программу может быть статически вкомпилирована криптографическая библиотека, такая как OpenSSL. Ниже показана строка, изъятая из вредоносного кода, который был скомпилирован с поддержкой шифрования на основе OpenSSL:
OpenSSL 1.0.0a
SSLv3 part of OpenSSL 1.0.0a TLSv1 part of OpenSSL 1.0.0a SSLv2 part of OpenSSL 1.0.0a
You need to read the OpenSSL FAQ, http://www.openssl.org/support/faq.html %s(%d): OpenSSL internal error, assertion failed: %s
AES for x86, CRYPTOGAMS by <appro@openssl.org>
Еще одним способом обнаружения стандартной криптографии является поиск импортированных символов, которые ссылаются на криптографические функции. Например, на рис. 13.9 показано окно IDA Pro со списком импортированных символов, которые предоставляют такие операции, как хеширование, генерация ключей
ишифрование. В Windows большинство функций, имеющих отношение к криптографии, начинается с Crypt, CP (cryptographic provider) или Cert (хотя бывают
иисключения).
Рис. 13.9. Список криптографических функций импорта в IDA Pro
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
Глава 13. Кодирование данных 311 |
to |
|
|
|
|
|
||||
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
Поиск криптографических констант
Третий базовый метод обнаружения криптографии заключается в использовании инструментов, способных находить распространенные криптографические константы. Здесь мы рассмотрим Krypto ANALyzer и расширение FindCrypt2 из состава IDA Pro.
Использование FindCrypt2
IDA Pro предоставляет расширение FindCrypt2, которое входит в состав IDA Pro SDK (и доступно по адресу www.hex-rays.com/idapro/freefiles/findcrypt.zip). Оно ищет в теле программы любые константы, имеющие отношение к криптографическим алгоритмам. Это позволяет добиться хороших результатов, поскольку в большинстве методов шифрования применяются какие-нибудь виды магических констант. Магическая константа — это некая фиксированная последовательность байтов, которая относится к основной структуре алгоритма.
ПРИМЕЧАНИЕ
Некоторые криптографические алгоритмы неиспользуют магические константы. В частности, международный алгоритм шифрования данных (International Data Encryption Algorithm, IDEA) и алгоритм RC4 формируют свои структуры во время выполнения, благодаря чему они неподлежат идентификации. Вредоносное ПО часто применяет алгоритм RC4 — вероятно, ввиду небольшого размера и простоты в реализации, к тому же он не содержит криптографических констант, которые могли бы его выдать.
Расширение FindCrypt2 выполняется автоматически при каждом анализе, хотя его можно запустить вручную из соответствующего меню. На рис. 13.10 показана панель вывода IDA Pro с результатами работы FindCrypt2 в контексте зараженной DLL. Вредонос содержит целый ряд констант с префиксом DES. Определив функции, которые обращаются к этим константам, вы сможете быстро найти криптографический код.
Рис. 13.10. Вывод FindCrypt2 в IDA Pro
Использование Krypto ANALyzer
Krypto ANALyzer (KANAL) работает по тому же принципу, что и FindCrypt2. Это расширение PEiD (www.peid.has.it), обладающее более широким спектром констант (что в итоге приводит к большему числу ложных срабатываний). Помимо констант
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
w |
|
|
to |
|
|
312 Часть IV • Возможности вредоносного ПО |
||||
w Click |
|
|
|
|
|
|
||||
|
|
|
|
|
o |
m |
||||
|
w |
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
KANAL также распознает таблицы Base64 и импорты функций, имеющие отношение к криптографии.
На рис. 13.11 показаны два окна: слева PEiD, а справа — расширение KANAL. Чтобы запустить расширение в PEiD, можно щелкнуть на стрелке в нижнем правом углу. В процессе анализа KANAL ищет константы, таблицы и криптографические функции импорта из своего списка. На рис. 13.11 во вредоносе найдены таблица Base64, константа CRC32 и несколько функций вида Crypt*.
Рис. 13.11. PEiD и вывод Krypto ANALyzer (KANAL)
Поиск информации с повышенной энтропией
Еще одним признаком применения криптографии является наличие информации с повышенной энтропией. Помимо криптографических констант или ключей эта методика позволяет идентифицировать сами зашифрованные данные. Ввиду своего широкого охвата она может использоваться в ситуациях, когда не удается найти криптографические константы (как в случае с RC4).
ПРЕДУПРЕЖДЕНИЕ
Поиск содержимого с повышенной энтропией является достаточно примитивным подходом, который стоит применять всамую последнюю очередь. Многие типы данных, такие как изображения, видео, аудио и прочие сжатые файлы, обладают высокой энтропией и отличаются от зашифрованной информации только своими заголовками.
Одним из инструментов, который реализует этот подход для PE-заголовков, является расширение IDA Entropy (www.smokedchicken.org/2010/06/ida-entropy-plugin.html). Чтобы его установить, поместите файл ida-ent.plw в каталог с расширениями IDA Pro.
Вернемся к вредоносу на рис. 13.10, показывающему признаки DES-шифрования. Загрузите этот файл в IDA Pro и запустите IDA Entropy. Вначале на экране появится окно Entropy Calculator, показанное в левой части рис. 13.12. Вы можете выбрать
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
Глава 13. Кодирование данных 313 |
to |
|
|
|
|
|
||||
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
и проанализировать любой отдельный сегмент. В данном случае нас интересует небольшой участок сегмента rdata. Если нажать кнопку Deep Analyze (Глубокий анализ), в заданной области будет выполнен поиск отрезков данных, превышающих определенный лимит. При этом учитываются указанные параметры (размер отрезка, длина шага и максимальная энтропия). Сравнив вывод на рис. 13.10 с результатами глубокого анализа на рис. 13.12, вы увидите те же адреса в районе 0x100062A4. Расширение IDA Entropy нашло константы DES, руководствуясь лишь их высокой степенью энтропии и при этом не имея никакого представления об их назначении!
Рис. 13.12. Расширение IDA Entropy
Для эффективного применения этой методики необходимо понимать связь между размером отрезка и уровнем энтропии. Параметры, представленные на рис. 13.12 (размер отрезка — 64 с максимальной энтропией 5,95), на самом деле хорошо подходят для поиска многих видов констант и позволяют найти любые строки в кодировке Base64 (даже нестандартные).
Самый высокий уровень энтропии будет иметь 64-байтная строка, в которой у каждого байта есть уникальное значение. Эти 64 значения дадут показатель, равный 6 (6 битов энтропии), поскольку количество вариантов на основе 6 битов равно 64.
Есть еще одно сочетание параметров, которое может оказаться полезным: размер отрезка — 256 и максимальная энтропия — 7,9. Это подразумевает наличие строки, которая состоит из 256 последовательных байтов и представляет 256 возможных значений.
Расширение IDA Entropy включает в себя инструмент для графического представления заданной области. Он может помочь подобрать параметры для ма ксимального показателя энтропии и участки, на которых стоит сосредоточиться. Кнопка Draw (Нарисовать) генерирует диаграмму, в которой более светлые полоски соответствуют повышенному уровню энтропии. Разместив указатель мыши над определенным участком диаграммы, вы сможете увидеть уровень его энтропии. Сложно понять полезность этого инструмента лишь по его напечатанному изображению,