hacks/dump-imessages/iphone-dataprotection/python_scripts/emf_decrypter.py

35 lines
1.3 KiB
Python

from optparse import OptionParser
from hfs.emf import EMFVolume
from util.bdev import FileBlockDevice
import plistlib
def main():
parser = OptionParser(usage="emf_decrypter.py disk_image.bin")
parser.add_option("-w", "--nowrite", dest="write", action="store_false", default=True,
help="disable modifications of input file, for testing")
(options, args) = parser.parse_args()
if len(args) < 1:
parser.print_help()
return
device_infos = None
if len(args) >= 2: device_infos = plistlib.readPlist(args[1])
p = FileBlockDevice(args[0], 0, options.write)
v = EMFVolume(p, device_infos)
if not v.keybag.unlocked:
print "Keybag locked, protected files won't be decrypted, continue anyway ?"
if raw_input() == "n":
return
if options.write:
print "WARNING ! This tool will modify the hfs image and possibly wreck it if something goes wrong !"
print "Make sure to backup the image before proceeding"
print "You can use the --nowrite option to do a dry run instead"
else:
print "Test mode : the input file will not be modified"
print "Press a key to continue or CTRL-C to abort"
raw_input()
v.decryptAllFiles()
if __name__ == "__main__":
main()