Originally Posted by
Nik0815
Thanks this will help
But how I can do this?
So?
ReadProcessMemory(bla, bla, bla);
...
// Add ofsset
WriteProcessMemory(bla, bla, bla);
how to add it(offset)?
Oh you mean so
// Read pointer
return (IntPtr)(BitConverter.ToInt32(memory, 0) + Offset);
You'd loop each offset and keep reading the pointers. Heres some pseudo code on what you'd do:
Code:
var baseAddress = new IntPtr(0x12345678);
var offsetList = new int[] { 0x12, 0x22, 0x033, 0x44, 0x55, 0x67 };
var buffer = new byte[4];
var lpOutStorage = IntPtr.Zero;
// Read the base pointer..
ReadProcessMemory( process.Handle, baseAddress, buffer, (uint)buffer.Length, ref lpOutStorage );
// Loop each offset and read the pointers..
for (int x = 0; x < offsetList.Length - 1; x++)
{
baseAddress = BitConverter.ToInt32(buffer, 0) + offsetList[x];
ReadProcessMemory( process.Handle, baseAddress, buffer, (uint)buffer.Length, ref lpOutStorage );
}
// Read the last pointer+offset as the main value..
var valueBuffer = new byte[255];
baseAddress = BitConverter.ToInt32(btBuffer, 0) + offsetList[offsetList.Length - 1];
ReadProcessMemory( process.Handle, baseAddress, valueBuffer, (uint)valueBuffer.Length, ref lpOutStorage );