Um dos pesos pesados no campo dos antivírus é o famoso Avast. A empresa, sempre preocupada com a segurança e proteção dos computadores de seus clientes contra ataques e ameaças, está fazendo sua estreia.
Ele acaba de lançar um descompilador de código de máquina "RetDec" como uma ferramenta de código aberto para o público. As empresas geralmente não divulgam as ferramentas que usam para analisar códigos e investigar ameaças cibernéticas. Mas, neste caso, descobrimos que o Avast publicou, além do descompilador RetDec, o código-fonte completo.
O que um descompilador faz?
O que um descompilador faz é pegar um arquivo executável como entrada para o código-fonte, ou seja, o que ele faz é converter o código-fonte em arquivos executáveis.
Dessa forma, é muito mais fácil entender como uma ameaça ou programa específico funciona. Os descompiladores de código não são 100% precisos, portanto, entender como um arquivo ou uma ameaça funciona pode ser fácil.
Principais características do RetDec
Este descompilador de código de máquina de código aberto é baseado no LLVM. Não se limita a nenhuma arquitetura de destino, S.O ou formato de arquivo.
Caracteristicas
- Análise estática de arquivos executáveis com informações detalhadas
- Construir e descobrir empacotadores
- Carga de decodificação e instruções
- Remoção baseada em assinatura de código de biblioteca estaticamente vinculado
- Extração e uso de informações de depuração (DWARF, PDB)
- Reconstrução de expressões idiomáticas instrucionais
- Detecção e reconstrução de hierarquias de classe C ++ (RTTI, vtables)
- Alteração de símbolos de binários C ++ (GCC, MSVC, Borland)
- Reconstrução de funções, tipos e construções de alto nível
- Desmontador integrado
- Saída em duas linguagens de alto nível: C e uma linguagem Python
- Geração de gráficos de chamadas, gráficos de controle de fluxo e várias estatísticas
- Você pode testar todos esses recursos usando nosso serviço de descompilação online
Descobrimos que os formatos de arquivo suportados são: ELF, PE, Mach-O, COFF, AR (arquivo), Intel HEX e código de máquina bruto.
As arquiteturas com suporte são: (apenas 32b): Intel x86, ARM, MIPS, PIC32 e PowerPC.
Caso queiramos testar esta ferramenta, podemos fazê-lo através do GitHub. É um programa disponível para usuários de 32 e 64 bits no Windows. Para usuários de Linux e Mac, esta ferramenta pode ser usada, mas deve ser ativada manualmente.
Fonte: RetDec