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:
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