Перейти к содержанию
    

Libero дешифрация прошивок

Всем добра.
Есть прошивки от двух разных версий ПО:
toplevel.pdb - предположительно от версии Libero SoC 11.5.0.26 и

channel.pdb - от Libero IDE 9.0.0.15

Если мы изменим расширение первой на zip, то случится чудо, а, вот, со второй такого чуда не происходит.

Может кто подсказать, как сотворить чудо и с второй?

channel.pdb toplevel.pdb

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, MaratZuev сказал:

Может кто подсказать, как сотворить чудо и с второй?

Нет ничего проще - написать (или найти готовый) парсер для так называемого Windows Compound File Binary Format (CFBF). Формат с недавних пор открытый, так что задача вполне выполнимая:)

Вот тут кто-то этим даже заморачивался уже: Текст любой ценой: WCBFF и DOC

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Писать долго, найти сходу не получилось, осталось разместить заказ на воркзилле или чем-то подобном )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

01.08.2020 в 00:00, MaratZuev сказал:

результат пока - сами видите, нулевой

Вы там поправьте в объявлении, что содержимое файлов не "зашифрованное", а всего лишь сжатое, а то народ походу пугается:)))

И да, можете дописать, что сжато zlib-ом (во всяком случае, очень на это похоже).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 часов назад, Самурай сказал:

И да, можете дописать, что сжато zlib-ом (во всяком случае, очень на это похоже).

Да, им

channel.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 hours ago, Орлёнок said:

Да, им

Как вы (с Самураем) это сделали, демоны?! ))

17 hours ago, Самурай said:

Вы там поправьте в объявлении, что содержимое файлов не "зашифрованное", а всего лишь сжатое, а то народ походу пугается:)))

Похоже, оттуда объявление надо убирать (а оно и так в черновики ушло, ибо никто не откликнулся), а вас с Орлёнком нанимать )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот пример скрипта для распаковки. Нужен 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')

 

Для более сложных случаев может понадобиться усложнение скрипта (если есть файлы с путями и т.п.).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо. Для полноты картины ещё бы timestamp исходных файлов сохранить, но это, наверное, за отдельную плату?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 часов назад, MaratZuev сказал:

Спасибо. Для полноты картины ещё бы timestamp исходных файлов сохранить, но это, наверное, за отдельную плату?

Насколько я понимаю, таймстемпы файлов внутри архива не сохранены (вероятно, они создаются одновременно при создании архива).

Чтобы увидеть таймстемп самого архива, добавьте перед строкой "print('--- Extracting:')" строку:

    print('--- File modification time {} UTC'.format(ole.root.getmtime()))

На том же уровне отступа, что и другие принты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...