def GetValueFromAddress(self, processHandle, address, isFloat=False, is64bit=False, isString=False):
if isString:
data = c.create_string_buffer(16)
bytesRead = c.c_ulonglong(16)
elif is64bit:
data = c.c_ulonglong()
bytesRead = c.c_ulonglong()
else:
data = c.c_ulong()
bytesRead = c.c_ulonglong(4)
successful = ReadProcessMemory(processHandle, address, c.byref(data), c.sizeof(data), c.byref(bytesRead))
if not successful:
e = GetLastError()
print("ReadProcessMemory Error: Code " + str(e))
self.ReacquireEverything()
value = data.value
if isFloat:
return struct.unpack("<f", value)[0]
elif isString:
try:
return value.decode('utf-8')
except:
print("ERROR: Couldn't decode string from memory")
return "ERROR"
else:
return int(value)
评论列表
文章目录