
Una herramienta automatizada de desempaquetado y corrección de volcados para Themida / Code Virtualizer / WinLicense (v3.0-v4)
Un desempacador universal para binarios protegidos con Themida y una herramienta de eliminación de protecciones en tiempo de ejecución. Unthemidator NO ejecuta el binario, ni llama a ninguna API ni ejecuta syscalls utilizadas por los binarios objetivo en la máquina anfitriona.
Unthemidator funciona con todo tipo de binarios de Windows (dll, exe, sys y otros) tanto en variantes x86 (32 bits) como x86_64 / amd64 (64 bits).
Tras el desempaquetado, se realiza una reconstrucción completa del PE, lo que hace que el binario desempaquetado sea ejecutable y depurable.
Además del desempaquetado y la reconstrucción del PE, Unthemidator puede identificar la versión de las máquinas virtuales Themida / Code Virtualizer utilizadas en los binarios.
Simplemente arrastra y suelta un binario empaquetado sobre unthemidator o utiliza el siguiente comando CLI en Windows:
unthemidator.exe [options] {path_to_bin.exe|.dll|.sys|.bin}
y el siguiente comando CLI en un sistema basado en Unix:
./unthemidator [options] {path_to_bin.exe|.dll|.sys|.bin}
Un PE solo se considerará un controlador de kernel si su extensión de archivo es .sys. Esto se hace para garantizar el análisis correcto de archivos con cualquier extensión como aplicaciones de modo usuario por defecto. Sin mencionar que los controladores de kernel empaquetados son extremadamente raros y solo pueden ejecutarse en sistemas inseguros.
A continuación se muestra una descripción completa de todas las opciones de unthemidator.
--out-file - nombre / ruta del archivo de salida. Por defecto es {program_name}.unpacked.{program_extension}--license-file - nombre / ruta del archivo de licencia. Requerido para el desempaquetado exitoso de binarios protegidos con WinLicense.--imports-file - nombre (o ruta) del archivo donde guardar la información sobre las importaciones. Debe ser JSON. Por defecto es {program_name}.imports.json--vms-file - nombre (o ruta) del archivo donde guardar la información sobre los puntos de entrada de VM. Debe ser JSON. Por defecto es {program_name}.vms.json--vm-depth - para la investigación de máquinas virtuales y el trazado de instrucciones virtuales, cuántas capas de virtualización deben ejecutarse paso a paso. Por defecto es 0 - sin exploración de VM.--no-imp - omitir la búsqueda de importaciones--no-startup - omitir el procesamiento de inicio en tiempo de ejecución. Esto impedirá TODO el desempaquetado excepto la etapa de arranque inicial.--no-vm-lookup - omitir la búsqueda de máquinas virtuales--no-loader - omitir la generación del cargador anti-dump fixer. Esto puede hacer que el binario no sea ejecutable si el OEP está virtualizado o si existen comprobaciones de seguridad por macroAlgunos binarios dependen de módulos personalizados que se distribuyen con el programa. Simplemente puedes colocar todos los módulos personalizados
en el directorio modules antes de desempaquetar dichos binarios. Lo mismo se puede hacer con los módulos del sistema
faltantes, lo cual es útil si estás ejecutando unthemidator en un sistema Unix.
Si tienes un problema o algo no funciona como debería (o no funciona en absoluto), crea un issue en este repositorio.
Consulta la página de Releases para encontrar unthemidator precompilado. Actualmente, están disponibles las siguientes variantes:
Aprende más sobre las interioridades de la ofuscación de Themida, incluidas sus máquinas virtuales, en los siguientes artículos:
¿Quieres conversar sobre desofuscación o ingeniería inversa?