Ejemplo n.º 1
0
        public bool closeProcess()
        {
            bool result = ProcessMemory.CloseHandle(this.processHandle);

            this.processHandle = 0u;
            return(result);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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);
                }
            }
        }