Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
AlphaGolang — Scripts IDApython para Análise de Binários Golang | Kitploit
Ferramentas/GitHubGitHub/sentinelabs/alphagolang
Análise EstáticaEngenharia ReversaDepuradoresAnálise de MalwareAnálise de Binários
GitHubsentinelabs/alphagolang

AlphaGolang

Scripts IDApython para Análise de Binários Golang

Ver Repositório
67273há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

AlphaGolang

por Juan Andres Guerrero-Saade (JAG-S @ SentinelLabs)

Descrição:

AlphaGolang é uma coleção de scripts IDAPython para ajudar engenheiros reversos de malware a dominar binários Go. A ideia é dividir os scripts em etapas concretas, evitando scripts monolíticos frágeis, e imitando a metodologia que um analista poderia seguir ao lidar com um binário Go.

Os scripts são lançados sob licença GPL (homenageando o original GolangLoaderAssist de Tim Strazzere, que refatoramos e atualizamos para python3, créditos ao Tim :) ). Contribuições são bem-vindas e incentivadas!

Requisitos: IDA Pro (idealmente v7.6+) e Python3 (eca) Os dois primeiros passos (recreate_pclntab e function_discovery_and_renaming) funcionarão no IDA v7.5-, mas os scripts posteriores exigem IDAv7.6+. Versões mais novas são o alvo ideal para scripts futuros.

Referência Original: Palestra do Mandiant Cyber Defense Summit 2021 (Vídeo Pendente)

Metodologia de Análise AlphaGolang

  • Passo 0: Regra YARA para identificar binários Go (PE/ELF/MachO)

    • identify_go_binaries.yara
      • Verificação simples de cabeçalho + regex para a string de ID de compilação Go.
      • Provavelmente poderia melhorar o intervalo de tamanho do ID de compilação.
  • Passo 1: Recriar tabela pcln

    • recreate_pclntab.py (IDA v7.5- compatible)
      • Recria a seção gopclntab a partir de heurísticas
      • Principalmente útil para IDA v7.5-
  • Passo 2: Descobrir funções percorrendo a tabela pcln e adicionar nomes a todas

    • function_renaming.py (IDA v7.5- compatible)
      • Separado do golang loader assist
      • Descobre por força bruta funções ausentes com base na tabela pcln
      • Corrigiu alguns problemas de limpeza de nomes de funções da transição py3
      • Refatorado para adicionar melhorias para Go v1.18 com base no Panchan da Akamai! Agradecimentos a Alex (CycleOfTheAbsurd).
  • Passo 3: Expor funções geradas pelo usuário

    • categorize_go_folders.py (Requires IDA v7.6+)
      • Categoriza automaticamente funções em pastas
      • Requer IDAv7.6 + 'mostrar pastas' habilitado na visualização de funções
      • ATUALIZAÇÃO 16.05.2022: Corrigido conflito com a ordenação de pastas do IDA v7.7
      • Recomenda-se reverter os metadados do Lumina antes de executar este plugin.
  • Passo 4: Corrigir referências de strings

    • fix_string_cast.py
      • Separado do golang loader assist
      • Adicionou lógica para indefinir blobs de string existentes antes de definir nova string
      • Novas verificações de sanidade tornam-no muito mais eficaz
  • Passo 5: Extrair informações de tipo (por Ivan Kwiatkowski)

    • extract_types.py
      • Comenta os argumentos de todas as chamadas para newobject, makechan, etc.
      • Aplica o tipo C correto a esses objetos e os renomeia
      • Obtém o nome legível por humanos e o adiciona como comentário

Correções pendentes e espaço para contribuições:

  • fix_string_cast.py - Ainda precisa de refatoração + melhores heurísticas de carregamento de string - Pode causar travamento em binários enormes. - Faltam alguns mecanismos indiretos de carregamento de string.
  • extract_types.py
    • Funciona atualmente em arquivos PE e Mach-O procurando pelos nomes de seção .rdata ou __rodata fixos.
    • É necessária uma verificação/implementação adequada para tamanhos codificados em varint

Próximos passos:

  • Rastrear referências de strings por funções geradas pelo usuário
  • Gerar automaticamente assinaturas YARA com base em funções geradas pelo usuário
  • Gerar saída de pseudocódigo hex-rays para funções geradas pelo usuário
  • Definir automaticamente breakpoints para análise dinâmica de argumentos
  • ???

Créditos para:

  • Tim Strazzere por lançar o golang_loader_assist original
  • Milan Bohacek (Avast Software s.r.o.) por sua ajuda inestimável para entender a API idatree.
  • Joakim Kennedy (Intezer)
  • Ivan Kwiatkowski (Kaspersky GReAT) pelo passo 5.
  • Igor Kuznetsov (Kaspersky GReAT)
  • Alex (também conhecido como CycleOfTheAbsurd) da ESET por refatorar o Passo 2 para suporte ao Go v1.18.
Baixar ferramenta