Any documentation about this module?
I need to access a number (a floating one, or maybe an integer) within
a windows application. I thought that this module would be adecuate an I
installed it. So far I could not understand what the module doeas. I am not
much skilled in memory managing and I tried to play a bit with the sentences
written in the module examples:
my %memlist = $proc->get_memlist;
printf " %08X -> %08X : Len=0x%X\n", $_, $_+$memlist{$_}, $memlist{$_}
foreach (sort {$a <=> $b} keys %memlist);
and with:
print $proc->hexdump($from, $len);
$getvalue = $proc->get_i16($from, $undef_val);
Anyway I could'nt find a way of getting the number (it is a number
like 122356, always positive, lying somewhere in the memory map of the
application). I am very confused about using this module. Maybe I am not
gettin the complete memory allocated by the program. Could someone please
point me to any source of knowledge about it. Is there any discussion group
a propos?
Alejandro Santillan
PS: I am adding below the script I am using on a windows XP box, but
whose output I do not understand:
============================================================================
====================
#!/usr/bin/perl
#first install the modules via ppm by executing this
#commands below on a dos window:
#ppm install http://www.bribes.org/perl/ppm/Win32-Process-Memory.ppd
#ppm install http://www.bribes.org/perl/ppm/Win32-Process-Info.ppd
#ppm install http://www.bribes.org/perl/ppm/Win32-API.ppd
use Win32::Process::Memory;
use Win32::Process::Info; #is it needed?
# open process
my $proc = Win32::Process::Memory->new({ name=>'cmd.exe' });
# my $proc = Win32::Process::Memory->new({ pid => 2676 });
# do debug
printf "\nTotal Memory = 0x%X\n", $proc->get_memtotal;
print "\nMemory block list:\n";
my %memlist = $proc->get_memlist;
printf " %08X -> %08X : Len=0x%X\n", $_, $_+$memlist{$_},
$memlist{$_}
foreach (sort {$a <=> $b} keys %memlist);
print "\nContent of 0x10004 -> 0x10103\n";
print $proc->hexdump(0x10004, 0x100);
# search a sequence of unsigned int16
print "\nFind a sequence of unsinged int16:\n";
my @results = $proc->search_u16(92, 87, 105, 110, 51, 50);
print $proc->hexdump($_, 0x32)."\n" foreach @results;
# read and change value
printf "\n0x%X [unsigned int16] : %d\n", 0x10004,
$proc->get_u16(0x10004);
printf "0x%X [unsigned int32] : %d\n", 0x10004,
$proc->get_u32(0x10004);
#$proc->set_u32(0x10004, 55); # BE CAREFUL, MAY DAMAGE YOUR SYSTEM
# close process
undef $proc;
============================================================================
====================
_______________________________________________
Perl-Win32-Users mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs