OLE2Viewer - анализ и просмотр структуры файлов OLE2

Здесь можно обсудить ваш любимый плагин.
rivitna
Posts: 33
Joined: Wed 30 Nov, 2016 10:58
Has thanked: 1 time
Been thanked: 2 times

OLE2Viewer - анализ и просмотр структуры файлов OLE2

Post by rivitna » Mon 19 Dec, 2016 11:27

Обсуждение плагина OLE2Viewer

User avatar
HaRT
Moderator
Posts: 8108
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 103 times

OLE2Viewer - анализ и просмотр структуры файлов OLE2

Post by HaRT » Mon 19 Dec, 2016 14:52

Осветите, пожст: в чём отличие данного плагина от DocFile Browser и от ArcLite?
Фар есть инструмент, а не нянька. © 2009 DrKnS

rivitna
Posts: 33
Joined: Wed 30 Nov, 2016 10:58
Has thanked: 1 time
Been thanked: 2 times

OLE2Viewer - анализ и просмотр структуры файлов OLE2

Post by rivitna » Mon 19 Dec, 2016 16:23

HaRT wrote: Осветите, пожст: в чём отличие данного плагина от DocFile Browser и от ArcLite?
Спс, освещаю:
DocFile Browser написан Игорем Павловым, а ArcLite основан на его библиотеке 7z.dll, поэтому будем считать за один продукт.
Общее с OLE2Viewer:
1) Код разбора файлов OLE2 написаны примерно в одно и то же время, где-то в 2000-м году
2) Оба показывают структуру OLE2 и предоставляют навигацию.

Отличия:
1) Код 7-Zip по разбору файлов OLE2 реализован на функциях доступа STRUCTURED STORAGE через OLE2 API, что я лично считаю огромным минусом. Да он предельно прост. у Игоря Павлова он по сути занимает 6кБ. В данном плагине осуществляется анализ файла на бинарном уровне. В чем минус реализации через OLE2 API, возможные проблемы работы с поврежденными файлами OLE2, а также некоторая зависимость от закрытого кода MS OLE2 API.
2) Плагин OLE2Viewer позволяет извлекать исходные коды макросов. Предлагаю нажать на стримы в каталоге Macros\VBA (doc-файл) или _VBA_PROJECT_CUR\VBA (xls). Доступ к исходнику макроса возможен и при установке парольной защиты от просмотра. Почему собственно и вернулся к своему коду 15-летней давности, потому что сейчас произошла некоторая реинкарнация макровирусов. Реализация в виде плагина Far показалась наиболее удобной.
3) Плагин OLE2Viewer позволяет извлекать также текст из WordDocument, да местами он не причесанный за счет Fast-Save, но тем не менее.

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

Если по чесноку, то сравнивать корректно было бы с только программой oledump известного вирусного ресёрчера Didier Stevens, но он не написал плагин к фару пока.

User avatar
HaRT
Moderator
Posts: 8108
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 103 times

OLE2Viewer - анализ и просмотр структуры файлов OLE2

Post by HaRT » Mon 19 Dec, 2016 17:03

rivitna, спасибо за разъяснения. Побегал немного по файлам, документов с макросами у себя что-то пока не нашёл. :)

У меня почему-то по F11 плагин не заходит в текущий файл, работает только по Enter или CtrlPgDn. Зачем так?
Ну и хорошо бы, чтобы плагин можно было вызывать по префиксу (полезно для пользовательского меню) — например, “ole2:”.
Фар есть инструмент, а не нянька. © 2009 DrKnS

rivitna
Posts: 33
Joined: Wed 30 Nov, 2016 10:58
Has thanked: 1 time
Been thanked: 2 times

OLE2Viewer - анализ и просмотр структуры файлов OLE2

Post by rivitna » Mon 19 Dec, 2016 17:13

