[DllImport("kernel32.dll")] public static extern bool VirtualProtectEx( IntPtr hProcess, uint dwAddress, //IntPtr lpAddress, int nSize, //UIntPtr dwSize, uint flNewProtect, out uint lpflOldProtect); public enum Protection : uint { PAGE_NOACCESS = 0x01, PAGE_READONLY = 0x02, PAGE_READWRITE = 0x04, PAGE_WRITECOPY = 0x08, PAGE_EXECUTE = 0x10, PAGE_EXECUTE_READ = 0x20, PAGE_EXECUTE_READWRITE = 0x40, PAGE_EXECUTE_WRITECOPY = 0x80, PAGE_GUARD = 0x100, PAGE_NOCACHE = 0x200, PAGE_WRITECOMBINE = 0x400 } public static bool WriteProtectedMemory(IntPtr hProcess, uint dwAddress, int dwSize, uint flNewProtect, uint lpflOldProtect) { if (!VirtualProtectEx(hProcess, dwAddress, dwSize, flNewProtect, out lpflOldProtect)) return true; return false; } public static bool WriteProtected(uint dwAddress, int dwSize, uint flNewProtect, uint lpflOldProtect) { return WriteProtectedMemory(Memory.BlackMagic.ProcessHandle, dwAddress, dwSize, flNewProtect, lpflOldProtect); }