Dump Speicher eines Prozesses

8

Beim Lesen der / proc / $ PID / maps erhalten Sie die zugeordneten Speicherbereiche. Gibt es eine Möglichkeit, eine dieser Regionen auszugeben?

%Vor%

Danke

    
mathk 27.07.2010, 09:43
quelle

3 Antworten

10

Nein! Rufen Sie ptrace() mit PTRACE ATTACH auf. Öffnen Sie dann /proc/<pid>/mem , suchen Sie nach dem Region-Offset und lesen Sie die Länge der Region wie in% co_de angegeben %.

Hier ist ein Programm, das ich geschrieben habe , das tut es in C. Hier ist ein Modul, das ich geschrieben habe , das tut es in Python (und die ptrace-Bindung ). Zum Schluss ein Programm, das alle Bereiche eines Prozesses in Dateien ablegt .

Viel Spaß!

    
Matt Joiner 27.07.2010, 14:01
quelle
5

Sie können gdb an den Prozess anhängen und dann den Speicherbereich der X-Wörter mit der Länge L ablegen, beginnend mit der Position: x/Xw L .

Das Anhängen von gdb beim Starten Ihres Prozesses ist einfach: gdb ./executable then run . Wenn Sie an einen laufenden Prozess anhängen möchten, starten Sie gdb und dann gdb attach pid , wobei pid is die Prozess-ID ist, die Ihnen wichtig ist.

    
nmichaels 27.07.2010 10:26
quelle
4

Verwenden von dd (1):

%Vor%     
jackIT 27.07.2010 13:36
quelle

Tags und Links