open(my $infile, '<', "./file") or die "Cannot open file: $!";
binmode($infile);
open(my $outfile, '>', "./reference1") or die "Cannot create file: $!"
+;
binmode($outfile);
my $buffer = '';
sysseek $infile, 0x15, 0;
sysread $infile, $buffer, 0x03;
syswrite $outfile, $buffer;
$buffer =~ s/(.)/sprintf("%x",ord($1))/eg; #this converts it into hex.
print $buffer, "\n"; #this prints the converted $buffer (04C0)
Maybe I am trying to go about this the wrong way.
$buffer = (04C0)
It would be really nice to be able to use $buffer like this but I dont think its possible that way:
sysseek $infile, $buffer, 1;
sysread $infile, $new, 0x40000;
syswrite $newfile, $new;
Remember that $buffer contains the 04C0, which is a reference to the actual data further into the file. so I get the reference values with this:
my $buffer = '';
sysseek $infile, 0x15, 0;
sysread $infile, $buffer, 0x03;
syswrite $outfile, $buffer;
Then I try to sysseek to that position in the file like this, using the reference i obtained with the code above:
sysseek $infile, $buffer, 1;
sysread $infile, $new, 0x40000;
syswrite $newfile, $new;
Also Anonomous Monk, please let me thank you for the help so far. Im not exactly pro at programming, but I know how i want it to work, I am just having a hard time setting this up to work. I feel like i am going in circles now. |