Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- #OBB Extractor by Pinkazoid
- use Fcntl;
- use File::Path;
- use File::Basename;
- $basepath = 'ponydata/';
- open(INFILE,"<main.1050.com.gameloft.android.ANMP.GloftPOHM.obb");
- binmode(INFILE);
- open(IDXFILE,'>ponydata.txt');
- if (read(INFILE,$fat,9) == 9) {
- seek (INFILE,$fat,SEEK_SET);
- while ($data = <INFILE>) {
- print IDXFILE $data;
- chomp($data);
- push @filelist,$data;
- }
- } else {
- print "Unable to read first 9 bytes for file table location, aborting.\n";
- end;
- }
- close(IDXFILE);
- foreach $data (@filelist) {
- ($start,$end,$junk,$junk,$filepath) = split(/\s+/,$data,5);
- if ($filepath =~ /\//) {
- my ($filename, $filedir) = fileparse($filepath);
- $filedir = $basepath . $filedir;
- if (!(-e $filedir)) {
- mkpath($filedir);
- }
- }
- if (open(OUTFILE,">$basepath$filepath")) {
- binmode(OUTFILE);
- seek (INFILE,$start,SEEK_SET);
- $size = $end - $start;
- if (read(INFILE,$buffer,$size) == $size) {
- print OUTFILE $buffer;
- } else {
- print "Unable to read $size bytes at location $start, aborting.\n";
- end;
- }
- close(OUTFILE);
- } else {
- print "Unable to open $basepath$filepath for writing, aborting.\n";
- end;
- }
- }
- close(INFILE);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement