/// <summary> /// Читает из памяти Double по указанному адресу. /// </summary> /// <param name="address"></param> /// <returns></returns> public static Double ReadDouble(Int32 address) { int read; var buffer = new byte[8]; WinApi.ReadProcessMemory(OpenProcessHandle, address, buffer, buffer.Length, out read); return(BitConverter.ToDouble(buffer, 0)); }
/// <summary> /// Читает из памяти String по указанному адресу с заданной длиной. /// </summary> /// <param name="address"></param> /// <param name="length"></param> /// <returns></returns> public static String ReadString(Int32 address, Int32 length) { int read; var buffer = new byte[length]; WinApi.ReadProcessMemory(OpenProcessHandle, address, buffer, length, out read); var enc = new UnicodeEncoding(); var rtnStr = enc.GetString(buffer); return((rtnStr.IndexOf('\0') != -1) ? rtnStr.Substring(0, rtnStr.IndexOf('\0')) : rtnStr); }