Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

редактора 4 Интерфейс 5 Использование 7 Обзор hexредакторов-

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 6.11.2024

Содержание

Введение          3

  1.  Теоретическая часть:         4
  2.  Общая информация:        4
    1.  Понятие hex-редактора       4
    2.   Интерфейс         5
    3.  Использование        7
  3.  Обзор hex-редакторов:        8
    1.  McAfee FileInsight        8
    2.  Hex Editor Neo        11
    3.  FlexHex         13
    4.  010 Editor         16
  4.  Практическая часть        19

Заключение          21

Список литературы         22                

Введение

Цель работы: изучить возможности hex-редакторов, сравнить их возможности.

Актуальность: в настоящее время hex-редакторы используются в основном профессиональными программистами, которые работают с языками низкого уровня. Hex-редакторы вместе с дизассемблерами активно применяются хакерами для написания вирусов, взлома программ и создания «crack’ов». Очень распространены вирусы, которые шифруют на компьютере пользователя файлы с расширением .doc(docx), .pdf, .txt и другие. С помощью этих же средств программисты, которые пишут антивирусы, борются с вышеуказанными проблемами. Они создают программы, которые способны расшифровать те файлы, которые были повреждены.

  1.  Теоретическая часть

1.1Общая информация

1.1.1 Понятие hex-редактора

Hex-редактор (англ. hex-editor) — приложение для редактирования данных, в котором данные представлены в «сыром виде» — как последовательность байтов. Он может быть как отдельным самостоятельным приложением, так и компонентом другого, более сложного приложения, такого как дизассемблеротладчикинтегрированная среда разработки и т. п.

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

  1.  Наибольшую популярность получили платформы с 8-битным байтом. В таких платформах байт может принимать 28=256 значений в диапазоне от 0 до 255. Число 25610, записанное в шестнадцатеричной системе, является круглым трёхзначным числом — 10016.
  2.  То, что это число является трёхзначным, означает, что для представления любого числа в диапазоне 0—255 требуется не более 2 разрядов.
  3.  То, что это число является круглым, означает, что для представления будут использованы все возможные комбинации цифр, и не останется неиспользованных (например, в случае использования десятичной системы, неиспользованными остаются комбинации, соответствующие числам от 256 до 999).
  4.  При использовании шестнадцатеричной системы получается, что правая цифра соответствует младшим четырём битам байта, а левая цифра в записи — старшим 4 битам. Поэтому любые операций над 4 битными блоками, выровненными по границе байта, можно упрощённо производить как операции над соответствующими цифрами.
  5.  16 — минимальное основание системы счисления, при котором для записи достаточно двух разрядов. Системы с меньшим основанием потребовали бы уже три (и более) разряда, а возможность уложиться в один разряд обеспечила бы только система счисления с основанием 256, которая совершенно неприменима на практике из-за большого числа цифр в ней.

Очевидно, что, например, для платформ с 9-битовым байтам использовались бы трёхзначные восьмеричные числа, а аналогичное по функциональности приложение называлось бы Oct-редактором.

Данные, которые отображает и позволяет редактировать Hex-редактор, могут быть:

  1.  образом диска,
  2.  содержимым отдельного файла,
  3.  содержимым оперативной памяти,
  4.  содержимым виртуального адресного пространства процесса, и так далее.

1.1.2 Интерфейс

Hex-редактор отображает данные в виде матрицы, каждая ячейка которой соответствует одному байту, записанному в шестнадцатеричной системе счисления в виде двухзначного числа (с ведущим нулём, если он требуется). Количество столбцов матрицы является степенью двойки, чаще всего используются 16 или 8 колонок, иногда 4. Число строк зависит от количества байтов, которые требуется отобразить/отредактировать. В случае использования 16 колонок одна строка соответствует одному параграфу.

Кроме этого, часто используются дополнительные элементы:

Слева от матрицы отображается линейка (на рисунке показана синим цветом) из чисел: каждой строчке соответствует число, означающее адрес/смещение первого байта этой строчки. Шаг адресов при этом равен количеству колонок.

