Извлечение картинок из файлов Microsoft Word

Внутри документа Microsoft Word может содержаться множество самой разной информации: таблицы и диаграммы, рисунки и элементы форматирования, формулы и ссылки. Однако иногда возникает необходимость извлечения какого-либо рисунка из документа и сохранения его отдельно. К таким рисункам могут относиться съёмки экрана или вставленные прямо в редактор отсканированные фотографии. Сегодня мы приведём два с половиной способа, с помощью которых читатели смогут вытащить картинки из документов. Вариант пересъёмки экрана с последующей вставкой в графический редактор мы не рассматриваем, так как это занятие чрезмерно трудоёмкое и может привести к значительному искажению первоначального изображения или потере его качества.

Первый способ доступен также и для старых версий Microsoft Office, суть его состоит в том, чтобы повторно сохранить документ в формате Веб-страницы (*.htm, *.html). При сохранении следует обратить внимание на используемое сжатие рисунков (Сервис-Сжать рисунки…), требуется снять галочку Выполнять базовое сжатие при сохранении и выбрать приемлемое качество вывода.

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

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

Второй способ, на наш взгляд, выглядит более элегантным и для своего выполнения не требует наличия установленного пакета Microsoft Office, правда, файл должен быть сохранён в формате Office 2007 или более новом и иметь расширение docx. Сохранение документа в таком формате возможно не только с помощью офисного пакета версии 12 (Office 2007), но также и с помощью специального конвертера для Office XP или 2003. Документ в формате Office 2007 по своей сути является ZIP-архивом нескольких служебных файлов и пользовательских изображений. Мы открыли директорию с документами в новом формате с помощью архиватора WinRAR x64 3.93. Ниже приводится информация об одном из содержащихся в папке файлов.

Мы решили извлечь файлы из архива, для чего воспользовались кнопкой Извлечь… панели инструментов архиватора. После процедуры распаковки требуется перейти в каталог word\media, расположенный внутри папки для извлечения. В этом каталоге и будут находиться извлечённые картинки. Здесь же необходимо заметить, что параметры обрезки краёв пользовательских изображений не сохраняются, то есть если у какого-либо изображения были обрезаны края средствами редактора Microsoft Word, то после извлечения картинки будут полными, то есть обрезанные края также будут присутствовать.

Если специализированный архиватор на компьютере не установлен, то можно поменять расширение файла с docx на zip и обрабатывать его с помощью встроенного в Windows механизма zip-папок.

Наш третий способ во многом основывается на втором, а именно использует архиватор WinRAR для обработки документа, но в скрытой форме. Мы установили файловый менеджер Far 2.0 x64 (Сборка 1420), к которому подключили предустановленный WinRAR для обработки архивов. Такое подключение можно осуществить с помощью приведённого ниже файла реестра.

REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Far2\Plugins\MultiArc\ZIP]
"Extract"="winrar x {-p%%P} {-ap%%R} -y -c- {%%S} %%A @%%LNM"
"ExtractWithoutPath"="winrar e -av- {-p%%P} -y -c- {%%S} %%A @%%LNM"
"Test"="winrar t -y {-p%%P} -c- {%%S} %%A @%%LNM"
"Delete"="winrar d -y {-w%%W} {%%S} %%A @%%LNM"
"Comment"="winrar c -y {-w%%W} {%%S} %%A"
"CommentFiles"="winrar cf -y {-w%%W} {%%S} %%A {@%%LNM}"
"SFX"="winrar s -y {%%S} %%A"
"Lock"="winrar k -y {%%S} %%A"
"Protect"="winrar rr -y {%%S} %%A"
"Recover"="winrar r -y {%%S} %%A"
"Add"="winrar a -y {-p%%P} {-ap%%R} {-w%%W} {%%S} %%A @%%LN"
"Move"="winrar m -y {-p%%P} {-ap%%R} {-w%%W} {%%S} %%A @%%LN"
"AddRecurse"="winrar a -r0 -y {-p%%P} {-ap%%R} {-w%%W} {%%S} %%A @%%LN"
"MoveRecurse"="winrar m -r0 -y {-p%%P} {-ap%%R} {-w%%W} {%%S} %%A @%%LN"
"AllFilesMask"="*.*"

