Erregenden-Speicher von einem anderen Prozess
-
21-09-2019 - |
Frage
in Windows, kann sagen, ich gebraucht DLL Injection habe in einen anderen Prozess zu bekommen. Ich habe auch einige Screencaptures des Speichers auf dem Prozess, den ich in und kennen die Position der Daten injiziert haben getan, was ich will herausziehen. Sagen wir es Daten in dem anderen Prozess bei 0xAAAAAAAA ist, die einen bestimmten Wert enthält. Wie kann ich von diesem Prozess diesen Wert greifen, damit ich es in meiner Injektion App verwenden kann? Da ich in den Prozess injiziert bin, kann ich nur so etwas wie memcpy verwenden?
memcpy(value, 0xaaaaaaaa, 10);
Ich bin es wahrscheinlich mehr beteiligt als dies unter der Annahme?
EDIT:. Zu den Antworten unten, ich sehe nicht, wie WM_COPYDATA mir hilft, wie es für das Senden von Daten an einem anderen Anwendung ist, nicht für Daten aus einer bestehenden Anwendung abrufen
Lösung
Sie sollten verwendet werden können, die Readprocessmemory Funktion.
Andere Tipps
In Windows jeder Prozess richtet sich mit seinem eigenen Speicher. Das heißt, man kann nicht so etwas wie memcpy tut mit zwei Zeigern, dass Punkt in dem Speicher von zwei verschiedenen Prozessen.
Sie können jede Option von Interprozess-Kommunikation betrachten. Memory-Mapped-Dateien, Steckdosen, Named Pipes, Ereignisfenstermeldungen
Hier ist mehr Informationen über IPC
Versuchen Sie WM_COPYDATA und nehmen Sie die Hilfe von MSDN, um es gehört.
Die folgenden IPC-Mechanismen unterstützt werden von Windows:
Zwischenablage
COM
Data Copy
DDE
File Mapping
Mailslots
Pipes
RPC
Windows Sockets
Weitere Informationen finden Sie hier: Interprozesskommunikation
in Ihrem Fall würde ich WM_COPYDATA Nachricht