public bool closeProcess() { bool result = ProcessMemory.CloseHandle(this.processHandle); this.processHandle = 0u; return(result); }
public byte[] readMemory(uint address, uint size) { byte[] array = new byte[size]; int num; ProcessMemory.ReadProcessMemory(this.processHandle, address, array, size, out num); return(array); }
public bool openProcess(string pName) { Process[] processesByName = Process.GetProcessesByName(pName); if (processesByName.Length == 0) { return(false); } Process process = processesByName[0]; this.processHandle = ProcessMemory.OpenProcess(2035711u, false, process.Id); return(true); }
public string GetProcessPath() { int num = 1024; System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder(num); ProcessMemory.QueryFullProcessImageName((System.IntPtr)((long)((ulong)this.processHandle)), 0, stringBuilder, ref num); try { stringBuilder.ToString(0, num); } catch { return(null); } return(stringBuilder.ToString(0, num)); }
public void recordMemorysInfo() { this.memorySnapshot = new System.Collections.Generic.List <ProcessMemory.MEMORY_BASIC_INFORMATION>(); uint num = 1u; while (num != 0u) { ProcessMemory.MEMORY_BASIC_INFORMATION item = default(ProcessMemory.MEMORY_BASIC_INFORMATION); ProcessMemory.VirtualQueryEx(this.processHandle, num, ref item, (uint)System.Runtime.InteropServices.Marshal.SizeOf(typeof(ProcessMemory.MEMORY_BASIC_INFORMATION))); uint num2 = num; num = item.BaseAddress + item.RegionSize; if (num < num2) { return; } if (item.AllocationProtect == ProcessMemory.AllocationProtect.PAGE_READWRITE && item.Type == ProcessMemory.MemoryType.MEM_PRIVATE && item.State == ProcessMemory.MemoryState.MEM_COMMIT) { this.memorySnapshot.Add(item); } } }