Теперь Far может работать с документами docx, как с обычными папками, то есть просматривать из них файлы и копировать данные в несжатые обычные каталоги. Также допускается открывать файлы в связанных программах-редакторах с помощью привычного нажатия на Enter.

Правда, простая вставка графического файла в архив не приведёт к желаемым результатам: при попытке открыть документ Microsoft Word выдаст сообщение об ошибке. Для такой вставки потребуется править xml-файлы со структурой документа, расположенные в архиве, но это уже совершенно другая тема.

Краткий обзор нескольких способов извлечения пользовательских картинок из документов Microsoft Word на этом завершается, от себя мы лишь хотели бы добавить, что переход к открытому формату документа в Office 2007 сделает его поддержку сторонними разработчиками простой и прозрачной.

Прослушивание сети с помощью Cisco PIX/ASA

На нашем сайте с завидной периодичностью появляются посвящённые перехвату сетевого трафика статьи. Мы решили не нарушать традицию и вновь представить нашим читателям материал, посвящённый перехвату сетевого трафика с помощью аппаратных средств. На этот раз в качестве аппаратной платформы был выбран аппаратный брандмауэр Cisco PIX. В пришедшей на смену серии PIX линейке Cisco ASA также поддерживается описываемый здесь функционал. Мы не станем разбирать все возможности сетевой операционной системы по перехвату и указывать ситуации, в которых такой функционал может потребоваться сетевому администратору, уверены, читатели легко найдут применение материалу сами. Также хотелось бы отметить, что все размещённые здесь данные и примеры представлены исключительно в образовательных целях. Итак, к делу!

Для тестовых целей мы использовали брандмауэр Cisco PIX 515 с тремя Fast Ethernet интерфейсами, параметры которого представлены ниже.

Hardware:   PIX-515, 128 MB RAM, CPU Pentium 200 MHz
Flash i28F640J5 @ 0x300, 16MB
BIOS Flash AT29C257 @ 0xfffd8000, 32KB
Cisco PIX Security Appliance Software Version 8.0(4)

В привилегированном режиме командной строки брандмауэра пользователю доступна команда capture. Подробное описание всех возможностей данной команды доступно на веб-сайте производителя.

pix515# ?
aaa-server Specify a AAA server
activation-key Modify activation-key
asdm Disconnect a specific ASDM session
blocks Set block diagnostic parameters
capture Capture inbound and outbound packets on one or
more interfaces
cd Change current directory
clear Reset functions
client-update Execute client updates on all or specific
tunnel-groups
clock Manage the system clock
configure Configure using various methods
copy Copy from one file to another
cpu general CPU stats collection tools
crashinfo Crash information
crypto Execute crypto Commands
debug Debugging functions (see also 'undebug')
delete Delete a file
dir List files on a filesystem
disable Exit from privileged mode
downgrade Downgrade the file system and reboot
dynamic-access-policy-config Activates the DAP selection configuration file.
eou EAPoUDP
erase Erase a filesystem
<--- More --->

Первое что требуется сделать, это задать имя для создаваемого нами перехвата. После задания имени необходимо указать интерфейс, на котором будет осуществляться перехват. Если не указать интерфейс для перехвата, то сам перехват будет выглядеть как живой, но данные в его буфер попадать не будут. Фильтровать сохраняемые данные можно с помощью заранее сконфигурированного списка доступа, либо же вручную указывая критерии отбора сетевого трафика.

pix515# capture ?
WORD Capture name
pix515# capture test ?
access-list Capture packets that match access-list
buffer Configure size of capture buffer, default is 512 KB
circular-buffer Overwrite buffer from beginning when full, default is
non-circular
ethernet-type Capture Ethernet packets of a particular type, default is IP
headers-only Capture only L2, L3 and L4 headers of packet without data in
them
interface Capture packets on a specific interface
match Capture packets matching five-tuple
packet-length Configure maximum length to save from each packet, default
is 68 bytes
real-time Display captured packets in real-time. Warning: using this
option with a slow console connection may result in an
excessive amount of non-displayed packets due to performance
limitations.
trace Trace the captured packets
type Capture packets based on a particular type
<cr>
pix515# capture test interface ?
Available interfaces to listen:
inside Name of interface Ethernet1
outside Name of interface Ethernet0

Попробуем отобрать весь ICMP-трафик с любого хоста на любой, который проходит через внутренний интерфейс брандмауэра. Для чего воспользуемся нижеприведённой командой.

