
Extrae y descifra las cargas útiles internas de muestras del ofuscador Donut mediante la detección de firmas de shellcode del cargador, el análisis de la estructura DONUT_INSTANCE y el volcado de datos de DONUT_MODULE.
Un extractor de configuración y módulos para el ofuscador de binarios donut
donut-decryptor comprueba archivos en busca de firmas conocidas del shellcode del cargador del ofuscador donut. Si las localiza, analizará el shellcode para localizar, descifrar y extraer la estructura DONUT_INSTANCE incrustada en el binario, y reportará los datos de configuración pertinentes. Si hay un DONUT_MODULE presente en el binario, se descifra y se vuelca a disco.
Puedes instalar donut-decryptor para su uso navegando al directorio raíz del proyecto y usando pip:
cd /path/to/donut-decryptor
python -m pip install .
Tras la instalación, hay disponible un script de línea de comandos. Para obtener instrucciones de uso, utiliza:
donut-decryptor --help
Este proyecto utiliza Hatch para la gestión del proyecto, Ruff para linting y formateo, y mypy para la comprobación de tipos.
Instala 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
Los archivos presentes en el directorio samples son archivos 7z protegidos con contraseña usando la contraseña infected, todos los cuales contienen donuts que pueden ser decodificados usando este script.