void* memcpy_s( void* pvAddress, const void* pvBuffer, size_t stLen ) { MEMORY_BASIC_INFORMATION mbi; VirtualQuery( ( void* )pvAddress, &mbi, sizeof( mbi ) ); VirtualProtect( mbi.BaseAddress, mbi.RegionSize, PAGE_EXECUTE_READWRITE, &mbi.Protect ); void* pvRetn = memcpy( ( void* )pvAddress, ( void* )pvBuffer, stLen ); VirtualProtect( mbi.BaseAddress, mbi.RegionSize, mbi.Protect, &mbi.Protect ); FlushInstructionCache( GetCurrentProcess( ), ( void* )pvAddress, stLen ); return pvRetn; }