RAM-Inhalte erkunden

RAM-Inhalte erkunden

Ich verwende einRedisDatenbank und möchte den Inhalt des von der Anwendung verwendeten RAM untersuchen.

Ich denke, dass die Erklärung, warum ich das tun möchte, sinnvoller ist als die Frage, die ich stellen würde.

Redis ist ein einfacher Schlüsselwertspeicher, der binäre Daten speichert. Ich denke, es wäre ein guter Ort, um Dinge wie Kodierung zu erkunden, und es wäre für mich interessant, Dinge wie das Durchsuchen des RAM nach binären Datensätzen zu tun, Dinge wie das Suchen nach einfachen Mustern zu tun; vielleicht die Idee zu erkunden, eine kleine Abfragesprache zu schreiben, die im RAM sucht.

Auf diese Idee bin ich gekommen, nachdem ich das Kapitel inSICPüber Abfragesprachen.

Irgendwelche Ideen, wo ich anfangen soll? Zunächst möchte ich das System fragen: „Geben Sie mir bitte den Adressraum, in dem diese Anwendung ausgeführt wird.“

Antwort1

cat /proc/[pid]/mapsgemäß den Proc-Manpages.

Sieht aus wie das, was Sie wollen. Wenn Sie die PID benötigen, holen Sie sie sich von PS oder einem anderen Tool.

Damit wird das Suchen des verwendeten Adressraums angesprochen. Einer der Kollegen bei Defcon hat letztes Jahr createremotethread unter Linux implementiert. Sie könnten das also tun ... und dann auf diese Weise beliebigen Speicher lesen.

Gutschrift anpsusifür den Hinweis, dass das pmap -x [pid]leichter zu lesen ist.

Antwort2

Sie können gdb verwenden, um auf den Speicher eines Prozesses zuzugreifen.

Außerdem sollten Sie einen Blick auf das Dateisystem "/proc" werfen - es enthält Pseudodateien für jeden Prozess; einige davon könnten interessante Informationen enthalten

Antwort3

Verwenden Sie einen Debugger, dafür sind sie da.

Wenn Sie Ihre eigenen Rollen wollen, geht alles durchptrace.

Sie können die Speicherzuordnung eines Prozesses (das Inhaltsverzeichnis des Speichers) in sehen /proc/$pid/mapsund den gesamten Speicherinhalt von dort lesen /proc/$pid/mem. Sie können diese letztere Datei nicht einfach wie gewohnt öffnen, sieheWie lese ich unter Linux von /proc/$pid/mem?

verwandte Informationen