capture test interface inside match icmp any any

Как только вызов выполнен брандмауэр начинает сохранять в буфере удовлетворяющие условию пакеты. Убедиться в этом можно с помощью команды show capture. Размер буфера можно сконфигурировать с помощью параметра buffer команды capture. Также можно использовать циклический буфер с помощью параметра circular-buffer.

pix515# show capture
capture test type raw-data interface inside [Capturing - 30780 bytes]
match icmp any any

Если требуется посмотреть перехваченные данные, то можно конкретизировать вызов show capture, задав имя интересующего перехвата.

pix515# sho capture test
522 packets captured
1: 21:24:38.629087 192.168.1.2 > 192.168.1.1: icmp: echo request
2: 21:24:38.630765 192.168.1.1 > 192.168.1.2: icmp: echo reply
3: 21:24:39.630109 192.168.1.2 > 192.168.1.1: icmp: echo request
4: 21:24:39.631665 192.168.1.1 > 192.168.1.2: icmp: echo reply

Также возможно просматривать не только общие сведения о пакетах, но и само их содержимое.

pix515# sho capture test dump
522 packets captured
1: 21:24:38.629087 192.168.1.2 > 192.168.1.1: icmp: echo request
0x0000 4500 003c 12a7 0000 7e01 9781 ac11 2324 E..<....~.....#$
0x0010 c0a8 02bb 0800 35cb 0001 1790 6162 6364 ......5.....abcd
0x0020 6566 6768 696a 6b6c 6d6e 6f70 7172 7374 efghijklmnopqrst
0x0030 7576 7761 6263 6465 6667 6869 uvwabcdefghi
2: 21:24:38.630765 192.168.1.1 > 192.168.1.2: icmp: echo reply
0x0000 4500 003c 4656 0000 ff01 e2d1 c0a8 02bb E..<FV..........
0x0010 ac11 2324 0000 3dcb 0001 1790 6162 6364 ..#$..=.....abcd
0x0020 6566 6768 696a 6b6c 6d6e 6f70 7172 7374 efghijklmnopqrst
0x0030 7576 7761 6263 6465 6667 6869 uvwabcdefghi

В том случае, когда требуется сохранить результаты перехвата можно их просто скопировать на флеш, либо сразу же передать по сети на FTP или TFTP сервера. В нижеприведённом листинге мы сначала сохраняем на флеш, а потом ещё и копируем этот файл FTP-сервер, размещённый в нашем примере на компьютере с IP-адресом 192.168.1.1, на котором заведён пользователь admin с паролем admin.

pix515# sho fla
Directory of flash:/
4 -rw- 7538688 18:01:44 May 09 2009 pix804.bin
7 -rw- 10101 01:40:46 May 24 2009 pix515-2_conf_20090523
9 -rw- 19369 03:58:47 May 24 2009 pix515-1_conf_20090523
15998976 bytes total (8401920 bytes free)
pix515# copy /pcap capture:/test flash:/test
Source capture name [test]?
Destination filename [test]?
!!!!
222 packets copied in 0.280 secs
pix515# sho fla
Directory of flash:/
4 -rw- 7538688 18:01:44 May 09 2009 pix804.bin
7 -rw- 10101 01:40:46 May 24 2009 pix515-2_conf_20090523
9 -rw- 19369 03:58:47 May 24 2009 pix515-1_conf_20090523
12 -rw- 15579 23:05:37 Apr 15 2010 test
15998976 bytes total (8386048 bytes free)
pix515# copy flash:/test ftp:// admin:Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра..1.2
Source filename [test]?
Address or name of remote host [192.168.1.2]?
Destination username [admin]?
Destination password [admin]?
Destination filename [test]?
!!!!!
15579 bytes copied in 0.250 secs

В приведённом выше листинге необходимо особое внимание уделить параметру /pcap, который указывался при копировании из capture на flash, так как именно при его указании происходит копирование данных в формате, понятном утилитам TCPdump и Wireshark, иначе же данные будут скопированы в текстовом формате.

Забрав файл test с FTP-сервера, мы открыли его в Wireshark для последующего анализа. Таким «анализом» может являться, например, восстановление голосовых данных из RTP-потока.

Остановить перехват можно с помощью команды no capture name, где name – название перехвата.

На этом краткий обзор возможностей Cisco PIX/ASA по перехвату сетевого трафика завершается.

