The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio

06.06.2011 15:52

Команда re-lab опубликовала в Gitorious первую и достаточно полную документацию по двоичным форматам Microsoft Visio — популярного приложения для создания схем и диаграмм. Документация описывает строение документов и даёт определение большому числу чанков, что уже позволяет реализовать поддержку форматов VSD и VSS в свободных программах.

Для разбора двоичных форматов VSD и VSS используется приложение OLE toy, написанное в конце прошлого года для разбора формата Microsoft Publisher. Команда контактирует с участниками проекта LibreOffice — студентом программы Google Summer of Code и его руководителем, которые занимаются поддержкой VSD в LibreOffice Draw.

Проект re-lab, задачей которого является реверс-инжиниринг популярных закрытых форматов, сформировался в 2007 году. Первой успешно решенной задачей стал разбор формата Corel DRAW, что позднее привело к появлению UniConvertor — свободного универсального конвертера форматов векторной графики.

  1. Главная ссылка к новости (http://linuxgraphics.ru/news.p...)
Автор новости: prokoudine
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/30789-visio
Ключевые слова: visio, draw, graph, image
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (36) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Анонимка (?), 17:01, 06/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Не может не радовать!
    Главное, чтобы в ответ им не стали использовать вложенные "более умные и ожидаемые пользователями" структуры в чанках.
     
     
  • 2.4, Влад (??), 17:10, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Так оно и будет...
     
     
  • 3.21, frob (ok), 19:08, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Так оно и будет...

    Мучаться над новой (несовместимой с предыдущими) версией формата и огрести кучу проблем среди собственных пользователей, только чтоб малость поднасрать? Маловероятно.

    Я бы на месте MS добавил бы сжатие к VDX и делал бы попытки склонить пользователей к переходу на сжатый VDX. Если подойти с позиций создания проблем, то сжатие при этом надо слегка модифицировать так чтобы оно отличалось и от стандартного и от VSD-шного.
    Реализация пустяковая, а головняка с разбором будет много.

     
     
  • 4.23, guest (??), 21:00, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не стоит подсказывать микрософтам как менять форматы файлов. Они этим занимаются в каждой версии офиса.
     
     
  • 5.24, frob (ok), 21:42, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Не стоит подсказывать микрософтам как менять форматы файлов. Они этим занимаются в
    > каждой версии офиса.

    Последний раз формат VSD менялся при переходе с Visio2k2 на Visio2k3. А до того -- с Visio 5 на Visio 2k. Согласно MS изменений в формате в Visio 2010 не было.
    Т.о. сейчас используется по умолчанию версия появившаяся приблизительно 8 лет назад.
    Не думаю, что это хорошо согласуется с "Они этим занимаются в каждой версии офиса."

     
  • 4.35, Michael Shigorin (ok), 10:38, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Бокового спроси, ради самбистов напрягались.  Правда, те тоже не лыком шиты оказались.
     
     
  • 5.37, frob (ok), 18:37, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Возможностей с минимальными последствиями для себя нагадить в протоколе больше чем в сохранёняемом файле.
     
  • 2.7, prokoudine (??), 17:20, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то микрософт несколько лет назад перешёл на XMLный формат.
     
     
  • 3.41, товарищ (?), 21:03, 09/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    непонятно про что вы. попробуйте открыть в notepad VSD файл.. XML'ем там и не пахнет!
     
     
  • 4.42, frob (ok), 04:29, 10/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > непонятно про что вы.

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

    Менять VSD существенно сложнее. Между 11 и 6 версиями разница (с точки зрения расколдовывания) незначительная и от 5-ой версии они тоже ушли недалеко.
    А 5-ая версия -- это 97 год, MS-ом это стало только два с половиной года спустя.

    Т.о. хотя практический интерес представляет VSD/VSS, если что-то и будет меняться, то VDX.

     

  • 1.6, Resonance (ok), 17:17, 06/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Вот парню повезло, который взял задание на GSoC поддержку формата Visio в LibreOffice :)
     
     
  • 2.11, Аноним (-), 18:17, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • –4 +/
    А чему везти-то? 1) Как уже сказали мекрософт перешел на xml-ный формат. 2) Open/LibreOffice Draw — верх неюзабельности.
     
     
  • 3.14, Resonance (ok), 18:26, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > А чему везти-то? 1) Как уже сказали мекрософт перешел на xml-ный формат.
    > 2) Open/LibreOffice Draw — верх неюзабельности.

    А тому повезло, что легче будет 5к зелени заработать парню

     
  • 3.15, frob (ok), 18:33, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    MS выдумал xml-ный формат (если память не подводит) для версии 2k3.
    Двоичный формат в версии 2k7 остался таким же как и в 2k3 (2k10 не смотрел)
    Двоичный формат используется в 2k3 и 2k7 по умолчанию (а чему удивляться? -- в VSD используется LZ-подобное сжатие, а в VDX base64 раздувание для любых нетекстовых вставок, в результате VDX оказывается раз в 5 больше чем совпадающий по содержанию VSD).

    Хотя LO Draw и не лучший вариант для работы с VSD, шансы на успешную реализацию приемлимого импортёра у LO наибольшие, в частности благодаря наилучшей среди свободных приложений поддержке метафайлов. Dia/Kivio(Flow)/Inkscape/Karbon в этом смысле пока ничего хорошего не светит.

    Кроме того, ментор собирается сделать результаты доступными как часть libwpg, что даст возможность использовать их в других проектах.

     
     
  • 4.17, prokoudine (??), 18:56, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Хм. А табличку про поддержку WMF ты в итоге выложил в открытый доступ? :)
     
     
  • 5.19, frob (ok), 19:00, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Хм. А табличку про поддержку WMF ты в итоге выложил в открытый
    > доступ? :)

    Она лежала на какой-то старой версии сайта sk1project, у меня где-то есть копия, если надо.
    Но это было примерно 3 года назад, т.ч. "если делать, то по-большому" -- пройтись по свежим версиям приложений и собрать свежие данные (+ обозначить изменения по сравнению с предыдущими версиями).

     
     
  • 6.36, Michael Shigorin (ok), 10:59, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> Хм. А табличку про поддержку WMF ты в итоге выложил в открытый
    >> доступ? :)
    > Она лежала на какой-то старой версии сайта sk1project, у меня где-то есть
    > копия, если надо.

    Обычно стоит публиковать копии, пока не помер/потерялся тот диск, где они ещё есть.

     
     
  • 7.38, frob (ok), 19:14, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Обычно стоит публиковать копии, пока не помер/потерялся тот диск, где они ещё
    > есть.

    Из тех данных сейчас наибольшую ценность представляют метафайлы использовавшиеся для тестирования. А их копии есть у нескольких участников забега.

     

  • 1.9, Rodegast (ok), 17:34, 06/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    В проекте SK1 vsdviewer ещё давно начали делать, но потом почему то забросили.
     
     
  • 2.10, prokoudine (??), 17:36, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > В проекте SK1 vsdviewer ещё давно начали делать, но потом почему то
    > забросили.

    Это как бы один и тот же проект, и sK1 к нему имеет несколько непрямое отношение :)

     
  • 2.25, x0r (??), 22:47, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    да это тот же Uniconverter. У меня где-то валяется их практически полностью работающий vsdviewer на python. (ему года 3). Они его зачем-то убрали из проекта
     
     
  • 3.26, frob (ok), 23:29, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > практически полностью работающий

    vsdviewer отличается изрядной тормознутостью (нет буферизации), ущербной поддержкой EMF (в т.ч. отсутствием поддержки EMF+), игнорированием разных "приятных мелочей" обнаруженных после прекращения работы над vsdviewer (например, списков чанков, что может приводить к неадекватному результату при наличии на диаграмме коннекторов и (возможно) с файлами, в которых проводилось редактирование с множественными удалениями-добавлениями элементов, вложенным группированием с модификацией групп без разгруппирования и т.д.).

    В результате всё может быть хорошо на сложном файле и обломаться на простом.


     
     
  • 4.28, x0r (??), 23:53, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    а мне кажется код писать проще имея уже заготовку для примера, а не только документацию
     
     
  • 5.29, x0r (??), 23:54, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > а мне кажется код писать проще имея уже заготовку для примера, а
    > не только документацию

    и не понятно зачем они вообще убирали vsdviewer.
    глядишь бы уже допилили

     
     
  • 6.34, frob (ok), 01:22, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > и не понятно зачем они вообще убирали vsdviewer.
    > глядишь бы уже допилили

    Потому и убрали, что некому допиливать.

     
  • 5.33, frob (ok), 01:20, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > а мне кажется код писать проще имея уже заготовку для примера, а
    > не только документацию

    А там и так не только документация.

     
  • 3.27, Rodegast (ok), 23:29, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > да это тот же Uniconverter

    Не. vsdviewer это графический просмотрщик, а Uniconverter это консольный конвертер. vsdviewer конечно мог сохранить vsd в svg, но это не было его основной задачей.

     
     
  • 4.32, frob (ok), 01:06, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > конечно мог сохранить vsd в svg, но это не было его
    > основной задачей.

    Основная задача демонстрируется нажатием ^T.

     

  • 1.13, тоже Аноним (ok), 18:25, 06/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кто-нибудь взрослый и юридически подкованный может рассказать о возможностях фирм, подобных МС, оказать давление на тех, кто использует плоды таких реверсов?
     
     
  • 2.30, cmp (??), 00:40, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, сонька вон надавила, теперь не знает куда спрятаться, пусть давят, тима переименуется и продолжит свое дело, а анонимусы зад...ат мс ))
     
     
  • 3.31, frob (ok), 01:04, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> кто использует плоды
    > тима переименуется и продолжит свое дело

    LibreOffice только-только переименовался, куда ж им ещё-то? =)

     

  • 1.18, Тот_Самый_Анонимус (?), 18:59, 06/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Draw не годится для схем и диаграмм. Когда нечто подобное Visio будет в LO, али в OOo, это будет замечательно.
     
     
  • 2.20, frob (ok), 19:01, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Draw не годится для схем и диаграмм. Когда нечто подобное Visio будет
    > в LO, али в OOo, это будет замечательно.

    Обсуждали ж уже.

     

  • 1.22, Wormik (ok), 20:11, 06/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Замечательно! Жду открытой библиотеки либо реализации в опенофисе.
     
  • 1.39, Аноним (39), 11:52, 08/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пусть для начала в Draw нормально поддержку SVG реализуют.
     
     
  • 2.40, Andrey Mitrofanov (?), 12:01, 08/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Это тост? ~"Желаю, чтобы всем!"(ц)ППШариков
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру