Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
yaralyzer — Ispeziona visivamente e forza la decodifica delle corrispondenze YARA e regex trovate in dati binari e di testo con colori. Moltissimi colori. | Kitploit
Strumenti/GitHubGitHub/michelcrypt4d4mus/yaralyzer
Reverse EngineeringInformatica ForenseAnalisi MalwareAnalisi di Binari
GitHubmichelcrypt4d4mus/yaralyzer

yaralyzer

Ispeziona visivamente e forza la decodifica delle corrispondenze YARA e regex trovate in dati binari e di testo con colori. Moltissimi colori.

Vedi Repository
152156 mesi 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

GithubRelease Release Downloads Tests Python Version

IL YARALYZER

Corrispondenza YARA

Ispeziona visivamente tutte le corrispondenze regex (e i loro cugini più intriganti e misteriosi, le corrispondenze YARA) trovate in dati binari e/o testo. Scopri cosa succede quando forzi varie codifiche di caratteri su quei byte corrispondenti. A colori.

Avvio rapido

root@kitploit:~
pipx install yaralyzer

# Scansiona con definizioni YARA da un file:
yaralyze --yara-rules /secret/vault/sigmunds_malware_rules.yara lacan_buys_the_dip.pdf

# Scansiona con un'espressione regolare arbitraria:
yaralyze --regex-pattern 'good and evil.*of\s+\w+byte' --regex-modifier wide the_crypto_archipelago.exe

# Scansiona con un pattern YARA esadecimale arbitrario:
yaralyze --hex-pattern 'd0 93 d0 a3 d0 [-] 9b d0 90 d0 93' one_day_in_the_life_of_ivan_cryptosovich.bin

Cosa fa

  1. Vedi i byte effettivi che le tue regole YARA stanno matchando. Niente più scavi copia/incollando le posizioni di inizio riportate da YARA nel tuo editor esadecimale preferito. Mostra sia i byte matchati da YARA che un numero configurabile di byte prima e dopo ogni corrispondenza in esadecimale e nella rappresentazione "raw" della stringa Python.
  2. Fai lo stesso per pattern di byte ed espressioni regolari senza scrivere un file YARA. Se sei troppo pigro per scrivere un file YARA ma stai cercando di determinare, ad esempio, se c'è un'espressione regolare nascosta da qualche parte nel file, puoi cercare il pattern '/.+/' e ottenere immediatamente una finestra su tutti i byte del file che si trovano tra barre oblique. Stessa storia per virgolette, BOM, ecc. Qualsiasi regex gestibile da YARA è supportata, quindi il cielo è il limite.
  3. Rileva le possibili codifiche di ciascun insieme di byte matchati. chardet è una libreria sofisticata per indovinare le codifiche dei caratteri e viene sfruttata qui.
  4. Mostra il risultato della forzatura di varie codifiche di caratteri sulle aree matchate. Verranno tentate forzatamente diverse codifiche predefinite nella regione attorno alla corrispondenza. chardet verrà anche sfruttato per vedere se i byte corrispondono al pattern di qualsiasi codifica conosciuta. Se chardet è abbastanza confidente (configurabile), verrà visualizzato un tentativo di decodifica dei byte usando quella codifica.
  5. Esporta le regioni matchate/decodifiche in file SVG, HTML e testo colorato. Metti in mostra la tua arte ASCII.

Perché lo fa

La funzionalità di Yaralyzer è stata estratta da The Pdfalyzer quando è diventato evidente che visualizzare e decodificare pattern match nei binari avesse più utilità che solo in uno strumento di analisi PDF.

YARA, per chi non lo sapesse1, è presentato come uno strumento di analisi/alerting malware, ma in realtà è sia molto di più che molto di meno. Un modo per pensarci è che YARA è un motore di matching di espressioni regolari potenziato. Può localizzare corrispondenze regex in binari come qualsiasi motore regex, ma può anche fare cose molto più strane, come combinare regex in gruppi logici, confrontare regex con tutte le 256 versioni XORate di un binario, cercare codifiche base64 e altre codifiche del pattern, e altro ancora. Forse la cosa più importante è che YARA fornisce un formato testuale standard per condividere queste regex potenziate con il mondo. Tutte queste funzionalità sono particolarmente utili quando si analizza o si fa reverse engineering di malware, i cui autori tendono a investire molto tempo per rendere le cose difficili da trovare.

