До рассмотрения других, более интересных примеров следует обсудить некоторые инструментальные средства, выполняющие поиск различий. В предыдущем разделе было рассказано об использовании команды fc и разобран небольшой пример ее применения. Также говорилось об использовании шестнадцатеричных редакторов, редакторов секторов и калькулятора calc.exe для этих целей. Теперь давайте более внимательно познакомимся с применением и функциональными возможностями инструментальных средств сравнения. Применение инструментария сравнения файлов

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

Команда fc, включаемая в течение многих лет в DOS, а позднее и в Windows - первый инструментарий, который будет подробно рассмотрен. На машинах с операционной системой Windows 9х команду fc можно найти в директории с: \windows\command, с: Windows или, в крайнем случае, в одной из директорий Windows. По умолчанию директория с: \windows\command перечислена в списке каталогов, используемых для задания порядка поиска выполнимых программ. Список задается командой path. Поэтому при необходимости можно просто набрать fc и выполнить команду. Опции команды fc перечислены ниже: C:\windows\COMMAND>fc /? Compares two files or sets of files and displays the differences between them.

FC [/A] [/C] [/L] [/LBn] [/N] [AT] [/W] [/nnnn]
[drive 1:] [path 1 Jfilename 1 [drive2:][path2]filename2

FC/B [drivel:][path 1 Jfilename 1 [drive2:][path2]filename2 /А Displays only first and last lines for each set of differences.

/В Performs a binary comparison.

/С Disregards the case of letters.

/L Compares files as ASCII text.
/LBn Sets the maximum consecutive mismatches to the specified number of lines.
/N Displays the line numbers on an ASCII comparison.

/Т Does not expand tabs to spaces.

fW Compresses white space (tabs and spaces) for
comparison.
/nnnn Specifies the number of consecutive lines that must match after a mismatch.

О переключателе /Ь уже говорилось. При сравнении двоичных файлов без указания переключателя /Ь процесс сравнения файлов завершается при достижении символа конца файла или нулевого байта. У этой команды переключатели режимов не чувствительны к регистру. Другими словами, работа команды не зависит от того, набраны ли переключатели строчными или заглавными буквами. Например, в файле подсказки описан переключатель /В, набранный заглавными буквами, в то время как в книге продемонстрирована прекрасная работа команды с переключателем /Ь. У команды есть ряд дополнительных переключателей, который читатель сможет изучить самостоятельно. В дальнейшем будет сказано о ряде утилит, которые сравнивают текстовые файлы лучше, чем команда fc. Но если выбранная читателем утилита может и отсутствовать на его компьютере, то, в крайнем случае, fc всегда присутствует на машинах с операционной системой Windows.

Примечание

В первом приближении эквивалентом команды fc в системе UNIX является команда стр -I (I- строчная буква).

Использование команды diff

Первоначально команда diff появилась на платформе UNIX. Она позволяет сравнивать двоичные файлы, но особенно полезна для сравнения текстов. Фактически ее возможностей сравнения текстовых файлов более чем достаточно. Полностью перечислить все возможности команды diff на страницах этой книги не представляется возможным, потому что их слишком много. Но с ними можно ознакомиться на оперативных страницах руководств UNIX или по документации (man page, сокр. manual page - оперативная страница руководства, - гипертекстовая страница консультативной информации, поясняющая действие конкретной команды).

Для того чтобы у читателя стожилось представление о команде diff, если он не слышал о ней ранее, в главе приведен список наиболее часто используемых возможностей команды. Команда diff определяет изменения в двух файлах, которые нужно сделать для приведения их в соответствие друг к другу. Она позволяет запоминать версии файлов без необходимости хранения полных копий каждой версии файла. Команда diff настолько хороша, что понимает, должны ли строки удаляться или добавляться в файл при приведении файлов в соответствие друг к другу:

[root@rh /tmp]$ diff decode.с decode2.c 14al5

> #include <newinclude.h>

[root@rh /tmp]$ diff decode2.c decode.с 15dl4

< #include <newinclude.h>

Указанные в аргументах два файла (decode2.c и decode.с) полностью совпадают, за исключением строки с оператором #include <newinclude.h>, добавленной к файлу decode2.c. В первом примере файл decode.с - первый аргумент команды diff a decode2.c - второй. Протокол работы команды свидетельствует о том, что если во второй файл в 14-ю строчку добавить 15-ю строку из файла decode!.с #include <newinclude.h>, то далее файлы будут соответствовать друг другу. А если поменять аргументы местами, то для приведения файлов в соответствие надо будет удалить 15-ю строчку файла decode2.c (обратите внимание на буквы а в первом отчете и d во втором). Результат выполнения команды называется выводом команды diff (diff- файлом), или файлом различий, и обладает тем свойством, что если есть diff-файл и один из исходных сравниваемых файлов, то второй файл можно восстановить. Именно поэтому для отправки небольшого количества изменений текстового файла, особенно исходных текстов программ, часто используется пересылка файла различий. При отправке по почте открытых исходных текстов исправлений уязвимостей программ отправитель не всегда пересылает файл различий, который позволяет исправить исходный текст программы. Программа, которая исправляет ошибки, используя файл различий, называется патчем (заплаткой).

В зависимости от версии diff в отчет команды, кроме выявленных различий, включается и другая информация, например для редактора ed или системы управления аудитом (RCS -Revision Control System). Для того чтобы ее можно было обработать, включаемая информация должна содержать регулярные выражения для выполнения некоторых операций, понимать файлы программ, написанных на языке С, и, как часть своего отчета, может выводить имя функции, в которой выявлены изменения.

Благодаря проекту Cygwin доступна Windows-версия команды diff (как и большинство других программ UNIX). В рамках этого проекта задуман перенос ряда программного инструментария GNU и других программ UNIX на платформу Windows. В той или иной форме продукты GNU выпускаются под защитой общедоступной лицензии GNU (GPL -GNU PublicLicense), в соответствии с которой продукт становится общедоступен. Дополнительные сведения (включая пакет, содержащий Windows-версию команды diff) могут быть найдены по адресу http://sourceware.cygnus.com/cygwin.

Компания Microsoft включила утилиту Windiff в состав инструментария ресурсов (resource kits) Windows NT и Windows 98. Это графическая версия команды diff, которая отображает изменения разными цветами и имеет графическое представление удаляемых или вставляемых строк.

Работа с шестнадцатеричными редакторами

Говоря о применении шестнадцатеричных редакторов, уже упоминалось о возможности изменения двоичных файлов. Шестнадцатеричный редактор - это программное средство, позволяющее пользователю получить непосредственный доступ к двоичному файлу в обход приложения, использующего этот файл. Говоря о двоичных файлах, имеются в виду и текстовые файлы. Конечно, большинство людей используют для редактирования текстовых файлов специальные программы, поскольку применение для этих целей шестнадцатеричных редакторов неудобно и, говоря образно, сродни самоубийству.

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

Известно большое количество шестнадцатеричных редакторов, которые различаются ценой (от свободно распространяемых до коммерческих), качеством и функциональными возможностями. Для большинства людей выбор редактора определяется личными предпочтениями. Читателю следует попробовать несколько редакторов, пока он не найдет наиболее ему подходящий.

Далее кратко будут рассмотрены три шестнадцатеричных редактора: - Hackman, [N] Curses Hexedit и Hex Workshop. Их рассмотрение не охватывает все шестнадцатеричные редакторы. Просто они представляются автору наиболее интересными.

Hackman Hackman - свободно распространяемый шестнадцатеричный редактор в среде Windows. У него ряд возможностей, включая функции поиска, удаления, вставки, дизассемблирования, шестнадцатеричный калькулятор и многое, многое другое. Как видно из рис. 5.9, графический интерфейс пользователя (GUI) несколько аскетичен.

Интерфейс пользователя редактора Hackman

Рис. 5.9. Интерфейс пользователя редактора Hackman

В конце рис. 5.9 показано, что редактор Hackman предоставляет интерфейс командной строки. На рисунке приведен пример шестнадцатеричного редактирования файла cmd.exe при помощи редактора Hackman. Hackman легок в использовании. Кроме основных функциональных возможностей, необходимых пользователю при работе с шестнадцатеричным редактором, он дополнительно предоставляет хорошо продуманный интерфейс пользователя. Благодаря недавним усилиям разработчиков он надежен и удобен для пользователя. Редактор можно найти по адресу www.technologismiki.com/hackman. [N] Curses Hexedit [N] Curses Hexedit - другая свободно распространяемая программа (фактически ее можно рассматривать как более свободно распространяемую, поскольку она распространяется по общедоступной лицензии GPL). Поскольку программу можно получить по общедоступной лицензии, то ее исходные тексты общедоступны и разрешено их улучшать или адаптировать под нужды конкретного пользователя. Существуют версии редактора [N] Curses Hexedit для всех основных UNIX подобных операционных систем и DOS.

Если читатель думает, что интерфейс Hackman простой, то у этой программы, как видно из рис. 5.10,- явно спартанский.

Интерфейс редактора [N] Curses Hexedit, DOS версия Функциональные возможности редактора обычные для этого класса программ

Рис. 5.10. Интерфейс редактора [N] Curses Hexedit, DOS версия Функциональные возможности редактора обычные для этого класса программ. В редакторе реализована функция поиска, присутствует простой двоичный калькулятор, обычные команды просмотра и редактирования. Список команд представлен на рис. 5.11.

Подсказка редактора [N] Curses Hexedit Help Screen Если кому-то покажется, что в этом редакторе реализованы далеко не все функциональные возможности, то это компенсируется простотой, легкостью использования ресурса и поддержкой многочисленных платформ

Рис. 5.11. Подсказка редактора [N] Curses Hexedit Help Screen Если кому-то покажется, что в этом редакторе реализованы далеко не все функциональные возможности, то это компенсируется простотой, легкостью использования ресурса и поддержкой многочисленных платформ. Согласно журналу изменений, текущая версия редактора - 0.9.7 от 8 августа 1999 года. Из этого не следует, что проект свернут и не имеет будущего. Скорее всего, редактор полностью удовлетворяет требованиям своих разработчиков. Возможно, если автор решит добавить что-либо или будет найдена ошибка в редакторе, то будет выпущена очередная версия программы. Также возможно, что если читатель усовершенствует редактор и сообщит об этом разработчикам, то они включат его добавления в новый официальный выпуск. [N] Curses Hexedit можно получить по адресу http: //ccwf. сс. utexas. edu/~apoc/programs/c/hexedit.

Hex Workshop В заключение рассмотрим коммерческую версию шестнадцатеричного редактора Hex Workshop компании Breakpoint Software. Это относительно недорогой пакет (на момент написания книги он стоил $49.95) для платформы Windows. Бесплатно предоставляется 30-дневный испытательный срок использования программы. В редакторе реализован приятный интерфейс с полным набором функций. Интерфейс приведен на рис. 5.12.

Интерфейс пользователя Hex редактора Workshop

Рис. 5.12. Интерфейс пользователя Hex редактора Workshop

В состав Hex Workshop включены арифметические функции, конвертер системы счисления, калькулятор, калькулятор контрольной суммы и многие другие возможности. Если руки читателя привыкли к стандартным клавишам управления операционной системы Windows (например, по нажатии CTRL-F инициируется диалоговое окно поиска), то, вероятно, он почувствует себя в родных стенах. Если читатель - пользователь Windows, тратящий много времени на редактирование двоичных файлов, то, возможно, он захотел бы поближе познакомиться с пакетом. Hex Workshop может быть найден по адресу www.bpsoft.com.

Использование инструментария мониторинга файловой системы

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

Перед началом работы следует определиться, какой именно файл представляет интерес для исследования. Иногда он может быть определен при помощи метода проб и ошибок, иногда - на основе тех или иных предположений. Но в любом случае желательно иметь средства, которые бы облегчили этот процесс.

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

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

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

Очевидно, что так можно сделать, но на это уйдет больше времени и труда, чем если бы читатель поступил по-другому. Хотя в отдельных случаях ручное сравнение - лучший способ исследования. Например, при исследовании реестра Windows (Windows Registry -иерархическая база данных, хранящая информацию о конфигурации компьютера и об аппаратном и программном обеспечении; организована в структуру поддеревьев с ключами и подключами) может получиться так, что на исследуемой машине не окажется инструментальных средств контроля нужной части реестра. В то же время утилита Regedit почти всегда доступна. Она позволяет экспортировать реестр Windows в текстовый файл. В других случаях, при необходимости отбора нескольких файлов среди ряда дополнительных, поиск различий на всем диске может оказаться предпочтительным для первоначальной локализации файла, представляющего интерес. Иногда метод грубой силы может оказаться привлекательнее тонких методов исследования, особенно если на их подготовку потребуется дополнительное время.

Сравнение атрибутов файла Один из методов поиска модифицированных файлов, позволяющих избежать копирования файлов, основан на использовании их атрибутов. К атрибутам файла относятся дата, время создания и модификации файла и разрешения работы с ним. Некоторые из них могут оказаться полезными для определения только что измененных файлов.

Ниже представлен уместный фрагмент кода файла ext2_fs.h инсталляции Red Hat 6.2 Linux:

/* * Structure of an inode on the disk
*/
struct ext2_inode {
_ul6 i mode; /* File mode */
_ul6 i_uid; /* Owner Uid */
_u32 i_size; /* Size in bytes */
_u32 i_atime; /* Access time */
_u32 i_ctime; /* Creation time */
_u32 i_mtime; /* Modification time */
_u32 i_dtime; /* Deletion Time */
_ul6 i_gid; /* Group Id */
_u l 6 i links count; /* Links count */
_u32 i_blocks; /* Blocks count */
_u32 i_flags; /* File flags */

В большинстве UNIX-систем атрибуты файла описаны похожим способом. В их состав входят владелец, размер, несколько полей времени и даты, группа, счетчик связей этого файла, число используемых блоков диска и флаги файла (стандартные разрешения чтения, записи и выполнения файлов). Какие атрибуты интересны для нас? В большинстве случаев это один из атрибутов времени и размер файла. Любой из них может быть определен переадресовыванием вывода команды Is al в файл до и после наступления анализируемого события с последующим сравнением двух файлов, как это показано в следующем примере: [elliptic@ellipse]$ diff /tmp/before /tmp/after 2,3c2,3

< drwxrwxr-x 2 ryan ryan 7168 Jun 16 01:55 .
< drwxrwxrwt 9 root root 1024 Jun 16 01:55 ..
> drwxrwxr-x 2 ryan ryan 7168 Jun 16 01:56 .
> drwxrwxrwt 9 root root 1024 Jun 16 01:56 ..
97c97
< -rw-r-r- 1 ryan ryan 31533 Jun 16 01:55 fs.h
> -rw-r-r- 1 ryan ryan 31541 Jun 16 01:56 fs.h

Из примера видно, что файл fs.h изменился. Этот способ сравнения содержимого директории обнаруживает изменение любого атрибута файла. Быстрый способ простого отслеживания изменения атрибута времени заключается в использовании команды Is - al, показанной в следующем примере. Команда Is - al ъ примере соединена программным каналом с командой тоге:

[elliptic@ellipse]$ Is -alt I more total 2224 drwxrwxrwt 9 root root 1024 Jun 16 01:56 .. drwxrwxr-x 2 ryan ryan 7168 Jun 16 01:56 .
-rw-r-r- 1 ryan ryan 31541 Jun 16 01:56 fs.h -rw-r-r- 1 ryan ryan 7295 Jun 16 01:55 a.out.h -rw-r-r- 1 ryan ryan 2589 Jun 16 01:55 acct.h -rw-r-r- 1 ryan ryan 4620 Jun 16 01:55 adfs_fs.h

... и т. д. Файлы, модифицированные последними, выводятся первыми. В DOS/Windows команда dir /о: d позволяет отсортировать список выводимых файлов по дате, как это показано в следующем примере:

C:\date>dir /o:d Volume in drive С has no label Volume Serial Number is ЗСЗВ-11E3 Directory of C:\date

HEX-EDIT EXE 58,592 03-14-95 9:5 lp Hex-edit.exe HEXEDI-l GZ 165,110 06-05-00 ll:44p hexedit-0_9_7_tar.gz HEXEDIT EXE 158,208 06-06-00 12:04a hexedit.exe . <DIR> 06-16-00 12:18a .
.. <DIR> 06-16-00 12:18a..
3 file(s) 381,910 bytes 2 dir(s) 10,238.03 MB free

В этом случае последние модифицированные файлы помещены в конец отчета. Использование атрибута «Архивный» Расскажем о небольшой уловке, доступной пользователям DOS/Windows. Таблица размещения файлов (FAT - file allocation table) содержит атрибут файла «Архивный». Первоначально атрибут предназначался для определения факта изменения файла после последнего резервного копирования. В случае модификации файла этот атрибут свидетельствовал о необходимости создания очередной архивной копии файла. Конечно, после модификации файлов этим атрибутом можно воспользоваться для собственных целей. Посмотрите на пример просмотра директории с помощью команды attrib:

C:\date>attrib А HEX-EDIT.EXE C:\date\Hex-edit.exe А HEXEDIT.EXE C:\date\hexedit.exe A HEXEDI1 GZ C:\date\hexedit-0_9_7_tar.gz

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

C:\date>attrib -а *.* C:\date>attrib HEX-EDIT.EXE C:\date\Hex-edit.exe HEXEDIT.EXE C:\date\hexedit.exe HEXEDI~1 GZ C:\date\hexedit-0_9_7_tar.gz

Теперь если изменить один или два файла из группы, то их атрибут «Архивный» будет установлен снова, как это показано на следующем примере:

C:\date>attrib A HEX-EDIT.EXE C:\date\Hex-edit.exe HEXEDIT.EXE C:\date\hexedit.exe HEXEDI~1 GZ C:\date\hexedit-0_9_7_tar.gz

Из примера видно, что у файла HEX-EDIT.EXE после его изменения опять установлен атрибут «Архивный». Хорошей возможностью команды attrib является переключатель /s, который позволяет обработать файл с указанными именами в текущей директории и во всех ее поддиректориях. После этого можно воспользоваться командой dir /а: а (вывод файлов с указанным атрибутом а - файлы для архивирования) для просмотра измененных файлов. Исследование контрольных сумм и кэш-значений Одна из центральных проблем обеспечения безопасности заключается в определении факта изменения файла. Можно ли при этом доверять атрибутам файлов? Атрибуты файлов можно фальсифицировать. Довольно несложно установить нужные значения атрибутов файлов: размер файла, дата и время последней модификации. Большинство приложений это не делает, но иногда вирусы, Троянские кони или программы типа rootkit могут изменять их для скрытия своего присутствия. Противостоять этому позволяют алгоритмы подсчета контрольных сумм и криптографического кэширования.

Алгоритмы подсчета контрольных сумм, например алгоритмы контроля с помощью циклического избыточного кода CRC (CRC - cyclical redundancy check), легко фальсифицируются, если злоумышленник или его программа знает используемый для контроля файлов алгоритм. Поэтому вместо контрольных сумм рекомендуется использовать криптографически стойкие алгоритмы кэширования. Важная особенность алгоритмов кэширования состоит в том, что возможность получения для двух различных кэшируемых файлов одной и той же величины кэш-значения ничтожно мала. Практически невозможно подменить один файл другим с той же самой величиной кэш-значения. Величина кэш-значения - это обычно 128-битовое или 160-битовое двоичное число, для хранения которого требуется значительно меньше места, чем для кэшируемого файла.

Алгоритмы кэширования позволяют определить модификацию файла, несмотря на все попытки скрыть это. Для каждого контролируемого файла вычисляется величина кэш-значения до и после некоторого события. Если эти две величины различаются, то файлы были изменены, несмотря на то что атрибуты файлов остались прежними.

Очевидно, этот метод имеет хорошие перспективы для обеспечения безопасности систем. Чтобы быть совершенно точным, автор должен частично отречься от своего утверждения, что при помощи алгоритмов кэширования можно определить изменения файлов, выполненные программами типа root kit. Они позволят определить изменения файлов, выполненные при помощи наивных программ этого типа. Действительно, хорошая программа типа root kit, предполагая о возможности кэширования, вынуждает операционную систему работать с разными файлами в разное время. Например, при чтении файла (кстати говоря, программой кэширования), измененная операционная система передает реальный исходный файл. При запросе на выполнение выполняется модифицированный файл.

Примеры подобной технологии можно найти на сайте rootkit.com в разделе «EXE Redirection» («Переадресация выполнимых файлов»). Этот сайт посвящен разработке открытых исходных текстов программ типа root kit для NT.

Другие инструментальные средства

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

Если хакер когда-либо занимался программированием, то наверняка он захочет воспользоваться каким-нибудь средством или языком программирования. Как и в случае редакторов, выбор средств программирования - дело очень личное и субъективное. Сгодится любой язык программирования с полным набором функций, который позволяет получить доступ к любым файлам или адресам памяти. Если злоумышленнику потребуется доступ к специальным файлам, например к реестру Windows (Windows Registry), ему потребуется язык программирования, который предоставляет средства работы с ними. В случае реестра Windows это может быть компилятор языка С с соответствующими библиотеками, предоставляющими программный интерфейс приложения API (API - application programming interface), ActiveState Perl for Windows и, возможно, многие, многие другие. Те, кто заинтригован, могут найти ActiveState Perl for Windows в Интернете по адресу www. active state. com/Products/ ActiveP erl/index. html.

Программа Game Wizard 32 была создана во время господства DOS на рынке компьютерных игр. Эта программа предоставляет игрокам ряд дополнительных возможностей, но сейчас будет рассказано только об одной из них, относящейся к теме обсуждения. Эта программа обладает возможностью поиска различий для игр. Это резидентная программа, постоянно присутствующая в оперативной памяти после ее запуска. После старта Game Wizard 32 можно начинать игру. В процессе игры игрок записывает на свой счет некоторые величины (набранные очки, золотой запас, запас энергии и т. д.), изменяя параметры игры. В результате будет составлен список найденных параметров игры (list of matches). Затем, после изменения параметров игры, можно еще раз просмотреть список, найти различия, отредактировать их и возобновить игру с новыми параметрами.

В настоящее время большинство игроков называет подобные игры тренерами или редакторами памяти. Принцип их работы аналогичен рассмотренному ранее принципу работы с файлами. Широкий диапазон программ этого класса может быть найден по адресу http://gamesdomain.telepac.pt/directd/pc/dos/tools/gwiz32.html.

Другие инструментальные средства, которые могут оказаться чрезвычайно полезными при работе в Windows, - это программы File Monitor (FileMon) и Registry Monitor (RegMon) компании Sysintemals. Если читатель работает с NT, то пусть он попробует программу HandleEx, которая предоставляет похожие возможности. Сайт компании находится по адресу www.sysintemals.com. На сайте много полезных утилит, большинство из которых свободно распространяются вместе с исходными текстами.

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

Отчет программы РПеМоп Применяя фильтрование, можно узнать о действиях выбранной для анализа программы, сократив объем выводимой информации

Рис. 5.13. Отчет программы РПеМоп Применяя фильтрование, можно узнать о действиях выбранной для анализа программы, сократив объем выводимой информации. Обратите внимание, что при фильтрации во время чтения файла отображаются смещение и длина читаемых данных, что помогает определить их адрес в файле. Таким образом, программа РПеМоп предоставляет еще один способ сокращения списка просматриваемых файлов. К^Моп - другая программа компании Буз^етак. Как и следовало ожидать, она аналогична РПеМоп, но работает с реестром

\Утс1о\У8, как это показано на рис. 5.14.

Отчет программы RegMon Во время подготовки этого примера автор слушал приложение Spinner с сайта spinner

Рис. 5.14. Отчет программы RegMon Во время подготовки этого примера автор слушал приложение Spinner с сайта spinner.com, который использует Real Audio для воспроизведения музыки. Во время своего выполнения Real Audio находится в состоянии «занято». В строчке с номером 472 можно увидеть работу протокола динамической конфигурации хоста DHCP (DHCP - Dynamic Host Configuration Protocol). Протокол динамической конфигурации хоста является сетевым стандартом, регламентирующим процесс присваивания сервером IP-адресов и другой конфигурационной информации машинам-клиентам. Программа RegMon особенно полезна для проверки подозрений о записи приложением чего-либо интересного где-нибудь в потаенном местечке реестра или при попытке определить действия Троянского коня. Программа также информирует при копировании и сравнении всего реестра в целом.

Суть поиска различий | Защита от хакеров корпоративных сетей | Поиск неисправностей


Защита от хакеров корпоративных сетей



Новости за месяц

  • Октябрь
    2019
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс