コード例 #1
0
ファイル: oldDumpDecrypter.py プロジェクト: yakoder/galileo
def main():
    parser = argparse.ArgumentParser(
        description='Decrypt dumps collected earlier')
    parser.add_argument('trackerId')
    args = parser.parse_args()

    dumpDir = '~/.galileo'

    db = LocalDatabase(dumpDir)

    trackerId = args.trackerId
    trackerDumpDir = db.getDeviceDirectoryName(trackerId)
    key = db.loadKey(trackerId)

    files = os.listdir(trackerDumpDir)
    files = [x for x in files if not 'dec' in x]
    for filename in files:
        dumpname = os.path.join(trackerDumpDir, filename)
        file = open(dumpname)

        data = file.read()

        pieces = data.split('\n\n')

        responsePresent = len(pieces) == 2
        if responsePresent:
            [megadumpData, megadumpResponseData] = pieces
        else:
            [megadumpData] = pieces

        megadump = Dump(MEGADUMP)
        megadump.data = bytearray(x2a(megadumpData))
        megadump.megadump()

        try:
            decrypt(megadump, key)
        except UnknownDumpTypeError:
            print('Encountered an UnknownDumpTypeError in the dump of file: ' +
                  filename)
        megadump.toFile(dumpname.replace('.txt', '_dec.txt'))

        if responsePresent:
            CHUNK_LEN = 20
            megadumpResponse = DumpResponse(x2a(megadumpResponseData),
                                            CHUNK_LEN)

            megadumpResponse.megadump()
            try:
                decrypt(megadumpResponse, key, offset=10)
            except UnknownDumpTypeError:
                print(
                    'Encountered an UnknownDumpTypeError in the responsedump of file: '
                    + filename)
            megadumpResponse.toFile(dumpname.replace('.txt', '_resp_dec.txt'))