Восстановление голоса из перехваченных RTP-потоков

На наших страницах не один раз появлялись материалы о том, как можно осуществлять аппаратный перехват трафика в сети. В тех случаях, когда перехват осуществляется с помощью SOHO-маршрутизаторов, у администратора нет возможности сохранять большие объёмы данных, либо делать перехват с большой скоростью. Казалось бы, для современных сетей это теряет актуальность, однако сегодня мы хотим представить одну ситуацию, в которой возможностей существующих продуктов будет достаточно. Речь идёт о перехвате голосового трафика для его последующего анализа и восстановления аудиоданных с помощью утилиты Wireshark.

Кроме описанных уже на нашем сайте способов аппаратного перехвата трафика существует и традиционный перехват с помощью самого же Wireshark, но для этого требуется, чтобы все необходимые потоки попадали и на компьютер со снифером. Этого можно достичь подключением всех узлов к концентратору, что, к сожалению, приведёт к падению производительности всей сети, поэтому такой вариант считаем неприемлемым. Ещё одним вариантом является возможность зеркалирования проходящих данных в специальный порт. Так, например, коммутаторы Catalyst 2950 компании Cisco Systems позволяют выделить отдельный интерфейс, в который будут перенаправляться интересующие потоки. В приведённой ниже конфигурации передаваемые через порт Fa0/5 данные будут копироваться в порт Fa0/10.

Switch(config)# monitor session 1 source interface fastEthernet0/5
Switch(config)# monitor session 1 destination interface fastEthernet0/10

Недостатком такой схемы будет невозможность обычной работы хоста, подключённого к порту Fa0/10. Другими словами узел, подключённый к интерфейсу Fa0/10 сможет только получать зеркалированные данные, но не сможет отправлять и получать свои собственные фреймы.

В проводных маршрутизаторах Linksys RVS4000 указанная выше проблема отсутствует, однако существует другая – администратор может получить только входящие данные, но не исходящие из порта. Конечно же, можно было бы зеркалировать все порты, но использование IPSec с WAN-порта может существенно усложнить задачу, если за RVS4000 расположен только один из собеседников, и телефонный трафик шифруется при передаче через интернет с помощью IPSec. Мы обращались в Linksys с этой проблемой несколько раз, но, к сожалению, не смогли получить никакого вразумительного ответа или обещания решить указанную проблему в будущих прошивках. Настроить зеркалирование входящего потока данных можно в пункте Port Mirroring меню L2 Switch.

Маршрутизатор ASUS RX3042H позволяет отдельно указать какие потоки и из каких портов необходимо зеркалировать. Увы, среди этих портов нет WAN-интерфейса. Настройка обсуждаемой возможности в данной модели производится с помощью пункта Port Mirroring меню Router Setup.

Предположим, что каким-то образом нам всё-таки удалось перехватить заветные пакеты и сохранить их. Откроем этот файл в Wireshark. В случае, когда пакеты RTP теряются среди огромного количества других данных, можно настроить фильтр, указав rtp в соответствующем поле.

Выберем один RTP-пакет из разговора и обратимся к меню Telephony-RTP-Stream Analysis.

Изучение статистической информации о перехваченном голосовом потоке не входит в наши планы, поэтому мы сразу перейдём к сохранению аудиоданных, для чего необходимо нажать кнопку Save payload…

В окне сохранения аудио-файла требуется указать его имя и местоположение, формат, а также выбрать сохраняемый канал-направление. К сожалению, в Wireshark с сохранением аудио-файла тоже не всё хорошо, вам придётся установить самую последнюю версию (хотя бы новее версии 1.2.4, в которой исправлена ошибка 4120) для того, чтобы иметь возможность сохранять в один файл оба направления.
Кроме непосредственного сохранения перехваченного телефонного разговора может возникнуть необходимость предварительного прослушивания записи. Для решения указанной проблемы требуется обратиться к меню Telephony-VoIP Calls, в котором будут представлены все перехваченные разговоры.

Далее требуется выбрать нужный разговор и нажать кнопку Player. В появившемся окне следует нажать кнопку Decode. Опция Use RTP timestamp позволяет использовать встроенные в RTP отметки времени вместо того, чтобы ориентироваться на время прибытия пакетов. Изменение параметра Jitter buffer [ms] позволяет эмулировать воспроизведение реального голосового потока с конкретного устройства с фиксированным объёмом входного буфера.

