Опубликован: 20.02.2007 | Уровень: специалист | Доступ: платный
Лекция 24:

Средства просмотра файлов и редакторы общего назначения

Аннотация: Выбор подходящих редакторов и средств просмотра файлов является очень важным. В данной лекции описаны основные инструменты для Windows и Unix

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

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

Команда file

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

Реализация

Команда file принимает в качестве аргумента имя файла. Она выполняется следующим способом:

forensic# file <имя файла>

Команда file смотрит на заголовки и другие свойства указанного файла в файле "magic". Файл "magic" в большинстве операционных систем Unix, расположен в каталоге /usr/share/magic. Файл "magic" содержит сигнатуры многих известных файлов, таких как текстовые файлы, исполняемые, сжатые и другие.

Вы можете указать другой файл "magic" вместо файла, заданного по умолчанию, используя ключ -m.

forensic# file -m mymagicfile.txt <имя файла>

Эта команда будет использовать файл mymagicfile.txt, расположенный в текущем каталоге, в качестве таблицы для поиска сигнатур файлов.

Ниже приводится пример типов вывода, которые дает команда file.

forensic# file netcat.c
netcat.c: ASCII C program text, with CRLF line terminators
forensic# file nc.exe
nc.exe: MS Windows PE 32-bit Intel 80386 console executable not relocatable
forensic# file nc11nt.zip
nc11nt.zip: Zip archive data, at least v2.0 to extract
forensic# cd suspiciousfiles
forensic# file *
Finding Me.mp3: mp3 file with ID3 2.0 tag
Finding Me.wma: Microsoft ASF
Somebrowserimagefile.tif: mp3 file with ID3 2.0 tag

Как видите, команда file просто отображает имена файлов с сигнатурами, найденными в файле magic. Поскольку файл magic доведен до совершенства, вы можете видеть, что команда file довольно точна в определении сигнатур многих типов файла, даже если они не родные для системы Unix.

Как показано ниже, команда file может распознавать даже устройства Unix.

#file -s /dev/sda{,1,2,3,4,5}   
/dev/sda1:      Linux/i386 ext2 filesystem  
/dev/sda2:      x86 boot sector, extended partition table   
/dev/sda3:      can"t read "/dev/sda3" (Device not configured). 
/dev/sda4:      can"t read "/dev/sda4" (Device not configured). 
/dev/sda5:      Linux/i386 ext2 filesystem

Повсюду в этой лекции, просматривая файлы с другими средствами просмотра, мы будет пользоваться командой file.

Hexdump

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

Реализация

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

forensic# hexdump 1.tiff

Поскольку хорошо известно, что файл в формате TIFF (Tag Image File Format) начинается с байтов 49 49 00 2A в шестнадцатеричной системе, то тип файла легко увидеть в этом выводе после небольшого визуального анализа. Если этот заголовок вам не известен, не волнуйтесь: большинство систем Unix включает файл, который содержит сигнатуры файлов, в каталоге /usr/share/magic. Выборка из файла magic показывает заголовок формата TIFF.

# Tag Image File Format, from Daniel Quinlan (quinlan@yggdrasil.com)
# The second word of TIFF files is the TIFF version number, 42, which has
# never changed. The TIFF specification recommends testing for it.
0   string      MM\x00\x2a      TIFF image data, big-endian 
0   string      II\x2a\x00      TIFF image data, little-endian

Команда file системы Unix использует эту информацию, чтобы определить неизвестный тип файла.

Вывод Hexdump, как показано на предыдущей иллюстрации, отформатирован так, что крайний левый столбец содержит смещение байта в пределах файла 1.tiff, в шестнадцатеричном коде. Байты входного файла отображены в строке после смещения. В этом примере, вы можете видеть, что третья строка содержит звездочку (*), что означает, что все строки, расположенные после последней отображенной, являются дубликатами.

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

forensic# hexdump-C suspiciousfile.bin

Ниже показан соответствующий вывод.


Вы можете легко распознать, что этот файл содержит заголовок формата GIF, версии 89a, графический файл (и если вы не знали этого, то могли бы посмотреть файл magic). Однако если системы FreeBSD под рукой нет, чтобы можно было выполнить преобразование выходного формата, используя один ключ командной строки, напишите маленький файл форматирования, чтобы выполнить подобное преобразование. Это случается, когда в расследовании используется инструмент Hexdump системы Linux. Чтобы решить эту проблему, создайте следующий файл и назовите его hexdump.fmt.

"%12.12_ad" 16/1 "%02X"
"\t" 16/1 "%_p"
"\n"

Создав файл, вы можете использовать его вместе с Hexdump следующим образом.

forensic# hexdump-f hexdump.fmt suspiciousfile.bin
Сергей Хлюкин
Сергей Хлюкин
Россия, Москва, Московский Государственный Открытый Университет, 2007
Игорь Касаткин
Игорь Касаткин
Россия, Москва