HaRT wrote: Побегал немного по файлам, документов с макросами у себя что-то пока не нашёл. :)
Normal.dot бывает с макросами, если ставились продукты ABBYY.
Нажмите на WordDocument.
HaRT wrote: У меня почему-то по F11 плагин не заходит в текущий файл, работает только по Enter или CtrlPgDn. Зачем так?
Ну и хорошо бы, чтобы плагин можно было вызывать по префиксу (полезно для пользовательского меню) — например, “ole2:”.
Честно говоря, только начал разбираться с Far Plugin API по другим плагинам, сделаю обязательно, пока не добавил. :) Выложил первую законченную на мой взгляд версию.

rivitna
Posts: 33
Joined: Wed 30 Nov, 2016 10:58
Has thanked: 1 time
Been thanked: 2 times

OLE2Viewer - анализ и просмотр структуры файлов OLE2

Post by rivitna » Fri 30 Dec, 2016 23:51

Предновогодний пререлиз! :)))) С наступающим Вас, судари!
Версия 1.0.1.12
Добавлено:
- Открытие плагина через меню "Команды плагинов";
- Открытие плагина через командную строку с префиксом "ole2";
- Просмотр метаданных в текстовом виде при нажатии на потоки "\x5DocumentSummaryInformation", "\x5SummaryInformation";
- В информационной панели помимо версии, типа файла и размера (размер вычисляется исходя из структуры файла, так как возможен оверлей), добавлено отображение количества потоков, каталогов и макросов.

Для просмотра исходных кодов макросов необходимо открывать потоки в каталоге VBA (_VBA_PROJECT_CUR\VBA - Excel, Macros\VBA - Word), для просмотра текста документа - поток WordDocument, метаданных - потоки "\x5DocumentSummaryInformation", "\x5SummaryInformation".
Пока не добавил просмотр набора определенных пользователем свойств в потоке "\x5DocumentSummaryInformation".
Last edited by rivitna on Sat 31 Dec, 2016 00:01, edited 2 times in total.

User avatar
SlashNet
Posts: 577
Joined: Fri 20 Mar, 2009 09:43
Location: Львов
Has thanked: 3 times

OLE2Viewer - анализ и просмотр структуры файлов OLE2

Post by SlashNet » Sat 31 Dec, 2016 08:27

А есть ли возможность сделать распаковку изображений которые используются в документе?
(да. я знаю про то что можно преобразовать в docx или xlsx и затем извлечь их как из архива, но хочется чего-нибудь попроще)
ədиw wo⊥є ʚ o⊥ʎнdəʚədəu əɔʚ

rivitna
Posts: 33
Joined: Wed 30 Nov, 2016 10:58
Has thanked: 1 time
Been thanked: 2 times

OLE2Viewer - анализ и просмотр структуры файлов OLE2

Post by rivitna » Sat 31 Dec, 2016 11:48

SlashNet wrote: А есть ли возможность сделать распаковку изображений которые используются в документе?
Хорошая мысль, надо сделать! Только решить по какому пути идти: тупо искать в потоках (Data - Word, Workbook - Excel) изображения (они хранятся в потоках в оригинальном виде), разбирать их структуры, определять их размер и извлекать их, или разбираться с форматами потоков.

montonero
Posts: 388
Joined: Wed 25 Jun, 2008 16:55
Has thanked: 2 times
Been thanked: 5 times

OLE2Viewer - анализ и просмотр структуры файлов OLE2

Post by montonero » Sun 01 Jan, 2017 02:26

Спасибо за плагин. Но наблюдается проблема с кодировками при работе с msi.
"Far... Far never changes..."

rivitna
Posts: 33
Joined: Wed 30 Nov, 2016 10:58
Has thanked: 1 time
Been thanked: 2 times

OLE2Viewer - анализ и просмотр структуры файлов OLE2

Post by rivitna » Sun 01 Jan, 2017 10:56

montonero wrote:Спасибо за плагин. Но наблюдается проблема с кодировками при работе с msi.
Да, знаю про такую проблему.
Дело в том, что в отличие от спецификация OLE CF в msi имена потоков не в юникоде, а используются вместо имен нечто похожее на идентификаторы, а имена хранятся в другом месте, надо почитать спецификацию и прикрутить. Сделаем.

