MaratZuev 0 29 июля, 2020 Опубликовано 29 июля, 2020 · Жалоба Всем добра. Есть прошивки от двух разных версий ПО: toplevel.pdb - предположительно от версии Libero SoC 11.5.0.26 и channel.pdb - от Libero IDE 9.0.0.15 Если мы изменим расширение первой на zip, то случится чудо, а, вот, со второй такого чуда не происходит. Может кто подсказать, как сотворить чудо и с второй? channel.pdb toplevel.pdb Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Самурай 12 29 июля, 2020 Опубликовано 29 июля, 2020 · Жалоба 1 час назад, MaratZuev сказал: Может кто подсказать, как сотворить чудо и с второй? Нет ничего проще - написать (или найти готовый) парсер для так называемого Windows Compound File Binary Format (CFBF). Формат с недавних пор открытый, так что задача вполне выполнимая:) Вот тут кто-то этим даже заморачивался уже: Текст любой ценой: WCBFF и DOC Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaratZuev 0 30 июля, 2020 Опубликовано 30 июля, 2020 · Жалоба Писать долго, найти сходу не получилось, осталось разместить заказ на воркзилле или чем-то подобном ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaratZuev 0 31 июля, 2020 Опубликовано 31 июля, 2020 · Жалоба Разместил задание, результат пока - сами видите, нулевой: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Самурай 12 1 августа, 2020 Опубликовано 1 августа, 2020 · Жалоба 01.08.2020 в 00:00, MaratZuev сказал: результат пока - сами видите, нулевой Вы там поправьте в объявлении, что содержимое файлов не "зашифрованное", а всего лишь сжатое, а то народ походу пугается:))) И да, можете дописать, что сжато zlib-ом (во всяком случае, очень на это похоже). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 218 2 августа, 2020 Опубликовано 2 августа, 2020 · Жалоба Binwalk натравить на файлы пробовали? Что он говорит? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Орлёнок 0 2 августа, 2020 Опубликовано 2 августа, 2020 · Жалоба 9 часов назад, Самурай сказал: И да, можете дописать, что сжато zlib-ом (во всяком случае, очень на это похоже). Да, им channel.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaratZuev 0 2 августа, 2020 Опубликовано 2 августа, 2020 · Жалоба 7 hours ago, Орлёнок said: Да, им Как вы (с Самураем) это сделали, демоны?! )) 17 hours ago, Самурай said: Вы там поправьте в объявлении, что содержимое файлов не "зашифрованное", а всего лишь сжатое, а то народ походу пугается:))) Похоже, оттуда объявление надо убирать (а оно и так в черновики ушло, ибо никто не откликнулся), а вас с Орлёнком нанимать ))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flood 13 2 августа, 2020 Опубликовано 2 августа, 2020 · Жалоба Вот пример скрипта для распаковки. Нужен Python 3 и библиотека olefile: https://olefile.readthedocs.io/en/latest/Install.html Под linux устанавливается командой "pip3 install olefile" #!/usr/bin/env python3 import olefile, sys, zlib if len(sys.argv) < 2: print('Use: {} <filename.pdb> - extract streams from Libero compound file'.format(sys.argv[0])) sys.exit(1) with olefile.OleFileIO(sys.argv[1]) as ole: print('--- File contents:\n{}'.format('\n'.join( [v[0] for v in ole.listdir()] ))) print('--- Extracting:') for stream in ole.listdir(streams=True, storages=False): name = stream[0] with ole.openstream(name) as fs: with( open( name, 'wb' ) ) as fout: d = fs.read() try: dz = zlib.decompress(d) print('[ZLIB] {}'.format(name)) fout.write(dz) except zlib.error: print('[RAW ] {}'.format(name)) fout.write(d) print('--- Done') Для более сложных случаев может понадобиться усложнение скрипта (если есть файлы с путями и т.п.). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaratZuev 0 3 августа, 2020 Опубликовано 3 августа, 2020 · Жалоба Спасибо. Для полноты картины ещё бы timestamp исходных файлов сохранить, но это, наверное, за отдельную плату? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flood 13 3 августа, 2020 Опубликовано 3 августа, 2020 · Жалоба 9 часов назад, MaratZuev сказал: Спасибо. Для полноты картины ещё бы timestamp исходных файлов сохранить, но это, наверное, за отдельную плату? Насколько я понимаю, таймстемпы файлов внутри архива не сохранены (вероятно, они создаются одновременно при создании архива). Чтобы увидеть таймстемп самого архива, добавьте перед строкой "print('--- Extracting:')" строку: print('--- File modification time {} UTC'.format(ole.root.getmtime())) На том же уровне отступа, что и другие принты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться