
Obfusk8: biblioteca leve de ofuscação baseada em C++17 / Header Only para binários do Windows
Obfusk8 é uma biblioteca leve, somente de cabeçalho, em C++17, projetada para aprimorar significativamente a ofuscação de suas aplicações, tornando a engenharia reversa um desafio substancialmente maior. Ela alcança isso por meio de um conjunto diversificado de técnicas em tempo de compilação e execução, com o objetivo de proteger a lógica e os dados do seu código.

main (Macro _main)O ponto de entrada da sua aplicação (main) é transformado em um mecanismo de ofuscação complexo e multicamadas:
main_body seja executado, uma mini-VM (CPU simulada) executa uma sequência de instruções "criptografadas". Isso oculta o verdadeiro ponto de entrada e as operações iniciais. O estado da VM (registradores, contador de programa, chave de despacho) é inicializado com valores aleatórios em tempo de execução._main (tanto no prólogo quanto no epílogo) são transformados em máquinas de estado intricadas. O fluxo de controle não é direto, mas determinado por variáveis de estado fortemente "criptografadas". As chaves de codificação/decodificação dessas variáveis de estado são dinâmicas, derivadas do estado da VM, contadores de loop, aleatoriedade em tempo de compilação (como __COUNTER__, __LINE__, __TIME__) e uma semente opaca global. Isso torna a análise estática do fluxo de controle excepcionalmente difícil.
obf_icff_ns_dcff e obf_icff_ns_epd) são usados com lógica de transição de estado e geração de chaves diferentes, complicando ainda mais a análise.OBF_BOGUS_FLOW_*): Numerosos padrões de salto enganosos e estruturas condicionais convolutas são injetados ao longo de _main. Eles usam declarações goto combinadas com predicados opacos (condições que sempre avaliam para verdadeiro ou falso, mas são computacionalmente caras ou difíceis de determinar estaticamente). Isso cria um labirinto de caminhos falsos para desmontadores e decompiladores.
OBF_BOGUS_FLOW_LABYRINTH, OBF_BOGUS_FLOW_GRID, OBF_BOGUS_FLOW_SCRAMBLE, OBF_BOGUS_FLOW_WEAVER, OBF_BOGUS_FLOW_CASCADE e OBF_BOGUS_FLOW_CYCLONE para gerar fluxos falsos diversos e complexos.Runtime, SEH):
__except podem alterar o estado do programa, dificultando o acompanhamento se o depurador ignorar exceções.Runtime contém condições que, se atendidas (devido a estados específicos da VM ou temporização), podem acionar __debugbreak() ou lançar exceções, projetadas para atrapalhar sessões de depuração.obf_vm_engine)Um componente central da ofuscação da macro _main:
r0, r1, r2), um contador de programa (pc) e uma dispatch_key. Ela executa "instruções" personalizadas (handlers).reg_dispatch_idx).get_mem_dispatch_table).mixed_dispatch_idx).
A dispatch_key é constantemente mutada, tornando a sequência de handlers executados altamente imprevisível.vm_handler_table) é ela própria mutada em tempo de execução dentro do prólogo e epílogo de _main, obscurecendo ainda mais o comportamento da VM.OBFUSCATE_STRING de AES8.hpp)__FILE__, __LINE__) e tempo de compilação (__DATE__, __TIME__).AES8.hpp).STEALTH_API_OBFSTR / STEALTH_API_OBF de Resolve8.hpp)GetModuleHandle e GetProcAddress para a resolução inicial se elas próprias ainda não tiverem sido resolvidas por esse mecanismo.CT_HASH) de nomes de DLLs e APIs para buscas. Isso impede que nomes de DLLs e APIs em texto puro apareçam nos dados relacionados a importações ou nas tabelas de strings do binário ao usar essas macros.K8_SYSCALL)Obfusk8 agora integra um mecanismo de Syscall Indireto de última geração para contornar Hooks em Modo de Usuário (EDRs/AVs) e verificações de análise estática.
K8_SYSCALL("ZwOpenProcess", ...) em vez de NtOpenProcess.