URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 77680
[ Назад ]

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

Отправлено opennews , 06-Июн-11 17:01 
Команда re-lab опубликовала в Gitorious первую и достаточно полную документацию (https://gitorious.org/re-lab/graphics/trees/master/microsoft...) по двоичным форматам Microsoft Visio — популярного приложения для создания схем и диаграмм. Документация описывает строение документов и даёт определение большому числу чанков, что уже позволяет реализовать поддержку форматов VSD и VSS в свободных программах.


Для разбора двоичных форматов VSD и VSS используется приложение OLE toy (https://gitorious.org/re-lab/tools/trees/master/oletoy), написанное в конце прошлого года для разбора формата Microsoft Publisher. Команда контактирует с участниками проекта LibreOffice — студентом программы Google Summer of Code и его руководителем, которые занимаются поддержкой VSD (http://cgit.freedesktop.org/libreoffice/contrib/libvisio/) в LibreOffice Draw.


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

URL: http://linuxgraphics.ru/news.php?readmore=1793
Новость: https://www.opennet.ru/opennews/art.shtml?num=30789


Содержание

Сообщения в этом обсуждении
"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено Анонимка , 06-Июн-11 17:01 
Не может не радовать!
Главное, чтобы в ответ им не стали использовать вложенные "более умные и ожидаемые пользователями" структуры в чанках.

"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено Влад , 06-Июн-11 17:10 
Так оно и будет...

"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено frob , 06-Июн-11 19:08 
> Так оно и будет...

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

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


"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено guest , 06-Июн-11 21:00 
Не стоит подсказывать микрософтам как менять форматы файлов. Они этим занимаются в каждой версии офиса.

"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено frob , 06-Июн-11 21:42 
> Не стоит подсказывать микрософтам как менять форматы файлов. Они этим занимаются в
> каждой версии офиса.

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


"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено Michael Shigorin , 07-Июн-11 10:38 
Бокового спроси, ради самбистов напрягались.  Правда, те тоже не лыком шиты оказались.

"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено frob , 07-Июн-11 18:37 
Возможностей с минимальными последствиями для себя нагадить в протоколе больше чем в сохранёняемом файле.

"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено prokoudine , 06-Июн-11 17:20 
Вообще-то микрософт несколько лет назад перешёл на XMLный формат.

"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено товарищ , 09-Июн-11 21:03 
непонятно про что вы. попробуйте открыть в notepad VSD файл.. XML'ем там и не пахнет!

"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено frob , 10-Июн-11 04:29 
> непонятно про что вы.

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

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

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


"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено Resonance , 06-Июн-11 17:17 
Вот парню повезло, который взял задание на GSoC поддержку формата Visio в LibreOffice :)

"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено Аноним , 06-Июн-11 18:17 
А чему везти-то? 1) Как уже сказали мекрософт перешел на xml-ный формат. 2) Open/LibreOffice Draw — верх неюзабельности.

"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено Resonance , 06-Июн-11 18:26 
> А чему везти-то? 1) Как уже сказали мекрософт перешел на xml-ный формат.
> 2) Open/LibreOffice Draw — верх неюзабельности.

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


"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено frob , 06-Июн-11 18:33 
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, что даст возможность использовать их в других проектах.


"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено prokoudine , 06-Июн-11 18:56 
Хм. А табличку про поддержку WMF ты в итоге выложил в открытый доступ? :)

"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено frob , 06-Июн-11 19:00 
> Хм. А табличку про поддержку WMF ты в итоге выложил в открытый
> доступ? :)

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


"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено Michael Shigorin , 07-Июн-11 10:59 
>> Хм. А табличку про поддержку WMF ты в итоге выложил в открытый
>> доступ? :)
> Она лежала на какой-то старой версии сайта sk1project, у меня где-то есть
> копия, если надо.

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


"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено frob , 07-Июн-11 19:14 
> Обычно стоит публиковать копии, пока не помер/потерялся тот диск, где они ещё
> есть.

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


"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено Rodegast , 06-Июн-11 17:34 
В проекте SK1 vsdviewer ещё давно начали делать, но потом почему то забросили.

"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено prokoudine , 06-Июн-11 17:36 
> В проекте SK1 vsdviewer ещё давно начали делать, но потом почему то
> забросили.

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


"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено x0r , 06-Июн-11 22:47 
да это тот же Uniconverter. У меня где-то валяется их практически полностью работающий vsdviewer на python. (ему года 3). Они его зачем-то убрали из проекта

"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено frob , 06-Июн-11 23:29 
> практически полностью работающий

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

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



"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено x0r , 06-Июн-11 23:53 
а мне кажется код писать проще имея уже заготовку для примера, а не только документацию

"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено x0r , 06-Июн-11 23:54 
> а мне кажется код писать проще имея уже заготовку для примера, а
> не только документацию

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


"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено frob , 07-Июн-11 01:22 
> и не понятно зачем они вообще убирали vsdviewer.
> глядишь бы уже допилили

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


"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено frob , 07-Июн-11 01:20 
> а мне кажется код писать проще имея уже заготовку для примера, а
> не только документацию

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


"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено Rodegast , 06-Июн-11 23:29 
> да это тот же Uniconverter

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


"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено frob , 07-Июн-11 01:06 
> конечно мог сохранить vsd в svg, но это не было его
> основной задачей.

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


"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено тоже Аноним , 06-Июн-11 18:25 
Кто-нибудь взрослый и юридически подкованный может рассказать о возможностях фирм, подобных МС, оказать давление на тех, кто использует плоды таких реверсов?

"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено cmp , 07-Июн-11 00:40 
Ага, сонька вон надавила, теперь не знает куда спрятаться, пусть давят, тима переименуется и продолжит свое дело, а анонимусы зад...ат мс ))

"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено frob , 07-Июн-11 01:04 
>> кто использует плоды
> тима переименуется и продолжит свое дело

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


"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено Тот_Самый_Анонимус , 06-Июн-11 18:59 
Draw не годится для схем и диаграмм. Когда нечто подобное Visio будет в LO, али в OOo, это будет замечательно.

"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено frob , 06-Июн-11 19:01 
> Draw не годится для схем и диаграмм. Когда нечто подобное Visio будет
> в LO, али в OOo, это будет замечательно.

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


"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено Wormik , 06-Июн-11 20:11 
Замечательно! Жду открытой библиотеки либо реализации в опенофисе.

"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено Аноним , 08-Июн-11 11:52 
Пусть для начала в Draw нормально поддержку SVG реализуют.

"Выполнен реверс-инжиниринг двоичных форматов Microsoft Visio"
Отправлено Andrey Mitrofanov , 08-Июн-11 12:01 
Это тост? ~"Желаю, чтобы всем!"(ц)ППШариков