Wie kann ich den dem Programm mitteilen welchen Typen er kopieren soll? Die größe verändere ich ja dann einfach in create_string_buffer und in der rPM auf 4 bytes statt der bisherigen 64.
Wenn ich statt des create_string_buffer ein c_ulong() nehme scheint er mir nichts an die Addresse zu schreiben.
//
Okay habe jetzt
ADDRESS2 = ctypes.c_ulong(4) #denke mal größe wäre dann 4bytes
Apointer = ctypes.pointer(ADDRESS2)
Ist zwar "noch" nicht das Spiel Solitär doch das ist schon einmal ein kleiner Erfolg, wenn dann WriteProcessMemory wieder solche Probleme bereitet werde ich Windows verbannen
// Noch einer:
Ich habe jetzt meinen ersten
Trainer geschrieben, welcher lediglich eine Anzeige in einem Spiel verändert und dadurch etwas die Statistik manipuliert.
Vielen Dank an alle Hinweise, Anregungen, Hilfen und sonstige Einwürfe!
Code: Alles auswählen
import ctypes, win32ui, win32process
PROCESS_ALL_ACCESS = 0x1F0FFF
HWND = win32ui.FindWindow(None,"Soldat").GetSafeHwnd()
PID = win32process.GetWindowThreadProcessId(HWND)[1]
PROCESS = ctypes.windll.kernel32.OpenProcess(PROCESS_ALL_ACCESS,False,PID)
rPM = ctypes.windll.kernel32.ReadProcessMemory
wPM = ctypes.windll.kernel32.WriteProcessMemory
ADDRESS1 = 0x00B97D5C
ADDRESS2 = ctypes.c_ulong(4)
Apointer = ctypes.pointer(ADDRESS2)
rPM(PROCESS,ADDRESS1,Apointer,4,None)
print(ADDRESS2)
new = ctypes.c_ulong(55)
Bpointer = ctypes.pointer(new)
wPM(PROCESS,ADDRESS1,Bpointer,4,None)
print(ADDRESS2)
Was mich dennoch interessieren würde ist wieso das ganze nicht mit Solitär funktioniert, falls da jemand noch die ein oder andere Idee hat würde ich sie gerne erfahren
