Форум сайта python.su
Здравствуйте!
Есть куча заксоренных файлов. Надо их пакетно расксорить. Ключ известен. Есть какие-нибудь готовые или полуготовые решения для питона?
Спасибо!
Офлайн
приведи пример, в котором из заксоренного файла получается расксоренный
^ - операция xor
Офлайн
Образец во вложении.
Сейчас работаю вручную. Открываю в Hex Workshop, XOR, указываю ключ (96). Выбираю Treat Data As: 8 bit. Файл становится читабельным. Но файлов много, хотелось бы автоматизировать процесс.
Прикреплённый файлы: simple.img (177,5 KБ)
Офлайн
#!/usr/bin/env python3 def func(ifname, ofname, key): with open(ifname, 'rb') as fin, \ open(ofname, 'wb') as fout: fout.write(bytes(b ^ key for b in fin.read())) if __name__ == '__main__': func('simple.img', 'simple.img.out', 96)
Офлайн
py.user.next, неплохо было бы блоками читать, а то файлы боольшие бывают.
Офлайн
odnochlenв общем случае - хорошо, в его случае - медленнее, так как увеличивается количество операций чтения/записи
неплохо было бы блоками читать
Офлайн
С чего вдруг?? Все нормальные программы читают блоками, даже когда ты читаешь через read(), с диска это все равно читается блоками. Взяв адекватный размер блока (степень двойки и >= 1 Mb, цифра с потолка), ты разницы не заметишь.
Офлайн
odnochlenневажно, как они читают, я тебе про скрипт говорю, выполняемый интерпретатором
Все нормальные программы читают блоками
Офлайн
Если читать достаточно большими блоками - разница в скорости будет незаметной. А полностью читать в память неизвестно что - плохой стиль.
Офлайн
odnochlenполучится тот же .read()
Если читать достаточно большими блоками - разница в скорости будет незаметной.
odnochlenэто в общем случае
А полностью читать в память неизвестно что - плохой стиль.
Офлайн