Сверху от матрицы отображается другая линейка (на рисунке показана зелёным цветом) из чисел: над каждой колонкой отображается смещение байта, стоящего в этой колонке, относительно первого байта соответствующей строчки. Сумма числа, соответствующего i-той строке, и числа, соответствующего j-той колонке является адресом/смещением байта (i;j), стоящего на пересечении взятой строки и взятого столбца.

Справа от матрицы могут отображаться те же данные, но в другой интерпретации. Наиболее часто используется альтернативное отображение данных как текста в кодировке ASCII(на рисунке показаны цветом фуксия), при этом байты, значения которых соответствуют непечатным символам, отображаются как точки (·). Многие редакторы позволяют выбрать произвольную кодировку для режима отображения текста. Вариант с отображением данных как текста встречается в Hex-редакторах общего назначения. В редакторах же, являющихся частью какой-либо специальной программы, например отладчика, обычно доступны другие режимы, такие как листинга дизассемблирования, подсказок об адресах, и другие специфичные для приложения режимы.

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

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

Рис 1. Пример интерфейса hex-редактора

1.1.3 Использование

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

Поскольку Hex-редактор является достаточно универсальным инструментом, описать все варианты его применения не представляется возможным.

Ассемблер – это язык низкого уровня, но все-таки язык. Написать программу на нем можно и не имея никаких ассмблеров-компиляторов и прочих инструментов – с помощью hex-редактора, однако написание программ с использованием шестнадцатеричного редактора  - это дело утомительное и небезопасное! Ошибки в процессе создания программы неизбежны. Если TASM проверяет текст программы на наличие ошибок, то в hex-редакторе проверяющий всего один – сам программист. Даже если ошибка останется незамеченной, то файл все равно будет создан. При попытке запуска такого «неправильного» файла в лучшем случае получится зависание компьютера, а в худшем случае такой файл может повредить систему сильнее любого вируса.

Но разбор программ в hex-редакторе весьма полезен. Особенно тем, кто собирается работать с электроникой, так как микропроцессоры не понимают языки высокого уровня, хотя и существуют специальные программы и устройства, которые им эти языки «объясняют».

Любой hex-редактор позволяет исследовать и модифицировать файл на низком уровне, оперируя с битами и байтами. Содержание файла представляется в шестнадцатеричной форме. Это базовый функционал. Однако некоторые редакторы предлагают пользователям намного большее, позволяя разобраться, собственно, что есть что в том непонятном наборе символов, который появляется при открытия файла. Для этого автоматически извлекаются ASCII и Unicode строки, осуществляется поиск известных паттернов, выполняется распознавание основных структур данных и многое другое. Шестнадцатеричных редакторов довольно много, но если мы решили рассмотреть их в контексте исследования образцов вредоносных программ, то легко выделить некоторые из них. Лишь немногие оказываются реально полезными для анализа зловредного кода и исследования зараженных документов (скажем, PDF).

1.2 Обзор hex-редакторов

1.2.1 McAfee FileInstight

FileInsight – это бесплатный hex-редактор для Windows от компании McAfee Labs. Продукт, само собой, выполняет весь стандартный функционал, сопутствующий подобному софту, предлагая удобный интерфейс для просмотра и редактирования файлов в шестнадцатеричном и текстовом режимах. Но это лишь капля в море, если посмотреть на весь его функционал. Начать стоит с того, что FileInsight способен анализировать структуру исполняемых бинарных файлов для Windows (PE файлов), а также OLE-объектов Microsoft Office. Мало этого, пользователю предлагается встроенный x86 дизассемблер. Достаточно выбрать часть файла, которую хочешь просмотреть в виде читаемого кода, и FileInsight покажет этот фрагмент как листинг ассемблерных инструкций. Дизассемблер особенно полезен, когда ищешь Шелл-код в зловредных файлах. Среди других опций, которые придутся по душе пользователю – возможность импортировать объявления структур. Для этого программе достаточно указать заголовочный файл с объявлениями вроде:

struct ANIHeader {
DWORD cbSizeOf; // Num bytes in AniHeader
DWORD cFrames; // Number of unique Icons
DWORD cSteps; // Number of Blits
};

В этом случае программа сама будет анализировать подобные конструкции. Впрочем, и по умолчанию предлагается немало интуитивных алгоритмов для обработки кода. Речь, прежде всего, идет о декодировании многих методов обфускации (xor, add, shift, Base64 и т.д.) – встроенные скрипты обходят подобную криптозащиту без особых проблем. Тут надо заметить, что в качестве объекта исследования необязательно должен быть бинарный файл, это может быть и обычная веб-страница, вызывающая подозрения. Многие действия программа позволяет автоматизировать с помощью простых сценариев на JavaScript или модулей на Python, которых написано уже немало. Увы, при всех достоинствах, у FileInsight есть и серьезный недостаток, выражающийся в невозможности обрабатывать большие файлы. К примеру, если попытаться открыть данной программой файл размером в 400-500 Мб, вылетает ошибка «Failed to open document».

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

Рис.2. Стартовое окно McAfee FileInsight.

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

Для работы с файлом нужно воспользоваться панелью вкладок. Во вкладке «Home» расположены инструменты для создания (New), открытия/закрытия (Open & Close), сохранения файла (Save). Во вкладке «Edit» находятся методы, которые нужны непосредственно для редактирования файла: копирование и вставка (Copy & Paste), отмена и возврат действия (Undo & Redo), вырезка и выделение (Cut & Select). Вкладка «Search» упрощает поиск как внутри файла (Find), так и в папках (Find in folders). Если мы хотим подключить какие-либо плагины, написанные на «Python», то вкладка «Plugins» поможет нам это осуществить. Во вкладке «Windows» мы сможем слегка изменить расположение окон в нашей программе, настроить интерфейс под себя.

Рис.3 Открытый в McAfee FileInsight файл с расширением .obj.

При работе с файлами очень полезно окно, которое располагает в левом нижнем углу экрана. Оно позволяет смотреть представление байта в dec- и hex-форматах, просматривать ASCII  и Unicode отображения строки, при этом тут же можно воспользоваться дизассемблером или калькулятором.

Рис. 4. Вспомогательное окно редактора McAfee FileInsight.

  1.  Hex Editor Neo

Существует две версии этого шестнадцатеричного редактора от компании HDD Software – простая бесплатная и продвинутая коммерческая версия. Freeware-вариант – это добротный, но мало чем примечательный HEX-редактор, имеющий классный настраиваемый интерфейс с поддержкой разных цветовых схем. А вот профессиональная версия Hex Editor Neo предоставляет несколько полезных опций, которые могут быть крайне полезны при анализе бинарных файлов. К примеру, пользователь получает возможность декодирования кода, закриптованного с помощью наиболее общих алгоритмов. Помимо этого появляется возможность просмотра и редактирования локальных ресурсов типа NTFS-потоков, локальных дисков, памяти процесса, а также оперативной памяти. В самой полной версии появляется и поддержка скриптового языка, позволяющая автоматизировать многие процессы с помощью сценариев на VBScript и JavaScript. Но самый главный плюс в том, что к вашим услугам предоставляется встроенный дизассемблер, который работает и с x86, и с x64, и с .NET-бинарными файлами! Еще одна особенность – быстрое создание патчей, основанное на сравнении двух бинарных файлов. Звучит впечатляюще, но лучше ли он, чем FileInsight? Скорее, нет. FileInsight в целом выглядит более функционально. С другой стороны, любая, даже бесплатная версия Hex Editor Neo отлично работает даже с очень большими файлами и позволяет искать ASCII и Unicode-строки. Дизассемблер здесь не ограничивается одной лишь x86 платформой, а встроенный редактор ресурсов очень удобен.

Рис. 5. Стартовое окно редактора Hex Editor Neo.

Интерфейс данного редактора выглядит довольно просто. В нем, как и в предыдущем редакторе, на панель управления, расположенную вверху окна приложения, вынесены все основные инструменты для работы с файлом: создание, открытие, сохранение файла, поиск внутри файла, поиск по каталогам и т.д. Все эти инструменты можно так же найти во вкладках «File» и «Edit». Вкладка «History» хранит в себе полную историю работы с файлом; если у нас есть история всех изменений, то можно легко найти ошибку, если вдруг она где-то была допущена. Так же у данного редактора существует очень подробный «Help», который находится в одноименной вкладке.

Рис.6. Открытый в редакторе Hex Editor Neo файл с расширение .obj.

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

