Esempio n. 1
0
def unpackCommand(file, outDir):
    """Extracts the input file to the specified directory"""
    mkdirs(outDir)
    mtime = os.stat(file.name).st_mtime

    datConf = None
    fdatConf = None

    if pe.isExe(file):
        with open(outDir + '/firmware.dat',
                  'w+b') as datFile, open(outDir + '/firmware.fdat',
                                          'w+b') as fdatFile:
            mtime = unpackInstaller(file, datFile)
            datConf = unpackDat(datFile, fdatFile)
            fdatConf = unpackFdat(fdatFile, outDir, mtime)
    elif dat.isDat(file):
        with open(outDir + '/firmware.fdat', 'w+b') as fdatFile:
            datConf = unpackDat(file, fdatFile)
            fdatConf = unpackFdat(fdatFile, outDir, mtime)
    elif fdat.isFdat(file):
        fdatConf = unpackFdat(file, outDir, mtime)
    elif msfirm.isMsFirm(file):
        datConf = {'crypterName': 'msfirm'}
        fdatConf = unpackMsFirm(file, outDir)
    elif flash.isPartitionTable(file):
        unpackDump(file, outDir, mtime)
    elif bootloader.isBootloader(file):
        unpackBootloader(file, outDir, mtime)
    elif wbi.isWbi(file):
        unpackWbi(file, outDir, mtime)
    else:
        raise Exception('Unknown file type!')

    with open(outDir + '/config.yaml', 'w') as yamlFile:
        writeYaml({'dat': datConf, 'fdat': fdatConf}, yamlFile)
Esempio n. 2
0
def unpackCommand(file, outDir):
 """Extracts the input file to the specified directory"""
 mkdirs(outDir)
 mtime = os.stat(file.name).st_mtime

 datConf = None
 fdatConf = None

 if pe.isExe(file):
  with open(outDir + '/firmware.dat', 'w+b') as datFile, open(outDir + '/firmware.fdat', 'w+b') as fdatFile:
   mtime = unpackInstaller(file, datFile)
   datConf = unpackDat(datFile, fdatFile)
   fdatConf = unpackFdat(fdatFile, outDir, mtime)
 elif dat.isDat(file):
  with open(outDir + '/firmware.fdat', 'w+b') as fdatFile:
   datConf = unpackDat(file, fdatFile)
   fdatConf = unpackFdat(fdatFile, outDir, mtime)
 elif fdat.isFdat(file):
  fdatConf = unpackFdat(file, outDir, mtime)
 elif flash.isPartitionTable(file):
  unpackDump(file, outDir, mtime)
 else:
  raise Exception('Unknown file type!')

 with open(outDir + '/config.yaml', 'w') as yamlFile:
  writeYaml({'dat': datConf, 'fdat': fdatConf}, yamlFile)