
Plugin IDA em Python para escanear binário com regras Yara.
Use este plugin Python do IDA para escanear seu binário com regras yara. Todas as correspondências de regras yara serão listadas com seus offsets para que você possa saltar rapidamente para elas!
🍻 Todo crédito por este plugin e código vai para David Berard (@p0ly) 🍻
Este plugin é copiado do excelente plugin findcrypt-yara do David. Este plugin apenas estende o dele para usar qualquer regra yara.
O plugin pode ser iniciado a partir do menu usando Edit->Plugins->FindYara ou usando a combinação de tecla de atalho Ctrl-Alt-Y. Quando iniciado, o FindYara abrirá uma caixa de diálogo de seleção de arquivo que permite selecionar seu arquivo de regras Yara. Uma vez que o arquivo de regras foi selecionado, o FindYara escaneará o binário carregado em busca de correspondências de regras.
Todas as correspondências de regras são exibidas em uma caixa de seleção que permite dar um duplo clique nas correspondências e saltar para sua localização no binário.
O FindYara escaneia as seções PE carregadas no IDA, o que significa que regras yara que incluem correspondências no cabeçalho PE não corresponderão no IDA. O IDA não carrega o cabeçalho PE como uma seção escaneável. Além disso, se você não selecionou Load resources ao carregar seu binário no IDA, a seção de recursos ficará indisponível para escaneamento.
Isso pode levar a situações frustrantes onde uma regra yara corresponde fora do IDA, mas não ao usar o FindYara. Se você encontrar isso, tente editar a regra yara para remover as correspondências no cabeçalho PE e nas seções de recursos.
Antes de usar o plugin, você deve instalar o módulo python Yara no seu ambiente IDA. A maneira mais simples de fazer isso é usar pip de um terminal fora do IDA.
pip install yara-python.
Não instale o módulo yara por engano. O módulo python yara irá interferir com o seu módulo yara-python, então ele deve ser desinstalado se foi instalado por engano.
Uma vez que você tenha o módulo yara instalado, basta copiar a versão mais recente do findyara.py para o diretório de plugins do IDA e você estará pronto para iniciar o escaneamento Yara!
O FindYara foi desenvolvido para uso com IDA 7+ e Python 3, não é compatível com versões anteriores.
O FindYara requer o módulo python Yara com versão 4+ instalada. Versões anteriores do Yara não são compatíveis com o plugin e podem causar problemas devido a mudanças significativas no formato de correspondência do Yara.
Um enorme agradecimento a David Berard (@p0ly) - Siga-o no GitHub aqui! Isso é principalmente o código dele e ele recebe todo o crédito pelo framework original do plugin.
Também, dica de chapéu para Alex Hanel @nullandnull - Siga-o no GitHub aqui. Alex me ajudou a entender como os métodos IDC estão sendo usados. O livro IDA Python dele é uma referência fantástica!!