This is the one I'm using.
Code:bool Memory( void * pDest, char * szPatch, size_t sSize ) { DWORD dwOrgProtect = NULL; if ( !VirtualProtect ( pDest, sSize, PAGE_EXECUTE_READWRITE, &dwOrgProtect )) return FALSE; memcpy( pDest, szPatch, sSize ); VirtualProtect( pDest, sSize, dwOrgProtect, NULL ); return TRUE; }