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
gimphash — Cálculo semelhante a imphash em binários Golang | Kitploit
Ferramentas/GitHubGitHub/nextronsystems/gimphash
Análise de HashEngenharia ReversaAnálise de MalwareAnálise de Binários
GitHubnextronsystems/gimphash

gimphash

Cálculo semelhante a imphash em binários Golang

Ver Repositório
50113há 4 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

gimphash

gimphash é um método proposto para calcular um equivalente de imphash para binários Go. Seu nome é um acrônimo de Go-import-hash.

Binários Golang contêm suas dependências como parte do executável. Essas dependências incluem tanto pacotes da biblioteca padrão quanto dependências de terceiros e podem ser usadas, de forma análoga a um imphash clássico, para identificar um projeto Golang.

As dependências podem ser listadas usando a pclntab que faz parte de cada binário Golang (veja também este artigo de blog da Mandiant). A pclntab contém vários elementos interessantes para engenharia reversa; para o gimphash usaremos os nomes de funções que estão contidos nela.

Cálculo

  1. Localize a pclntab dentro de um binário Golang
  2. Enumere as funções golang usando a functab dentro da pclntab e itere sobre seus nomes:
    1. Ignore nomes de funções que começam com go. ou type. (artefatos de compilação, internals de runtime)
    2. Se um nome de função contém vendor/, descarte essa substring e tudo antes dela (ex.: transforme vendor/golang.org/x/text em golang.org/x/text)
    3. Ignore nomes de funções que contenham internal/
    4. Ignore nomes de funções que comecem com um dos seguintes pacotes da biblioteca padrão:
      • runtime
      • sync
      • syscall
      • type
      • time
      • unicode
      • reflect
      • strconv
    5. Ignore nomes de funções que não sejam públicos ou cujos receivers não sejam públicos. Para fazer isso:
      1. Encontre a última / no nome da função. Se nenhuma / for encontrada, use o início. A partir dessa posição, encontre o próximo ..
      2. Extraia o nome base da função como tudo após esse .. Se nenhum . for encontrado, use tudo após o índice da / calculado no passo anterior.
      3. Ignore a função se o primeiro caractere alfanumérico no nome base da função for uma letra minúscula.
      4. Se outro . existir dentro do nome base da função, ignore a função se o primeiro caractere alfanumérico após esse . for uma letra minúscula.
    6. Armazene o nome resultante, se não tiver sido ignorado até agora, em uma lista ordenada
  3. Calcule o hash SHA-256 sobre os nomes concatenados (sem delimitador)

Implementações de Prova de Conceito

Este repositório contém código de prova de conceito nas seguintes linguagens:

  • C
  • Go

A seção de releases contém binários pré-compilados para Windows e Linux.

Exemplos de Uso

Execute a calculadora Gimphash em um único arquivo

root@kitploit:~
./c_gimphash_linux /mnt/malware-repo/Godoh/godoh-windows64.exe
8200e76e42c4e9cf2bb308d76c017cbdcde5cbbf95e99e02b14d05e7b21505f3 /mnt/mal/Godoh/godoh-windows64.exe

Execute a calculadora Gimphash em um repositório de malware

root@kitploit:~
find /mnt/malware-repo/ -type f -exec ./go_gimphash_linux {} \; 2>/dev/null
...

Exemplo de Agrupamento

Screenshot 2022-07-02 at 10 11 38

Baixar ferramenta