NAME
Memory::Process - Peek/Poke other processes' address spaces
SYNOPSIS
use Memory::Process;
my $mem = Memory::Process->new(pid => 123);
my $byte = $mem->peek(0x1000);
my $u32 = $mem->read(0x1000, 4);
$mem->poke(0x1000, 'L') = 12;
DESCRIPTION
PEEK/POKE are a BASIC programming language extension for reading/writing the contents of a memory cell at a specified address. This module brings similiar semantics to Perl.
Eventually, Memory searching capability will also be added.
IMPLEMENTATION
The module leverages libvas for accessing the other virtual address spaces.
METHODS AND ARGUMENTS
- new(pid)
-
Constructs a new Memory::Process instance.
- peek(addr [, 'pack-string'])
-
Peeks at the given memory address. If no pack-string is specified, a single byte is read.
- read(addr, size)
-
Reads size bytes from given memory address.
- poke(addr [, 'pack-string']) = $value # or = ($a, $b)
-
Pokes a given memory address. If no pack-string is given, the rvalue is written as is
- write(addr, buf [, count])
-
Writes
buf
toaddr
- tie(addr, 'pack-string')
-
Returns a tied variable which can be used like any other variable. To be implemented
- search('pack-string')
-
To be implemented when libvas provides it
GIT REPOSITORY
http://github.com/athreef/Memory-Process
SEE ALSO
AUTHOR
Ahmad Fatoum <athreef@cpan.org>
, http://a3f.at
COPYRIGHT AND LICENSE
Copyright (C) 2016 Ahmad Fatoum
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.