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

Восстановить битый бинарный файл visio


Рекомендуемые сообщения

Добрый вечер. Задача нетривиальная, из серии "было бы просто - не стал бы спрашивать". При сохранении на собирающемся зависнуть компе документа visio он больше не открывается и выдает ошибку открытия файла (внутренняя ошибка # 2132) с предложением закрыть visio и открыть снова. На другом компе не открывается, libre office draw и смотрелка от Асмографа рисуют один пустой листочек. По счастью, это не рабочий документ, а набор корешков для папок с бумажными документами - неприятно, но не смертельно. Но хотелось бы спасти содержимое хотя бы в виде картинок. Ситуация осложняется тем, что это бинарный файл vsd, а не vsdx, который можно было бы открыть архиватором и распаковать папку с картинками. Есть ли какие-то программы, которые это могут открыть / восстановить?

 

Упреждая попытки дать лёгкий рецепт решения проблемы - временных файлов похожего размера и с содержимым в формате visio на компе не найдено.

Изменено пользователем Иван О. С.
Ссылка на комментарий
Поделиться на другие сайты

Приложи, пожалуйста, битый файл vsd и для сравнения с ним любой хороший файл vsd.

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

А что это даст, если файл бинарный? Битый файл отличается тем, что там в какой-то момент обрывается смысловая часть и идет куча пробелов, которых в хорошем файле нет. И да, размер файла 68 МБ, из них 6 МБ пробелов в конце.

А файл тяжелый, потому что там много картинок в виде OLE объектов. Хотя бы их оттуда вытащить бы.

Чтобы приклеить концовку от файла с другим содержимым - нужно понимать, где начинается конец файла и на каком месте оборвался битый файл, не нужно ли отгрызть ещё что-то.

Изменено пользователем Иван О. С.
Ссылка на комментарий
Поделиться на другие сайты

Вот я и хотел посмотреть, что там в конце, только вряд ли там пробелы, скорей всего нулевые байты (0x00), пробел - это 0x20.

 

Да, нужно найти парсер vsd с исходным кодом и смотреть, в каком месте парсер запнётся из-за ошибки структуры vsd, ну а затем минимально доработать парсер, чтобы обойти проблему и экспортировать всё, что нужно. Вот я нашёл один проект, который работает с парсером vsd от LibreOffice:

 

https://github.com/kakwa/libvisio2svg?tab=readme-ov-file

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

 

23 минуты назад, Trotil сказал:

Да, нужно найти парсер vsd с исходным кодом и смотреть, в каком месте парсер запнётся из-за ошибки структуры vsd, ну а затем минимально доработать парсер

То есть инструмент для восстановления нужно родить самому, готовых решений не будет?

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

Насколько я понял, можно попытаться с помощью HEX-редактора вытащить рисунки в формате jpg, они вроде в теле файла кучей лежат как есть. Выяснить бы теперь, в каком виде туда попадают emf файлы и доступны ли они к изъятию.

В принципе, я нашёл предыдущую версию этого файла, которую скидывал коллеге, там процентов 80 сохранилось, так что актуальность задачи ощутимо снизилась.

Изменено пользователем Иван О. С.
Ссылка на комментарий
Поделиться на другие сайты

22 часа назад, Иван О. С. сказал:

То есть инструмент для восстановления нужно родить самому, готовых решений не будет?

Каждый случай индивидуальный, обычно допиливать руками приходится

 

15 часов назад, Иван О. С. сказал:

можно попытаться с помощью HEX-редактора вытащить рисунки в формате jp

Если там действительно jpg лежат, можно попробовать binwalk, очень удобный инструмент по извлечению файлов

Он выдаёт смещение и описание того, что нашёл, примерно так:

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             PNG image, 780 x 720, 8-bit/color RGBA, non-interlaced
41            0x29            Zlib compressed data, best compression
153493        0x25795         PNG image, 802 x 118, 8-bit/color RGBA, non-interlaced

Экспорт данных, разумеется, он тоже поддерживает.

binwalk проще всего установить как готовый пакет в ubuntu, например

Изменено пользователем Trotil
  • Thanks 1
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Жизнь показала, что Project тоже умеет портить файлы таким же образом - в конце куча пустых байтов. Файл про работу, но чужой, рисую план-график по мотивам, но срисовываю со скана.

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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.