Example #1
0
 public bool CloseProcess()
 {
     if (MemoryApi.CloseHandle(this.ProcessHwnd) == 0)
     {
         return(false);
     }
     this.ProcessToRead = new Process();
     this.ProcessHwnd   = IntPtr.Zero;
     return(true);
 }
Example #2
0
        public static bool SetDebugPrivileges()
        {
            IntPtr zero = IntPtr.Zero;

            MemoryApi.LUID luid = default(MemoryApi.LUID);
            luid.HighPart = 0;
            luid.LowPart  = 0u;
            MemoryApi.TOKEN_PRIVILEGES tOKEN_PRIVILEGES = default(MemoryApi.TOKEN_PRIVILEGES);

            IntPtr currentProcess = MemoryApi.GetCurrentProcess();

            if (!MemoryApi.OpenProcessToken(currentProcess, 40u, out zero))
            {
                return(false);
            }

            if (!MemoryApi.LookupPrivilegeValue("", "SeDebugPrivilege", out luid))
            {
                return(false);
            }

            tOKEN_PRIVILEGES.PrivilegeCount = 1u;
            tOKEN_PRIVILEGES.Luid           = luid;
            tOKEN_PRIVILEGES.Attributes     = 2u;

            return(MemoryApi.AdjustTokenPrivileges(zero, false, ref tOKEN_PRIVILEGES, 0u, IntPtr.Zero, IntPtr.Zero) && MemoryApi.CloseHandle(zero) != 0);
        }