Сразу же после декодирования появляется возможность прослушивания перехваченного потока аудио-данных с помощью кнопок Play, Pause и Stop.

Краткий обзор голосовых возможностей Wireshark на этом завершается. В заключении добавим, что по похожему принципу строятся офисные системы записи телефонных переговоров: перехватывается весь поток данных SIP или H.323 сервера, а также трафик с самих телефонных аппаратов для последующего детального анализа. Задача существенно упрощается в том случае, когда под телефонию выделяется отдельный VLAN.

Перехват трафика в Windows с помощью KIS 2010

Видимо, перехват сетевого трафика – модная возможность в современном мире, если даже производители антивирусной защиты начали встраивать её в свои продукты. Перехватчики общего назначения известны (Ethereal/Wireshark, Network Monitor) всем сетевым специалистам, в случае же специфических потребностей можно либо анализировать сохранённые снифферами пакеты, либо написать собственный продукт под Windows с помощью библиотеки WinPcap, либо под *nix системы. Такой перехватчик появился впервые в продукте сетевой защиты Kaspersky Internet Security версии 2009 года. В KIS 2010 сниффер не претерпел существенных изменений. Мы установили KIS 2010 (9.0.0.463) на операционную систему Windows XP x64 Eng SP2 и KIS 2009 (8.0.0.506) на Windows Vista Ultimate x64 Eng SP2 и приступили непосредственно к перехвату с помощью пункта Анализ сетевых пакетов меню Безопасность+ (Защита-Фильтр содержимого-Анализ сетевых пакетов для версии 2009).

Правда, отображение монитора Анализа сетевых пакетов нужно сначала разрешить в группе Анализ сетевых пакетов пункта Сеть меню Параметры.

Далее речь пойдёт исключительно о версии Kaspersky Internet Security 2010, хотя отличий сетевого анализатора нет. Хотелось бы обратить внимание читателя на то, что сетевой анализатор в KIS 2009/2010 нельзя назвать полноценным, он предназначен, скорее, для беглого просмотра входящего и выходящего трафика.

Вы вполне сможете просмотреть флаги транспортного протокола TCP, однако изучать содержимое протокола HTTP придётся вручную. Сетевые анализаторы общего назначения (Wireshark и NetMon) обладают куда более внушительным списком поддерживаемых протоколов.

Кроме указанного ограничения существует и ещё одно: нет возможности экспорта перехваченных данных для их обработки в другой программе. Также невозможно импортировать трафик из другого сниффера. Wireshark и NetMon, естественно, обладают возможностью сохранения сетевого трафика в формате, понятном другим программным продуктам.

Удивление вызвала и загрузка процессора при работе анализатора сетевых пакетов в KIS2009/2010. Параметры аппаратного обеспечения одной из тестовых машин представлены ниже. При такой аппаратной платформе на Windows XP x64 SP2 Eng наблюдалась 50% загрузка обоих ядер. Мы запустили анализатор на аналогичной аппаратной платформе, но под Windows Vista x64 SP2 Rus. Ситуация с половинной загрузкой повторилась.

На компьютер под Windows XP x32 SP3 Rus с одноядерным процессором и частотой 1.5 ГГц был установлен KIS2010. Загрузка этого процессора составила 100%.

Естественно, мы обратились к технической поддержке производителя антивирусного продукта за разъяснениями, ведь на указанных аппаратных платформах работа прочих сетевых анализаторов не приводила к сколь-нибудь заметной загрузке процессора. Полученный ответ нас, мягко говоря, удивил. Из ответа следовало, что такое поведение KIS2009/2010 является нормальным, так как антивирус проводит глубокий анализ проходящего трафика, поэтому Лаборатория Касперского не рекомендует непрерывное использование анализатора сетевых пакетов. Удивление усиливалось ещё и потому, что в момент тестов по сети передавалось 1-2 пакета в секунду.

Хотелось бы отдельно указать на то, что в данной статье мы не обсуждаем достоинства или недостатки всего программного комплекса Kaspersky Internet Security, но лишь рассматриваем встроенный в антивирусный продукт анализатор сетевых пакетов.

Краткий обзор сетевого анализатора, появившегося в программных средствах сетевой защиты Лаборатории Касперского на этом завершается.