View Single Post
  #3  
Old 25th November 2009, 18:16
rjamesd rjamesd is offline
Member
 
Join Date: Aug 2007
Posts: 35
Thanks: 3
Thanked 4 Times in 3 Posts
Lightbulb

Quote:
Originally Posted by id10t View Post
So include a copy of strings!

Its already on *nix systems - including OS X - and there are win32 versions available precompiled.
Thanks - yes Windows strings is at:

http://technet.microsoft.com/en-us/s.../bb897439.aspx

I downloaded unzipped and placed this in the same folder as the Perl script.

It works straight out of the box (on Windows XP at least) but be aware that first time it is run it will ask for a license agreement, thereafter you wont be asked.

Just for info, I can then regex match the string I am looking for from this - and extract it out using the following code

Code:
# get just printable character sequences from binary file called the string stored in $binaryFilename 
my $fileStrings = `strings $binaryFilename`; # note backward single quote to capture output of executing command enclosed

# $fileStrings is just the printable character sequences in the file (minimum 3 chars - see technet link above about how to change)

# do the regex
if ( $fileStrings =~ # a regex here # )
{
# if got here regex found match
# so
# get start and beginning of string using $` and $& Perl global system variables set to values from the last regex
my $embeddedStringStart = length($`);
my $embeddedStringLength = length($&);
my $embeddedString = substr( $fileStrings, $embeddedStringStart, $embeddedStringLength );

# go on to do something with the $embeddedString ...
}

Last edited by rjamesd; 25th November 2009 at 18:26.
Reply With Quote