rivitna
Posts: 33
Joined: Wed 30 Nov, 2016 10:58
Has thanked: 1 time
Been thanked: 2 times

OLE2Viewer - анализ и просмотр структуры файлов OLE2

Post by rivitna » Sat 14 Jan, 2017 19:31

Версия 1.0.2 rc
* BUG: исправление ошибок в извлечении метаданных;
* BUG: исправление ошибки копирования/просмотра/редактирования потоков, имена которых содержат недопустимые символы.

fps
Posts: 165
Joined: Wed 20 Apr, 2005 06:39
Has thanked: 11 times
Been thanked: 3 times

OLE2Viewer - анализ и просмотр структуры файлов OLE2

Post by fps » Sun 15 Jan, 2017 18:53

Открываем в плагине .doc файл
Заходим по Enter в "♣SummaryInformation"
Выходим обратно.
Курсор оказывается не на "♣SummaryInformation", а на выходе из файла ".."

rivitna
Posts: 33
Joined: Wed 30 Nov, 2016 10:58
Has thanked: 1 time
Been thanked: 2 times

OLE2Viewer - анализ и просмотр структуры файлов OLE2

Post by rivitna » Sun 15 Jan, 2017 23:40

fps wrote: Открываем в плагине .doc файл
Заходим по Enter в "♣SummaryInformation"
Выходим обратно.
Курсор оказывается не на "♣SummaryInformation", а на выходе из файла ".."
Да, есть такое дело! Вчера заметил спустя час, как выложил :) Долго думал, как обойти ограничение Windows на имена с недопустимыми символами. Придумал, и на радостях поспешил выложить, не учел, что плагин стал не корректно работать с путями внутри составного файла.

Поэтому:
Версия 1.0.3 rc
* BUG: исправление ошибки навигации по структуре файла OLE2.

User avatar
HaRT
Moderator
Posts: 8108
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 103 times

OLE2Viewer - анализ и просмотр структуры файлов OLE2

Post by HaRT » Tue 17 Jan, 2017 21:47

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

Я наткнулся на такую мелкую неприятность: если между префиксом и именем файла для лучшей читаемости (например, в пользовательском меню или в истории команд) оставить пробел, то он, очевидно, обрабатывается как часть имени файла и, соответственно, . Прошу удалять начальные и концевые пробелы.
Фар есть инструмент, а не нянька. © 2009 DrKnS

rivitna
Posts: 33
Joined: Wed 30 Nov, 2016 10:58
Has thanked: 1 time
Been thanked: 2 times

OLE2Viewer - анализ и просмотр структуры файлов OLE2

Post by rivitna » Tue 17 Jan, 2017 22:39

HaRT wrote: Я наткнулся на такую мелкую неприятность: если между префиксом и именем файла для лучшей читаемости (например, в пользовательском меню или в истории команд) оставить пробел, то он, очевидно, обрабатывается как часть имени файла и, соответственно. Прошу удалять начальные и концевые пробелы.
С взаимодействием плагина и FAR разбирался по исходникам других плагинов, в данном случае идею работы с префиксом и командной строкой, а также "мелкую неприятность" в качестве бонуса взял у Ariman из Observe. :oops: Там единственное, сообщения об ошибке нет. Думал, что это правильный подход :) Поправлю, не вопрос

rivitna
Posts: 33
Joined: Wed 30 Nov, 2016 10:58
Has thanked: 1 time
Been thanked: 2 times

OLE2Viewer - анализ и просмотр структуры файлов OLE2

Post by rivitna » Wed 18 Jan, 2017 12:02

Версия 1.0.4 rc
* BUG: исправление ошибки открытия плагина через меню "Команды плагинов" во временной панели;
* BUG: исправление ошибки открытия плагина через командную строку с префиксом "ole2";
+ Декодирование имен элементов в инсталляционных пакетах MSI/MSP/MSM.

Post Reply

Return to “Обсуждение плагинов”