Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Miori Lorenzo Dec 2012
- #
- # Samsung YP-F3, YP-U7, YP-W1 Firmware Extractor
- #
- # ~~~~~ Some fields are still unknown ~~~~~~
- #
- import struct, os, sys
- romFile = sys.argv[1]
- outFolder = "%s_extracted/" % romFile
- os.mkdir(outFolder)
- f = open(romFile, "rb")
- f.seek(0, 2)
- original_size = f.tell()
- f.seek(0)
- def getValue(bytes):
- return struct.unpack("I", bytes)[0]
- files_no = getValue(f.read(4))
- total_size = 0
- print "Total files: %i"%files_no
- f.seek(0x14)
- for i in xrange(files_no):
- fn = f.read(52).replace("\x00", "")
- print "File name: %s"%fn
- fsize = getValue(f.read(4))
- total_size += fsize
- print "File size: 0x%x bytes"%fsize
- fpos = getValue(f.read(4))
- print "File pos: 0x%x"%fpos
- print "Unknown field: 0x%x bytes"%(getValue(f.read(4)))
- pos2continue = f.tell()
- f.seek(fpos)
- fout = open(outFolder + fn, "wb", 1024)
- fout.write(f.read(fsize))
- fout.close()
- f.seek(pos2continue)
- f.close()
- print "Original file size: %i"%original_size
- print "Total extracted size: %i"%total_size
- print "Header & Stuff %i"%abs(original_size-total_size)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement