Solved.
String ReadUTF8String(IntPtr Address, IntPtr ProcHandle) {
int i = 0;
Byte buff = 255;
Byte[] Str;
int BytesRead;
for (i = 0; buff!=0; i++) // Counting till 0 (String Terminating Byte)
if (!ReadProcessMemory(ProcHandle, Adress+i, buff, 1, ref BytesRead))
break;
Str = new Byte[i]; // Create Array with the Size of the String
if (!ReadProcessMemory(ProcHandle, Adress, Str, Str.Length, ref BytesRead)) //Read the Buffer
return null;
return Encoding.UTF8.GetString(Str); // Return the Buffer as String
}
var mem = new Memory(123123) // process id var value = mem.Read<string>(0x2342342);