
CERT Kaiju é uma extensão de framework de análise binária para o conjunto de ferramentas de engenharia reversa de software Ghidra. Este repositório é um "espelho" -- por favor, registre tickets, relatórios de bugs ou pull requests no repositório principal em @CERTCC: https://github.com/certcc/kaiju
CERT Kaiju é uma coleção de ferramentas de análise binária para Ghidra.
Esta é uma implementação em Ghidra/Java de algumas características do [CERT Pharos Binary Analysis Framework][pharos], particularmente as ferramentas de hashing de funções e análise de malware, mas espera-se que cresça com novas ferramentas e capacidades ao longo do tempo.
Como este é um novo esforço, esta implementação ainda não possui paridade total de funcionalidades com a implementação original em C++ baseada em ROSE; no entanto, a migração para Java e Ghidra permitiu algumas novas funcionalidades não disponíveis no framework original — notavelmente, melhor tratamento de arquiteturas não-x86.
Como uma reestruturação significativa do framework e das ferramentas está ocorrendo, e a migração para Java e Ghidra permite capacidades diferentes da implementação em C++, decidiu-se utilizar uma nova marca para que haja menos confusão entre as implementações ao discutir as diferentes ferramentas e capacidades.
Nossa intenção para o futuro próximo é manter tanto o framework Pharos original quanto o Kaiju lado a lado, já que ambos podem fornecer funcionalidades e capacidades únicas.
RESSALVA: Como protótipo, muitos problemas podem surgir ao avaliar os hashes de funções criados por este plugin. Por exemplo, ao contrário da implementação do Pharos, o módulo de hashing de funções do Kaiju criará hashes para funções muito pequenas (ex., aquelas com uma única instrução como RET, causando muito mais colisões não intencionais). Dessa forma, os resultados analíticos podem variar entre este plugin e o Pharos fn2hash.
[Pacotes pré-construídos do Kaiju][prebuilts] estão disponíveis. Basta baixar o arquivo ZIP correspondente à sua versão do Ghidra e instalar de acordo com as instruções abaixo. Recomenda-se instalar através da interface gráfica do Ghidra, mas também é possível descompactar manualmente no diretório apropriado para instalar.
CERT Kaiju requer as seguintes dependências de execução:
O Z3 é fornecido pré-compilado como parte dos pacotes pré-construídos, ou você pode compilar o Z3 por conta própria ou usar o pacote da sua distribuição Linux.
Inicie o Ghidra e, na janela de abertura, selecione no menu:
File > Install Extension. Clique no sinal de mais no topo da
janela de extensões, navegue e selecione o arquivo .zip no navegador
de arquivos e pressione OK. A extensão será instalada e uma caixa de seleção
será marcada ao lado do nome da extensão na janela para indicar que está
instalada e pronta.
A interface solicitará que você reinicie o Ghidra para começar a usar a extensão. Basta reiniciar e, em seguida, os recursos extras do Kaiju estarão disponíveis para uso interativo ou em scripts.
Algumas funcionalidades podem exigir a ativação de plugins do Kaiju. Para
fazer isso, abra o Code Browser e navegue até o menu File > Configure.
Na janela que aparecer, clique no link Configure abaixo do ícone da
categoria "CERT Kaiju". Um pop-up exibirá todos os plugins do Kaiju
disponíveis publicamente. Marque quaisquer plugins que deseja ativar e
pressione OK. Agora você terá acesso aos recursos interativos dos plugins.
Se um plugin não estiver imediatamente visível após ser ativado, você
pode encontrá-lo no menu Window do Code Browser.
Versões experimentais "alfa" de ferramentas futuras podem estar disponíveis na categoria "Experimental" se você deseja testá-las. No entanto, esses plugins são definitivamente experimentais e não suportados, e não são recomendados para uso em produção. Mas recebemos feedbacks iniciais com satisfação!
Extensões do Ghidra como o Kaiju também podem ser instaladas manualmente descompactando o conteúdo da extensão no diretório apropriado da sua instalação do Ghidra. Para mais informações, consulte The Ghidra Installation Guide.
Você também pode compilar a extensão Kaiju diretamente do código-fonte.
Consulte o arquivo INSTALL.md incluído no diretório raiz do código-fonte do Kaiju.
As ferramentas do Kaiju podem ser usadas de forma interativa gráfica, ou através de um modo "headless" mais adequado para trabalhos em lote. Algumas ferramentas podem estar disponíveis apenas para uso gráfico ou headless, pela natureza da ferramenta.
O Kaiju cria uma interface gráfica interativa (GUI) dentro do Ghidra utilizando Java Swing e a arquitetura de plugins do Ghidra.
A maioria das ferramentas do Kaiju são na verdade plugins de Análise que
são executados automaticamente quando a opção "Auto Analysis" é escolhida,
seja ao importar um novo executável para desmontar, ou escolhendo diretamente
Analysis > Auto Analyze... na janela do code browser. Você verá vários
plugins de Análise do CERT selecionados por padrão na ferramenta Auto Analyze,
mas você pode ativar/desativar qualquer um conforme desejado.
No entanto, as ferramentas de Análise devem ser executadas antes que as várias ferramentas GUI funcionem. Em alguns casos extremos, pode até ser útil executar a Auto Analysis duas vezes para garantir que todos os metadados sejam produzidos para criar informações corretas de particionamento e desmontagem, o que por sua vez pode influenciar os resultados de hashing.
Os Analisadores são executados automaticamente durante a fase de análise do Ghidra e incluem: