
Obfusk8: biblioteca de ofuscación ligera basada en C++17 / Header Only para binarios de Windows
Obfusk8 es una biblioteca ligera de solo cabecera (header-only) para C++17, diseñada para mejorar significativamente la ofuscación de tus aplicaciones, haciendo que la ingeniería inversa sea una tarea sustancialmente más difícil. Lo consigue mediante un conjunto diverso de técnicas de tiempo de compilación y de ejecución orientadas a proteger la lógica y los datos de tu código.

main (macro _main)El punto de entrada de tu aplicación (main) se transforma en un motor de ofuscación complejo y multicapa:
main_body, una mini-VM (CPU simulada) ejecuta una secuencia de instrucciones "cifradas". Esto oculta el verdadero punto de entrada y las operaciones iniciales. El estado de la VM (registros, contador de programa, clave de despacho) se inicializa con valores aleatorizados en tiempo de ejecución._main (tanto en el prólogo como en el epílogo) se transforman en intrincadas máquinas de estado. El flujo de control no es directo, sino que está determinado por variables de estado fuertemente "cifradas". Las claves de codificación/decodificación de estas variables de estado son dinámicas y se derivan del estado de la VM, contadores de bucle, aleatoriedad de tiempo de compilación (como __COUNTER__, __LINE__, __TIME__) y una semilla opaca global. Esto dificulta enormemente el análisis estático del flujo de control.
obf_icff_ns_dcff y obf_icff_ns_epd) con diferente lógica de transición de estados y generación de claves, lo que complica aún más el análisis.OBF_BOGUS_FLOW_*): Se inyectan numerosos patrones de salto engañosos y estructuras condicionales enrevesadas a lo largo de _main. Utilizan sentencias goto combinadas con predicados opacos (condiciones que siempre se evalúan como verdaderas o falsas, pero que son computacionalmente costosas o difíciles de determinar estáticamente). Esto crea un laberinto de rutas falsas para desensambladores y descompiladores.
OBF_BOGUS_FLOW_LABYRINTH, OBF_BOGUS_FLOW_GRID, OBF_BOGUS_FLOW_SCRAMBLE, OBF_BOGUS_FLOW_WEAVER, OBF_BOGUS_FLOW_CASCADE y OBF_BOGUS_FLOW_CYCLONE para generar flujos falsos diversos y complejos.Runtime, SEH):
__except pueden alterar el estado del programa, lo que dificulta el seguimiento si el depurador omite las excepciones.Runtime contiene condiciones que, si se cumplen (debido a estados o temporización específicos de la VM), podrían activar __debugbreak() o lanzar excepciones, diseñadas para interrumpir las sesiones de depuración.obf_vm_engine)Un componente central de la ofuscación de la macro _main:
r0, r1, r2), un contador de programa (pc) y una dispatch_key. Ejecuta "instrucciones" (handlers) personalizadas.reg_dispatch_idx).get_mem_dispatch_table).mixed_dispatch_idx).
La dispatch_key se muta constantemente, haciendo que la secuencia de handlers ejecutados sea altamente impredecible.vm_handler_table) se muta en tiempo de ejecución dentro del prólogo y el epílogo de _main, oscureciendo aún más el comportamiento de la VM.OBFUSCATE_STRING de AES8.hpp)__FILE__, __LINE__) y el momento de compilación (__DATE__, __TIME__).AES8.hpp).STEALTH_API_OBFSTR / STEALTH_API_OBF de Resolve8.hpp)GetModuleHandle y GetProcAddress estándar para la resolución inicial si estas aún no han sido resueltas por este mecanismo.CT_HASH) de nombres de DLL y API para las búsquedas. Esto evita que los nombres en texto plano de DLL y API aparezcan en los datos relacionados con importaciones o en las tablas de cadenas del binario cuando se utilizan estas macros.