Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
goblin — Uma crate travessa e multiplataforma para análise binária, escrita em Rust. | Kitploit
Ferramentas/GitHubGitHub/m4b/goblin
Engenharia ReversaFuzzingAnálise de Binários
GitHubm4b/goblin

goblin

Uma crate travessa e multiplataforma para análise binária, escrita em Rust.

Ver Repositório
1.5k20070há 1 mêsRevisado 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

libgoblin

Actions crates.io version

diga as palavras certas

Documentação

https://docs.rs/goblin/

changelog

Uso

Goblin requer rustc 1.85.0 (edição Rust 2024).

Adicione ao seu Cargo.toml

[dependencies]
goblin = "0.10"

Funcionalidades

  • nome incrível de crate
  • implementação zero-copy, multiplataforma e consciente de endianness de ELF64/32 — uau!
  • parser Mach-o de 32/64 bits, zero-copy, multiplataforma e consciente de endianness — zoiks!
  • parser PE de 32/64 bits — bing!
  • parser de arquivos no estilo Unix e BSD (este último cortesia de [@willglynn]) — huzzah!
  • muitas opções de cfg — vai fazer sua cabeça girar e te deixar furioso ao ler o código-fonte!
  • fuzzeado — "É um prazer relatar que goblin resistiu a 100 milhões de execuções de fuzzing, 1 milhão de execuções para cada semente de 1 a 100." — [@sanxiyn]
  • testes

libgoblin tem como objetivo ser a solução completa para análise, parsing e carregamento de binários.

Casos de uso

Goblin suporta principalmente os seguintes casos de uso importantes:

  1. Estruturas #[repr(C)] principais, sem std, tempo de compilação reduzido, 32/64 (ou ambos) à sua escolha.

  2. Type punning. Defina uma função uma vez em um tipo, mas faça-a funcionar em variantes de 32 ou 64 bits — sem realmente mudar nada, e sem macros! Veja examples/automagic.rs para um exemplo básico.

  3. Modo std. Isso adiciona implementações de leitura e escrita via Pread e Pwrite, leitura de arquivo, alocações convenientes, métodos extras, etc. É para clientes que podem alocar e desejam ler binários do disco.

  4. Endian_fd. Um nome terrível 😆 isso é para análise binária como em panopticon ou falcon que precisa ler binários de endianness estrangeira, ou como base para construir binutils multiplataforma de arquitetura estrangeira, por exemplo, cargo-sym e bingrep são exemplos simples disso, mas o céu é o limite.

Aqui estão algumas coisas que você pode fazer com esta crate (ou ajudar a implementar para que possam ser feitas):

  1. Escrever um compilador e usá-lo para gerar binários (todas as estruturas C brutas têm Pwrite derivado).
  2. Escrever uma ferramenta de análise binária que carregue, analise e processe vários formatos binários, por exemplo, panopticon ou falcon.
  3. Escrever um ligador dinâmico semi-funcional.
  4. Escrever um kernel e carregar binários usando configuração no_std. Ou seja, é essencialmente apenas definições de structs e constantes (como um cabeçalho C) — sem fd, sem saída, sem std.
  5. Escrever uma ferramenta bin2json, porque por que formatos binários não deveriam estar em JSON?

Configurações (cfgs)

libgoblin é projetado para ser massivamente configurável. As flags atuais são:

  • elf64 — binários ELF de 64 bits, definições de struct repr(C)
  • elf32 — binários ELF de 32 bits, definições de struct repr(C)
  • mach64 — definições de struct repr(C) para Mach-O de 64 bits
  • mach32 — definições de struct repr(C) para Mach-O de 32 bits
  • pe32 — definições de struct repr(C) para PE de 32 bits
  • pe64 — definições de struct repr(C) para PE de 64 bits
  • te — definições de struct repr(C) para Executável Terso (TE)
  • archive — um parser de arquivos Unix
  • endian_fd — analisa de acordo com a endianness no binário
  • std — para permitir ambientes no_std

Mantenedores

  1. PE: [@kkent030315]
  2. Elf: [@m4b], aberto para candidaturas
  3. Mach-o: [@m4b], aberto para candidaturas

Mantenedores são revisores de primeiro contato para aquele backend específico. São escolhidos com base em contribuições anteriores, atividade, conhecimento base e comportamento amigável e gregário :D

Atualmente, eu ([@m4b]) só tenho direitos de merge para todos os PRs. No futuro, é provável que o(s) mantenedor(es) daquele backend também tenham direitos de merge.

Por fim, ainda provavelmente farei revisões superficiais em todos os PRs, mas na maioria das vezes/ totalidade ficarei com o mantenedor daquele backend.

E lembre-se sempre da sabedoria de Bill e Ted: "Sejam excelentes uns com os outros!"

Contribuidores

Muito obrigado a todos ❤️ !

Em ordem lexicográfica:

  • [@000lbh]
  • [@2vg]
  • [@5225225]
  • [@alessandrod]
  • [@amanieu]
  • [@anfedotoff]
  • [@apalm]
  • [@baloo]
  • [@BinFlip]
  • [@burjui]
  • [@CalebFenton]
  • [@chf0x]
  • [@connorkuehl]
  • [@dancrossnyc]
  • [@DreydenGys]
  • [@dureuill]
  • [@Evian-Zhang]
  • [@ExPixel]
  • [@flanfly]
  • [@glandium]
  • [@glslang]
  • [@Gelbpunkt]
  • [@gunbux]
  • [@h33p]
  • [@hannahfluch]
  • [@Hexorg]
  • [@ibabushkin]
  • [@ideeockus]
  • [@ivlzme]
  • [@jackcmay]
  • [@jan-auer]
  • [@Javagedes]
  • [@jessehui]
  • [@jdub]
  • [@Jhynjhiruu]
  • [@johannst]
  • [@JohnScience]
  • [@joschock]
  • [@jrmuizel]
  • [@jsgf]
  • [@Jvlegod]
  • [@keith]
  • [@kjempelodott]
  • [@kkent030315]
  • [@ko1n]
  • [@le-jzr]
  • [@Lichtso]
  • [@lion128]
  • [@lissyx]
  • [@llogiq]
  • [@lumag]
  • [@lzutao]
  • [@lzybkr]
  • [@m-hilgendorf]
  • [@makubacki]
  • [@mmaekr]
  • [@m4b]
  • [@messense]
  • [@mitsuhiko]
  • [@mkroening]
  • [@mre]
  • [@Mrmaxmeier]
  • [n01e0]
  • [nathaniel-daniel]
  • [@nick96]
  • [@nico-abram]
  • [@npmccallum]
  • [@pchickey]
  • [@philipc]
  • [@PJB3005]
  • [@prettyroseslover]
  • [@Pzixel]
  • [@quake]
  • [@raindev]
  • [@RaitoBezarius]
  • [@ReturnRei]
  • [@rocallahan]
  • [@sanxiyn]
  • [@SAY-5]
  • [@skdltmxn]
  • [@sollyucko]
  • [@supervacuus]
  • [@Swatinem]
  • [@SweetVishnya]
  • [@SquareMan]
  • [@tathanhdinh]
  • [@Techno-coder]
  • [@tiann]
  • [@ticki]
  • [@Timmmm]
  • [@Tiwalun]
  • [@track-5]
  • [@tux3]
  • [@wickerwacka]
  • [@willglynn]
  • [@woodruffw]
  • [@wyxloading]
  • [@xcoldhandsx]
  • [@x0rb3l]
  • [@x64k]
Baixar ferramenta