A estrutura de análise binária estática da Pharos é um projeto do Instituto de Engenharia de Software da Universidade Carnegie Mellon. A estrutura foi projetada para facilitar a análise automatizada de programas binários. Ele usa a infraestrutura do compilador de rosas desenvolvida pelo Lawrence Livermore National Laboratory para desmontagem, análise de fluxo de controle, semântica de instrução e muito mais. Este software é lançado sob uma licença BSD.
A distribuição atual é uma atualização substancial para a versão anterior e adiciona uma variedade de recursos, incluindo melhorias à ferramenta Ooanalyzer, código de análise de caminho experimental, melhorias no partido, multi-threading e muitos outros recursos menores.
A estrutura da Pharos é um projeto de pesquisa e o código está passando por um desenvolvimento ativo. Não são fornecidas garantias de aptidão para qualquer finalidade. Enquanto esta versão fornece instruções de construção, testes de unidade e alguma documentação, ainda há muito trabalho a ser feito. Testamos algumas configurações de compilação selecionadas, mas não testamos ativamente a portabilidade do código -fonte. Consulte as instruções de instalação para obter mais detalhes.
Como o objetivo principal para liberar esse código é fornecer transparência em nossa pesquisa e estimular a conversa com outros pesquisadores de análise estática binária, não hesite em entrar em contato com Cory Cohen [email protected] com perguntas que você pode ter sobre esse trabalho. Talvez eu não consiga responder em tempo hábil, mas farei o meu melhor.
O Apianalyzer é uma ferramenta para encontrar sequências de chamadas de API com os relacionamentos especificados de dados e controle. Esse recurso deve ser usado para detectar paradigmas de interação comuns do sistema operacional, como abrir um arquivo, escrever para ele e fechá -lo.
Ooanalyzer é uma ferramenta para a análise e recuperação de construções orientadas a objetos. Essa ferramenta foi objeto de um artigo intitulado "Usando a programação lógica para recuperar classes e métodos C ++ de executáveis compilados", publicados na conferência da ACM sobre segurança de computadores e comunicações em 2018. A ferramenta identifica membros do objeto e métodos, rastreando ponteiros de objetos entre as funções no programa. Uma implementação anterior dessa ferramenta foi nomeada "Objdigger", mas foi renomeada para refletir uma reformulação substancial usando regras do Prolog para recuperar os atributos do objeto. A versão atual da ferramenta suporta apenas a análise de executáveis x86 de 32 bits compilados pelo Microsoft Visual C ++. Para instrutões mais detalhados sobre como executar o OoAnalyzer em executáveis muito grandes, consulte essas notas.
A distribuição Pharos usada para incluir um plug -in que importou informações OO exportadas por Ooanalayzer para o conjunto de ferramentas de engenharia reversa de Ghidra. Para obter essa funcionalidade agora e no futuro, instale o plug -in Kaiju Ghidra, que inclui a funcionalidade fornecida pelo plug -in Ooanalayzer.
A Callanalyzer é uma ferramenta para relatar os parâmetros estáticos às chamadas da API em um programa binário. É em grande parte uma demonstração de nossa convenção de chamada atual, análise de parâmetros e recursos de detecção de tipo, embora também forneça uma análise útil do código em um programa.
O FN2yara é uma ferramenta para gerar assinaturas YARA para funções correspondentes em um programa executável. Os programas que compartilham um número significativo de funções provavelmente têm comportamento em comum.
O FN2HASH é ferramenta para gerar uma variedade de hashes e outras propriedades descritivas para funções em um programa executável. Como o FN2yara, ele pode ser usado para suportar análises de similaridade binária ou fornecer recursos para algoritmos de aprendizado de máquina.
O Dumpmasm é uma ferramenta para despejar listagens de desmontagem de um executável usando a estrutura Pharos no mesmo estilo que as outras ferramentas. Ele não foi mantido ativamente e você deve considerar o uso do padrão de Rose Recursivedissemble, em vez disso, http://rosecompiler.org/rose_html_reference/rosetools.html.