Ma... è anche tutto ciò che YARA fa. Tutto il resto è a carico dell'utente. YARA è solo un motore di match e se non sai cosa matchare (o nemmeno quale codifica di caratteri potresti essere in grado di matchare), ti porta solo fino a un certo punto. Mi sono trovato un po' frustrato cercando di usare YARA per osservare tutte le corrispondenze di alcuni pattern critici:

  1. Byte tra virgolette escape (\".+\" e \'.+\')
  2. Byte tra barre oblique (/.+/). Le barre oblique delimitano un'espressione regolare in molte implementazioni e stavo cercando di vedere se alcuni dei byte che matchavano questo pattern fossero effettivamente regex.

YARA ti dice solo la posizione del byte e la stringa matchata, ma non può dirti se quei byte sono UTF-8, UTF-16, Latin-1, ecc. ecc. (o nessuno di questi). Volevo anche capire cosa stava succedendo nella regione dei byte matchati e non solo nei byte matchati. In altre parole, volevo esaminare i byte immediatamente prima e dopo qualsiasi cosa fosse stata matchata.

Ecco che arriva The Yaralyzer, che ti permette di scansionare rapidamente le regioni attorno ai match, mostrandoti anche come apparirebbero quelle regioni se fossero forzate in varie codifiche di caratteri.

The Yaralyzer non è uno strumento di reverse engineering di malware. Non può fare le cose che fa uno strumento come CyberChef e non ci prova. È più pensato per darti una rapida panoramica visiva delle regioni sospette nel binario in modo che tu possa concentrarti sulle aree che potresti voler ispezionare con uno strumento più serio.

Installazione

Installalo con pipx o pip3. pipx è una soluzione leggermente migliore in quanto garantisce che qualsiasi pacchetto installato con esso sia isolato dal resto del tuo ambiente Python locale. Ovviamente, se non hai un vero ambiente Python locale, questo punto è irrilevante e puoi tranquillamente installare con pip/pip3.

root@kitploit:~
pipx install yaralyzer

Utilizzo

Esegui yaralyze -h per vedere le opzioni della riga di comando (screenshot sotto).

Per informazioni sull'esportazione di immagini SVG, HTML, ecc., vedi Output di esempio.

Configurazione

Se inserisci un file chiamato .yaralyzer nella tua home directory o nella directory di lavoro corrente, le variabili d'ambiente specificate in quel file .yaralyzer verranno aggiunte all'ambiente ogni volta che yaralyzer viene invocato. Ciò fornisce un meccanismo per configurare permanentemente varie opzioni della riga di comando in modo da evitare di doverle digitare ripetutamente. Vedi i commenti nel file di esempio .yaralyzer.example per maggiori informazioni.

Verrà caricato un solo file .yaralyzer e il .yaralyzer della directory di lavoro ha la precedenza su quello della home directory.

Come libreria

Yaralyzer è la classe principale. La documentazione generata automaticamente per le varie classi e metodi di Yaralyzer può essere trovata qui. Ha una varietà di costruttori alternativi che supportano:

  1. Regole YARA precompilate
  2. Creazione di una regola YARA da una stringa
  3. Caricamento di regole YARA da file
  4. Caricamento di regole YARA da tutti i file .yara in una directory
  5. Scansione di bytes
  6. Scansione di un file

Se desideri iterare sugli oggetti BytesMatch (come un oggetto re.Match per una corrispondenza YARA) e BytesDecoder (tiene traccia delle statistiche dei tentativi di decodifica) usati da The Yaralyzer, puoi farlo in questo modo:

root@kitploit:~
from yaralyzer.yaralyzer import Yaralyzer

yaralyzer = Yaralyzer.for_rules_files(['/secret/rule.yara'], 'lacan_buys_the_dip.pdf')

for bytes_match, bytes_decoder in yaralyzer.match_iterator():
    do_stuff()

Risoluzione dei problemi

Se ottieni un yara.Error con un codice di errore numerico, puoi controllare cosa potrebbe significare quel codice qui.

Output di esempio

The Yaralyzer può esportare visualizzazioni in HTML, testo ANSI colorato e immagini vettoriali PNG e SVG utilizzando la funzionalità di esportazione file fornita da Rich, oltre a un formato JSON testuale semplice (alquanto limitato).

Se vuoi esportare immagini .png come quelle qui sotto direttamente da Yaralyzer, devi fare una di queste cose:

  1. Installare Inkscape (gli utenti homebrew possono installarlo con brew install --cask inkscape)
  2. Richiedere il pacchetto img extra quando installi Yaralyzer, che installerà cairosvg: pipx install yaralyzer[img]. Dovrai anche installare manualmente l'eseguibile CairoSVG in modi diversi a seconda del tuo sistema operativo, vedi la documentazione di CairoSVG per i dettagli.

Secondo la nostra esperienza, sia Inkscape che CairoSVG funzionano, anche se abbiamo visto alcuni problemi di rendering nell'output generato con CairoSVG sulle SVG renderizzate da Yaralyzer, quindi Inkscape è l'opzione consigliata.

Risultato grezzo di una corrispondenza YARA:

Mostra esadecimale, stringa Python raw e varie decodifiche tentate sia del match che dei byte prima e dopo il match (configurabile):

Bonus: guarda cosa pensa chardet.detect() sulla probabilità che i tuoi byte siano in una data codifica/lingua:

Contribuire

I contributi sono più che benvenuti; consulta CONTRIBUTING.md per i dettagli sulla configurazione dell'ambiente, l'esecuzione della suite di test, ecc. C'è anche un elenco TODO lì sopra del lavoro che deve essere fatto.

Footnotes

  1. Come lo ero fino a poco tempo fa. ↩

Scarica lo strumento