Рис. 7. Окно для выбора языка интерфейса.

Коммерческая версия Hex Editor Neo предлагает очень большой функционал. Я исследовал бесплатную версию, возможности которой сильно уступают возможностям бесплатного McAfee FileInsight. Но если пользователю нужно открыть простой бинарный файл и не ломать голову над иностранным описанием, то Hex Editor Neo подойдет как нельзя кстати.

1.2.3 FlexHex

FlexHex – это мощный коммерческий hex-редактор от компании Heaventools Software, который включает многие из функций, доступных в Hex Editor Neo. Единственное, чего здесь нет – это, пожалуй, поддержка скриптов. Зато этот полнофункциональный редактор одинаково хорошо обрабатывает бинарные файлы, OLE-файлы, физические диски и альтернативные NTFS-потоки. Последнее особенно важно, потому что FlexHex позволяет редактировать те данные, которые другие редакторы могут даже не увидеть. К тому же сразу чувствуется ориентированность на работу с большими массивами информации: какой бы размер ни был у файла, навигация по нему осуществляется без каких-либо осложнений и зависаний. Для еще большего удобства работает система удобных закладок. При этом FlexHex непрерывно ведет историю всех операций – можно отменить любое действие, просто выбрав его из списка изменений (undo-list не ограничен)! В FlexHex поддерживаются все необходимые операции с бинарными данными, поиск ASCII и Unicode-строк. Если необходимо обрабатывать структуру с заранее известным форматом, задать ее параметры не составит труда с помощью специальных инструментов. В результате получаем отличный hex-редактор, но все-таки сильно уступающий тому же FileInsight. Единственная примечательная опция – это обработка OLE-файлов, но и тут есть проблемы. Несколько раз при попытке открыть зараженный OLE, программа вылетала с ошибкой «The docfile has been corrupted».

При каждом запуске данного редактора появляется окно с подсказкой, которое можно отключить, сняв галочку внизу данного окна. Для пользователя-новичка подобное окно подсказка может оказаться очень полезным, так как с помощью кнопки «Next Tip» можно получить следующую подсказку.

Рис. 8. Окно с подсказкой в редакторе FlexHex.

Сам по себе интерфейс программы выполнен в стиле минимализма. Принципиального отличия графического интерфейса данного редактора от интерфейсов уже рассмотренных редакторов нет. Тут все те же функциональные панели, что и в McAfee FileInsight и Hex Editor Neo. Но два больших плюса выделить все же стоит: удобная система флагов и закладок, которая сильно облегчает поиск, и параллельное ведение истории изменений с возможностью отматывать действия, если вдруг была допущена ошибка.

Рис. 9. Стартовое окно редактора FlexHex.

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

Рис. 10. Открытый в редакторе FlexHex файл с расширением .obj.

1.2.4 010 Editor

010 Editor – известный коммерческий продукт, разработанный SweetScape Software. Если сравнивать его с предыдущими тремя инструментами, то он умеет все: поддерживает работу с очень большими файлами, предоставляет классные возможности по оперированию с данными, позволяет редактировать локальные ресурсы, имеет систему скриптинга для автоматизации рутинных действий (более 140 различных функций к вашим услугам). А еще у 010 Editor есть изюминка, уникальная особенность. Редактор обходит всех благодаря возможности анализировать различные форматы файлов, используя собственную библиотеку шаблонов (так называемые Binary Templates). Вот здесь ему нет равных. Над шаблонами работают множество энтузиастов по всему миру, создавая различные структуры форматов и данных. В результате процесс навигации по различным форматам файлов становится прозрачным и понятным. Это касается, в том числе, и обработки бинарных файлов для Windows (PE файлам), файлов-ярлычков Windows (LNK), Zip-архивов, файлов Java-классов и многого другого. Всю прелесть этой особенности многие смогли осознать, когда известный специалист по безопасности Дидье Стивенс создал для 010 Editor шаблон для анализа PDF-файлов. Вкупе с другими утилитами это серьезно упростило анализ зараженных PDF-документов, которые последние полгода не перестают удивлять количеством мест, откуда можно эксплуатировать программу-читалку. Добавляем сюда классный инструмент для сравнения бинарных файлов, калькулятор с C-подобным синтаксисом, конвертирование данных между ASCII, EBCDIC, Unicode-форматами, и получаем очень привлекательный инструмент с уникальными возможностями.

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

