Arbeitsspeicher durchsuchen.



  • Hi,
    ich hab eine Frage an euch 🙂

    Wie durchsuche ich den Arbeitsspeicher eines bestimmten Programms nach
    bestimmten Werten?
    Mein Ansatz würde ungefähr so aussehen:
    Eine int/byte/etc. Variable erstellen,dann in einer Schleife die Adresse auf die
    die Varibale zeigt immer um 1(char)/4(int) etc. erhöhen.
    Mein Problem hierbei:
    Wo fängt der Arbeitsspeicher an?Und wo hört er auf?
    Und was bedeutet eigentlich dieses "Offset"? 😃
    Lieg ich recht in der Annahme das jedes Programm einen Wert zugewiesen
    bekommt,der dann
    zusammen mit dem Offset die Adresse ergibt?
    Wenn ja:
    Wie bekomm ich den anderen Teil raus?
    Und wie kann ich einer Variable auch den anderen Teil zuweisen?
    Und von wo bis wo geht der Offset?

    Vielen Dank im voraus,
    RAM



  • Nein so funktioniert das nicht. Jedes Programm hat seinen eigenen virtuellen 4 GB Addressraum. So ohne weiteres kannst du nicht den Speicher eines anderen Prozesses auslesen oder manipulieren. Du könntest dich in einen anderen Prozess mit einer DLL einklinken...oder schau dir mal die Virtual* Funktionen in der MSDN an. Vielleicht geht es damit auch.

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/memory/base/memory_management_functions.asp



  • Den Speicher eines anderen Prozesses kannst Du einfach mittels

    ReadProcessMemory

    auslesen.


Anmelden zum Antworten