Example #1
0
        public void Write(IntPtr address, byte[] buffer, out int bytesWritten)
        {
            IntPtr lpBytesWritten;

            MemoryAPI.WriteProcessMemory(m_hProcess, address, buffer, (uint)buffer.Length, out lpBytesWritten);
            bytesWritten = lpBytesWritten.ToInt32();
        }
Example #2
0
        public int PointerWrite(IntPtr address, byte[] writeBuffer, int[] offset, out int bytesWritten)
        {
            int    pointerCount = offset.Length - 1;
            IntPtr lpBytesWritten;

            bytesWritten = 0;
            byte[] buffer      = new byte[4];
            int    tempAddress = 0;

            if (pointerCount == 0)
            {
                MemoryAPI.ReadProcessMemory(m_hProcess, address, buffer, 4, out lpBytesWritten);
                tempAddress = Address.ToDecimal(Address.Make(buffer)) + offset[0];
                MemoryAPI.WriteProcessMemory(m_hProcess, (IntPtr)tempAddress, writeBuffer, (uint)writeBuffer.Length, out lpBytesWritten);

                bytesWritten = lpBytesWritten.ToInt32();
                return(tempAddress);
            }

            for (int i = 0; i <= pointerCount; i++)
            {
                if (i == pointerCount)
                {
                    MemoryAPI.ReadProcessMemory(m_hProcess, (IntPtr)tempAddress, buffer, 4, out lpBytesWritten);
                    tempAddress = Address.ToDecimal(Address.Make(buffer)) + offset[i];
                    MemoryAPI.WriteProcessMemory(m_hProcess, (IntPtr)tempAddress, writeBuffer, (uint)writeBuffer.Length, out lpBytesWritten);

                    bytesWritten = lpBytesWritten.ToInt32();
                    return(tempAddress);
                }
                else if (i == 0)
                {
                    MemoryAPI.ReadProcessMemory(m_hProcess, address, buffer, 4, out lpBytesWritten);
                    tempAddress = Address.ToDecimal(Address.Make(buffer)) + offset[i];
                }
                else
                {
                    MemoryAPI.ReadProcessMemory(m_hProcess, (IntPtr)address, buffer, 4, out lpBytesWritten);
                    tempAddress = Address.ToDecimal(Address.Make(buffer)) + offset[i];
                }
            }
            return(tempAddress);
        }