Рис. 11. Окно с выбором варианта продолжения работы.

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

Рис. 12. Стартовое окно редактора 010 Editor.

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

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

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

Рис. 13. Открытый в редакторе 010 Editor файл с расширение .obj.

  1.  Практическая часть

Целью моей курсовой работы было изучение возможностей hex-редакторов, их сравнение. В данной курсовой работе был проведен сравнительный четырех анализ известных hex-редакторов. Я рассматривал редакторы с точки зрения простого пользователя, который первый раз знакомится с данным инструментом, поэтому для изучения брал только редакторы с графическим интерфейсом. Все результаты моих исследований сведены в сравнительную таблицу (см. Таблицу 1), которая отображает достоинства и недостатки тех или иных редакторов.

Для пользователя, который только открывает для себя hex-редакторы, лучше всего подойдет McAfee FileInsight, так как он является бесплатным и обладает великолепным функционалом. Пользователю, который уже знаком с подобными редакторами и хочет получить максимальный функциональный набор, придется выложить кругленькую сумму за Hex Editor Neo, FlexHex или 010 Editor.  

Таблица 1

McAfee FileInsight

Hex Editor Neo

FlexHex

010 Editor

Стоимость

Free

200$ - станд.

500 $ - проф.

40$

50$

Пробная версия (+/-, длит.)

-

+, 30 дней

+, 30 дней

+, 30 дней

Граф. интерфейс (+/-)

+

+

+

+

Дизассемблер

x86

x64, х86

-

-

Подсказки (+/-)

+

+

+

+

Макс. объем файла

~400 мб.

~1 Гб.

~1 Гб.

~1 Гб.

NTFS-потоки

(+/-)

-

+

+

-

Поддержка плагинов

+

-

-

-

Выбор языка (+/-)

-

+

-

-

Сравнение бинарных  файлов

-

-

-

+

 

Заключение

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

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

Список литературы

  1.  Крис Касперски, Фундаментальные основы хакерства. Искусство дизассемблирования. М.: СОЛОН-Р, 2002.
  2.  Пирогов В.Ю. , Ассемблер для Windows. М.: Издатель Молгачева С.В., 2002.
  3.  Магда Ю.С., Ассемблер. Разработка и оптимизация Windows-приложений. М.: БХВ-Петербург, 2003.
  4.  Питер Абель, Ассемблер и программирование для IBM PC
  5.  Юров В.И., Ассемблер. Учебник для вузов. М.: Питер, 2003.
  6.  Поляков А.В., Ассемблер для чайников.
  7.  Голубь Н.Г., Искусство программирования на Ассемблере.                   М.: DiaSoft, 2002



1. Тема Невыносимый ребенок
2. Реферат- Экономическая и социальная эффективность совершенствования системы и технологии управления персоналом
3. 10 дней которые потрясли мир
4. Статья- Образ человека в русской классической и современной риторике
5. Игровая деятельность глухих младших школьников
6. Історія червоної книги 4 2
7. Центр реализации молодёжной политики Д
8. Модуль 2 Платон и Аристотель считали что государством должны править- воины стражи; народ; рабы;
9. АНКЕТА Участника III Открытого Конкурса Песни и Поэзии Владимира Высоцкого Tropmi Wysockiego ~ pie~ni nrowisterdquo; 26
10. это самое значительное направление в исследовании развития детей В конце 30х гг
11. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата педагогічних наук Те.html
12. Нормативная система международного права
13. Контрольная работа- Навчання працівників з питань охорони праці
14. Тематическое развлечение Рассказ про одежду Музыкальный руководитель- Румянцева Св
15. КОНТРОЛЬНАЯ РАБОТА 1 по дисциплине Английский язык
16. Медицинская сортировка распределение поражённых больных на группы исходя из необходимости в однородных.html
17. Тема 6 Перетворювачі кодів
18. Внутриутробная гипоксия плода
19. Технология преподавания физической культуры в вузах
20. Тема- Основы парных плясов