Esempio n. 1
0
        /// <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));
        }
Esempio n. 2
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);
        }