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

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.
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
'/.+/' 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.chardet è una libreria sofisticata per indovinare le codifiche dei caratteri e viene sfruttata qui.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.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 sapesse[^1], è 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:
\".+\" e \'.+\')/.+/). 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.
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.
pipx install yaralyzer
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.
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.
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: