123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.Linq;
- using System.Runtime.InteropServices;
- using System.Text;
- using System.Threading.Tasks;
- namespace WechatPCMsgBakTool.Helpers
- {
- public class ProcessHelper
- {
- public static Process? GetProcess(string ProcessName)
- {
- Process[] processes = Process.GetProcessesByName(ProcessName);
- if (processes.Length == 0)
- return null;
- else
- return processes[0];
- }
- public static ProcessModule? FindProcessModule(int ProcessId, string ModuleName)
- {
- Process process = Process.GetProcessById(ProcessId);
- foreach (ProcessModule module in process.Modules)
- {
- if (module.ModuleName == ModuleName)
- return module;
- }
- return null;
- }
- public static byte[]? ReadMemoryDate(IntPtr hProcess, IntPtr lpBaseAddress, int nSize = 100)
- {
- byte[] array = new byte[nSize];
- if (ReadProcessMemory(hProcess, lpBaseAddress, array, nSize, 0) == 0)
- return null;
- else
- return array;
- }
- [DllImport("kernel32.dll")]
- public static extern int ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, int nSize, int lpNumberOfBytesRead);
- }
- }
|