
Estrae e decifra i payload interni dai campioni dell'offuscatore Donut rilevando le firme dello shellcode del loader, analizzando la struttura DONUT_INSTANCE ed estraendo i dati DONUT_MODULE.
Un estrattore di configurazione e moduli per l'offuscatore binario donut
donut-decryptor controlla i file per le firme note dello shellcode del loader dell'offuscatore donut. Se individuato, analizza lo shellcode per localizzare, decifrare ed estrarre la struttura DONUT_INSTANCE incorporata nel binario, e riporta i dati di configurazione pertinenti. Se nel binario è presente un DONUT_MODULE, questo viene decifrato e salvato su disco.
Puoi installare donut-decryptor per l'utilizzo navigando nella directory principale del progetto e usando pip:
cd /path/to/donut-decryptor
python -m pip install .
Dopo l'installazione, è disponibile uno script da riga di comando. Per le istruzioni d'uso utilizza:
donut-decryptor --help
Questo progetto utilizza Hatch per la gestione del progetto, Ruff per il linting e la formattazione, e mypy per il controllo dei tipi.
Installa Hatch:
pip install hatch
hatch run test
hatch run test-cov # with coverage
hatch run lint:style # check style
hatch run lint:fmt # format code and fix issues
hatch run lint:typing # run mypy type checking
hatch run lint:all # run all checks
I file presenti nella directory samples sono file 7z protetti da password utilizzando la password infected, tutti contenenti donut che possono essere decodificati usando questo script.