
Плагин IDA на Python для сканирования бинарных файлов с помощью правил Yara
Используйте этот плагин IDA Python для сканирования вашего бинарного файла с помощью правил Yara. Все совпадения с правилами Yara будут перечислены с их смещениями, чтобы вы могли быстро перейти к ним!
🍻 Вся заслуга за этот плагин и код принадлежит David Berard (@p0ly) 🍻
Этот плагин скопирован из отличного плагина findcrypt-yara, созданного Дэвидом. Данный плагин просто расширяет его для использования любых Yara-правил.
Плагин можно запустить из меню с помощью Edit->Plugins->FindYara или с помощью горячей клавиши Ctrl-Alt-Y. При запуске FindYara откроет диалог выбора файла, позволяющий выбрать файл с правилами Yara. После выбора файла правил FindYara просканирует загруженный бинарный файл на предмет совпадений с правилами.
Все совпадения с правилами отображаются в окне выбора, где вы можете дважды щелкнуть по совпадению и перейти к его местоположению в бинарном файле.
FindYara сканирует загруженные секции PE в IDA, это означает, что правила Yara, которые включают совпадения с заголовком PE, не будут совпадать в IDA. IDA не загружает заголовок PE как сканируемую секцию. Кроме того, если вы не выбрали Load resources при загрузке бинарного файла в IDA, то секция ресурсов будет недоступна для сканирования.
Это может привести к разочаровывающим ситуациям, когда правило Yara срабатывает вне IDA, но не срабатывает при использовании FindYara. Если вы столкнулись с этим, попробуйте отредактировать правило Yara, удалив совпадения с заголовком PE и секцией ресурсов.
Перед использованием плагина необходимо установить модуль Python Yara в вашу среду IDA. Самый простой способ — использовать pip из оболочки вне IDA.
pip install yara-python.
Не устанавливайте модуль yara по ошибке. Модуль Python yara помешает работе модуля yara-python, поэтому его необходимо удалить, если он был установлен по ошибке.
После установки модуля Yara просто скопируйте последнюю версию findyara.py в каталог плагинов IDA, и вы готовы к сканированию Yara!
FindYara разработан для использования с IDA 7+ и Python 3 и не поддерживает обратную совместимость.
FindYara требует установленный модуль Python Yara версии 4+. Более ранние версии Yara несовместимы с плагином и могут вызвать проблемы из-за критических изменений в формате совпадений Yara.
Огромное спасибо David Berard (@p0ly) — Следите за ним на GitHub здесь! В основном это его код, и он получает всю заслугу за оригинальную структуру плагина.
Также спасибо Alex Hanel @nullandnull — Следите за ним на GitHub здесь. Алекс помог мне разобраться с использованием методов IDC. Его книга IDA Python — отличный справочник!!