Thread Speicher in Windows auslesen: Speicher eines Programms auslesen (1 answers)
Opened by SEA at 2007-01-06 00:31

SEA
 2007-01-06 00:31
#11813 #11813
User since
2006-10-06
6 Artikel
BenutzerIn
[default_avatar]
Hallo Perl-community!

Mein Ziel ist es ein Speicherabbild eines laufenden Programms in eine Datei zu schreiben. Wichtig ist vorallem, dass ich die Arbeitsdaten das Programms bekomme.

1. Ist das überhaupt mit perl möglich?
2. Ich hab CPAN durchwühlt und bin auf
http://search.cpan.org/~qjzhou/Win32-Process-Memory-0.20/Memory.pm
gestoßen. Bin ich da richtig? :-P

3. Mein Testprogramm sieht folgendermaßen aus:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use Win32::Process::Memory;
use Win32::Process::Info;

# open process
my $proc = Win32::Process::Memory->new({ name=>'calc.exe' });

#debug
printf "\nTotal Memory = 0x%X\n", $proc->get_memtotal;

#muhaa
print "\nMemory block list:\n";

my %memlist = $proc->get_memlist;

for(sort {$a <=> $b} keys(%memlist))
{
print "$_=$memlist{$_}\n";
print $proc->hexdump($_, 4096);
}

Wenn ich nun "calc.exe" starte, bekomme ich auch ein Speicherabbild. Aber was mich wundert ist, dass das so groß ist! Deshalb lese ich ersteinmal für Testzwecke nur die ersten 4096 Bytes jedes Speicherstücks ...
Nun meine Frage: Was fürn Stück Speicher sehe ich denn auf meinem Bildschirm? Ist das wirklich das Gewollte?

Vielen Dank im voraus! :-)

Tschü Stefan

View full thread Speicher in Windows auslesen: Speicher eines Programms auslesen