Ich muss die Basisadresse/Einsprungadresse einer .exe, die eine zufällige Basisadresse hat jedes Mal, wenn es gestartet ist. Das Programm verwendet ASLR.
...
Ich werde es bestimmte Stücke von Speicher in der richtigen Prozess
Um Daten in einem anderen Prozess bearbeiten verwenden, zu schreiben, müssen Sie WriteProcessMemory()
, verwenden, die Sie erfordert Öffnen Sie eine HANDLE
für den Prozess, in den geschrieben wird.
Sie erhalten diese HANDLE
mit OpenProcess()
, fordern PROCESS_VM_OPERATION
und PROCESS_VM_WRITE
Berechtigungen. OpenProcess()
nimmt eine Prozess-ID als Eingabe, die Sie von bekommen:
Siehe Process Enumeration und Enumerating All Processes.
Zu keinem Zeitpunkt müssen Sie die Basisadresse des Prozesses ermitteln, in den geschrieben wird. Lassen Sie das System diese Informationen für Sie im Auge behalten. Alles, was Sie brauchen, ist die offene HANDLE
für den Prozess.
Ich denke, ich nicht? – Customality
Die Methode ist in meinem Test korrekt. Könnten Sie Ihren gesamten Code einfügen? Oder versuchen Sie, die Basisadresse eines anderen Prozesses zu erhalten? –
Warum sollte "GetModuleHandle" angeblich das tun, was Sie wollen? –