Python WriteProcessMemory Strings
Hey, so my WriteProcessMemory thingy is working fine, but only for integers. I used ctypes documentation to make it write to strings aswell but it doesnt really work.
(First one is the actual WriteProcessMemory for integers)
def WriteProcessMemory(self, hProcess, lpBaseAddress, Value):
try:
lpBaseAddress = lpBaseAddress
Value = Value
WriteBuffer = ctypes.c_uint(Value)
lpBuffer = ctypes.byref(WriteBuffer)
nSize = ctypes.sizeof(WriteBuffer)
lpNumberOfBytesWritten = ctypes.c_ulong(0)
ctypes.windll.kernel32.WriteProcessMemory(
hProcess,
lpBaseAddress,
lpBuffer,
nSize,
lpNumberOfBytesWritten
)
except (BufferError, ValueError, TypeError):
self.CloseHandle(hProcess)
e = 'Handle Closed, Error', hProcess, self.GetLastError()
return e
def WriteProcessMemoryString(self, hProcess, lpBaseAddress, Value):
try:
lpBaseAddress = lpBaseAddress
Value = Value
WriteBuffer = ctypes.c_wchar_p(Value)
lpBuffer = ctypes.byref(WriteBuffer)
nSize = ctypes.sizeof(WriteBuffer)
lpNumberOfBytesWritten = ctypes.c_ulong(nSize)
ctypes.windll.kernel32.WriteProcessMemory(
hProcess,
lpBaseAddress,
lpBuffer,
nSize,
lpNumberOfBytesWritten
)
except (BufferError, ValueError, TypeError):
self.CloseHandle(hProcess)
e = 'Handle Closed, Error', hProcess, self.GetLastError()
return e