SecurityWrapper { Start( ) // Dispatch security thread to periodically check for blacklisted processes. Patch( ) // Bytepatch often abused functions to call ExitProcess directly. Check( ) // Check if dummy functions have been bytepatched (OpenProcess, WriteProcessMemory, VirtualQuery) } RemoteCodeParameters { m_dwEndScene m_dwEndSceneOrig //m_dwImportCode m_dwEntryPoint m_dwCheatHeader m_dwVirtualProtect } RemoteCodeServer { Start( RemoteCodeParameters *Parameters ) GetBytes( ) } RemoteCodeClient { Start( ByteArray &RemoteCode ) Dispatch( ) } RemoteInjectionServer { Start( ByteArray &DllData ) ProcessRelocation( uint32_t RemoteAddress ) ProcessHeader( RemoteHeader *Header ) GetBytes( ) } RemoteInjectionClient { Start( RemoteProcess &Process ) AllocateMap( uint32_t SizeOfImage ) WriteToMap( ByteArray &Data ) }