
Uno strumento automatizzato di unpacking e correzione del dump per Themida / Code Virtualizer / WinLicense (v3.0-v4)
Un unpacker universale per binari protetti con Themida e uno strumento per la rimozione delle protezioni a runtime. Unthemidator NON esegue il binario, né chiama alcuna API o esegue syscall utilizzate dai binari di destinazione sulla macchina host.
Unthemidator funziona con tutti i tipi di binari Windows (dll, exe, sys e altri) sia nelle varianti x86 (32-bit) che x86_64 / amd64 (64-bit).
Dopo l'unpacking, viene eseguita una ricostruzione completa del PE, rendendo il binario estratto eseguibile e debuggabile.
Oltre all'unpacking e alla ricostruzione del PE, Unthemidator è in grado di identificare la versione delle macchine virtuali Themida / Code Virtualizer utilizzate nei binari.
È sufficiente trascinare un binario impacchettato su unthemidator oppure utilizzare il seguente comando CLI su Windows:
unthemidator.exe [options] {path_to_bin.exe|.dll|.sys|.bin}
e il seguente comando CLI su un sistema basato su Unix:
./unthemidator [options] {path_to_bin.exe|.dll|.sys|.bin}
Un PE sarà considerato un driver kernel solo se la sua estensione di file è .sys. Questo viene fatto per garantire la corretta analisi dei file con qualsiasi estensione come applicazioni usermode per impostazione predefinita. Senza contare che i driver kernel packati sono estremamente rari e possono essere eseguiti solo su sistemi non sicuri.
Di seguito è riportata una panoramica completa di tutte le opzioni di unthemidator.
--out-file - nome / percorso del file di output. Il valore predefinito è {program_name}.unpacked.{program_extension}--license-file - nome / percorso del file di licenza. Necessario per il corretto unpacking dei binari protetti da WinLicense.--imports-file - nome (o percorso) del file in cui salvare le informazioni sugli import. Deve essere JSON. Il valore predefinito è {program_name}.imports.json--vms-file - nome (o percorso) del file in cui salvare le informazioni sui punti di ingresso delle VM. Deve essere JSON. Il valore predefinito è {program_name}.vms.json--vm-depth - per la ricerca sulle macchine virtuali e il tracciamento delle istruzioni virtuali, quanti livelli di virtualizzazione devono essere eseguiti in single-step. Il valore predefinito è 0 - nessuna esplorazione della VM.--no-imp - salta la ricerca degli import--no-startup - salta l'elaborazione dell'avvio a runtime. Questo impedirà TUTTO l'unpacking tranne la fase di boot iniziale.--no-vm-lookup - salta la ricerca della macchina virtuale--no-loader - salta la generazione del loader anti-dump fixer. Questo potrebbe rendere il binario non eseguibile se l'OEP è virtualizzato o se sono presenti controlli di sicurezza per macroAlcuni binari si basano su moduli personalizzati forniti con il programma. Puoi semplicemente inserire tutti i moduli personalizzati
nella directory modules prima di eseguire l'unpacking di tali binari. Lo stesso può essere fatto per i moduli di sistema
mancanti, il che è utile se stai eseguendo unthemidator su un sistema Unix.
Se hai un problema o qualcosa non funziona come previsto (o non funziona affatto), crea una issue in questo repository.
Dai un'occhiata alla pagina Releases per trovare unthemidator precompilato. Attualmente sono disponibili le seguenti varianti:
Scopri di più sugli internals dell'offuscamento di Themida, incluse le sue macchine virtuali, nei seguenti articoli: