Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
goblin — Un crate di analisi binaria birichino e multipiattaforma, scritto in Rust. | Kitploit
Strumenti/GitHubGitHub/m4b/goblin
Reverse EngineeringFuzzingAnalisi di Binari
GitHubm4b/goblin

goblin

Un crate di analisi binaria birichino e multipiattaforma, scritto in Rust.

Vedi Repository
1.5k200691 mese faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

libgoblin

Actions crates.io version

di' le parole giuste

Documentazione

https://docs.rs/goblin/

registro delle modifiche

Utilizzo

Goblin richiede rustc 1.85.0 (edizione Rust 2024).

Aggiungi al tuo Cargo.toml

[dependencies]
goblin = "0.10"

Caratteristiche

  • nome fantastico del crate
  • implementazione zero-copy, cross-platform, endian-aware per ELF64/32 - wow!
  • parser zero-copy, cross-platform, endian-aware per Mach-o 32/64 bit - zoiks!
  • parser PE 32/64 bit - bing!
  • un parser di archivi Unix e BSD (quest'ultimo grazie a [@willglynn]) - evviva!
  • molte opzioni cfg - ti farà girare la testa e ti farà arrabbiare quando leggi il sorgente!
  • fuzzed - "Sono felice di riferire che goblin ha resistito a 100 milioni di esecuzioni di fuzzing, 1 milione di esecuzioni per ogni seed da 1 a 100." - [@sanxiyn]
  • test

libgoblin mira a essere il tuo sportello unico per parsing, caricamento e analisi di binari.

Casi d'uso

Goblin supporta principalmente i seguenti casi d'uso importanti:

  1. Strutture #[repr(C)] core, senza std, tempo di compilazione ridotto, 32/64 (o entrambi) a tuo piacimento.

  2. Type punning. Definisci una funzione una volta su un tipo, ma falla funzionare su varianti a 32 o 64 bit - senza cambiare nulla, e niente macro! Vedi examples/automagic.rs per un esempio base.

  3. Modalità std. Aggiunge implementazioni di lettura e scrittura tramite Pread e Pwrite, lettura da file, allocazioni di comodo, metodi extra, ecc. Questo è per client che possono allocare e vogliono leggere binari dal disco.

  4. Endian_fd. Un nome davvero terribile 😆 questo è per analisi binaria come in panopticon o falcon che necessitano di leggere binari con endianness diversa, oppure come base per costruire binutils cross-platform per architetture straniere, ad es. cargo-sym e bingrep sono semplici esempi di questo, ma il cielo è il limite.

Ecco alcune cose che potresti fare con questo crate (o aiutare a implementare in modo che possano essere realizzate):

  1. Scrivere un compilatore e usarlo per generare binari (tutte le strutture C grezze hanno Pwrite derivato).
  2. Scrivere uno strumento di analisi binaria che carica, analizza e analizza vari formati binari, ad es., panopticon o falcon.
  3. Scrivere un linker dinamico semi-funzionante.
  4. Scrivere un kernel e caricare binari usando la configurazione no_std. Cioè, è essenzialmente solo definizioni di struct e const (come un header C) - nessun fd, nessun output, nessun std.
  5. Scrivere uno strumento bin2json, perché i formati binari non dovrebbero essere in JSON?

Configurazioni

libgoblin è progettato per essere massicciamente configurabile. Le flag attuali sono:

  • elf64 - binari elf a 64 bit, definizioni di struct repr(C)
  • elf32 - binari elf a 32 bit, definizioni di struct repr(C)
  • mach64 - definizioni di struct repr(C) per mach-o a 64 bit
  • mach32 - definizioni di struct repr(C) per mach-o a 32 bit
  • pe32 - definizioni di struct repr(C) per PE a 32 bit
  • pe64 - definizioni di struct repr(C) per PE a 64 bit
  • te - definizioni di struct repr(C) per Terse Executable (TE)
  • archive - un parser di archivi Unix
  • endian_fd - analizza in base all'endianness nel binario
  • std - per permettere ambienti no_std

Manutentori

  1. PE: [@kkent030315]
  2. Elf: [@m4b], aperto a candidature
  3. Mach-o: [@m4b], aperto a candidature

I manutentori sono i revisori di primo contatto per quel particolare backend. Vengono scelti in base ai contributi precedenti, all'attività, alla conoscenza di base e al comportamento amichevole e socievole :D

Attualmente, io ([@m4b]) ho solo diritti di merge per tutte le PR. In futuro è probabile che anche i manutentori di quel determinato backend avranno diritti di merge.

Infine, probabilmente darò comunque revisioni sommarie a tutte le PR, ma mi affiderò principalmente/in toto al manutentore per quel backend.

E ricorda sempre la saggezza di Bill e Ted: "Siate eccellenti gli uni con gli altri!"

Collaboratori

Grazie a tutti ❤️ !

In ordine lessicografico:

  • [@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]
Scarica lo strumento