Жернакова лаба1. Отчет По лабораторной работе1 Анализ программного обеспечения с помощью дизассемблера Ollydbg по дисциплине Программноаппаратные средства защиты сетей и систем связи
Скачать 0.79 Mb.
|
Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР) Кафедра радиоэлектроники и систем связи (РСС) Отчет По лабораторной работе№1 Анализ программного обеспечения с помощью дизассемблера OllyDBG по дисциплине «Программно-аппаратные средства защиты сетей и систем связи» Выполнил: Студент гр. 1А8 Жернакова А.В. Проверил: Доцент каф. РСС Хатьков Н.Д. Томск 2022 Цель работы Применение дизассемблера повышенной сложности для анализа программ. Получить сведения о общей методике дизассемблирования программ и связанных с ней проблем. Задание на лабораторную работу 1. Установить свободную версию программы OllyDBG. Ознакомиться с ее интерфейсом. Как работать с данной программой описано здесь: Введение в крекинг с нуля, используя OllyDBG - Глава 1 — Архив WASM.RU https://wasm.in/blogs/vvedenie- v-krehking-s-nulja-ispolzuja-ollydbg-glava-1.433 и в описании, и в ссылке на литературу указать этот адрес. 2. Провести дизассемблирование выданных преподавателем учебных программ derty1.exe - derty3.exe с целью поиска изменения цвета панели. Внести изменения в программу с целью коррекции цвета панели. 3. Провести аналогичное п.2 дизассемблирование учебной программы derty2m.exe созданной упаковщиком UPX_2.00 (упакованный файл создать самим из файла derty2.exe) Привести краткие сведения об упаковщике и указать в ссылке на литературу: Введение в крекинг с нуля, используя OllyDBG - Глава 1 — Архив WASM.RU https://wasm.in/blogs/vvedenie-v-krehking-s-nulja-ispolzuja-ollydbgglava-1.433 Сделать вывод о возможностях используемого дизассемблера неискушенным в этом деле пользователем, а также о возникших трудностях при дизассемблировании учебных программ. Краткое описание программного обеспечения Декомпилятор (или дизассемблер) – программа, которая преобразует двоичный код программ в исходный текст, написанный на одном из языков программирования, чаще всего – ассемблере. Некоторые дизассемблеры могут представить исходный текст на простом языке C. В процессе трансляции большая часть информации об исходном тексте программы теряется, например, имена переменных, поэтому декомпилятор пытается восстановить исходный текст программы настолько, насколько это возможно. Если при декомпиляции таблица соответствия имен была не найдена, то зачастую декомпилятор присваивает переменным имена, составленные из плохо воспринимаемой последовательности цифр и букв. При работе с исполняемым кодом или байт-кодом, созданным на некоторых языках высокого уровня (например, java) имеется возможность восстановить не только текст на языке ассемблера, но даже и структуру классов программы, а если при компиляции исполняемого файла не была отключена отладочная информация — то и исходный текст программы. Для исключения таких возможностей используется обфускация. По режиму работы с пользователем делятся на автоматические и интерактивные. Примером автоматических дизассемблеров может служить Sourcer. Такие дизассемблеры генерируют готовый листинг, который можно затем править в текстовом редакторе. Пример интерактивного — IDA. Он позволяет изменять правила дизассемблирования и является весьма удобным инструментом для исследования программ. Дизассемблеры бывают однопроходные и многопроходные. Основная трудность при работе дизассемблера — отличить данные от машинного кода, поэтому на первых проходах автоматически или интерактивно собирается информация о границах процедур и функций, а на последнем проходе формируется итоговый листинг. Интерактивность позволяет улучшить этот процесс, так как просматривая дамп дизассемблируемой области памяти, программист может сразу выделить строковые константы, дать содержательные имена известным точкам входа, прокомментировать разобранные им фрагменты программы. Обычно однопроходный дизассемблер (как и построчный ассемблер) является составной частью отладчика. OllyDBG — shareware 32-битный отладчик уровня третьего кольца защиты (англ. ring-3) для операционных систем Windows, предназначенный для анализа и модификации откомпилированных исполняемых файлов и библиотек, работающих в режиме пользователя (ring-3). OllyDBG выгодно отличается от классических отладчиков (таких, как SoftICE) интуитивно понятным интерфейсом, подсветкой специфических структур кода, простотой в установке и запуске. Для того, чтобы разобраться в принципе работы OllyDBG, достаточно лишь базовых знаний в области языка ассемблера. По этим причинам OllyDBG рекомендуют к использованию даже новичкам. 1. Ход работы На рисунках 1.1 первый запуск программы OllyDBG. Рисунок 1.1 – Первый запуск программы На рисунке 1.2 показан результат открытия файла derty1.exe. Рисунок 1.2 – Результат открытия файлы Подсветку вызовов и переходов сделаем лазурным и желтым цветом соответственно. Рисунок 1.3 – Подсветка вызовов и переходов Изменим пароль исходного файла. На рисунках 1.4 и 1.5 показаны окна программы до смены пароля и после смены пароля . Рисунок 1.4 – Окно до смены пароля Рисунок 1.5 – Окно после смены пароля Находим адрес строки с вводом нового пароля. Ниже показаны процессы поиска и нахождения адреса строки, процесс постановки строк на отладку и на какой строке программа остановилась. Рисунок 1.6 – Поиск адреса строки Рисунок 1.7 – Найденный адрес строки Рисунок 1.8 – Поставка строк на отладку Рисунок 1.9 – Итоговая строка остановки программы После того как была установлена строка остановки программы, можно убрать брейкпоинты. На рисунке 1.10 показан процесс смены кода. Рисунок 1.10 –Смена кода Откроем файл derty2.exe. Сделаем так, чтобы программы загоралось серым цветомпри правильном вводе пароля. На рисунке 1.11 представлен пароль от файла. Рисунок 1.11 – Пароль от файла Рисунок 1.12 – Результат ввода пароля Рисунок 1.13 – Ввод нового пароля Работа с файлом derty3.exe. На рисунке 1.14 показано окно программы с сообщением об отсутствии файла, который нам нужен. Рисунок 1.14 – Сообщение об отсутствии файла На рисунках 1.15 и 1.16 показаны создание файла test3.dat и результат его добавления соответственно. Рисунок 1.15 – Файл test3.dat Рисунок 1.16 – Результат добавления файла Для следующего этапа лабораторной работы используем плагин Olly Plugin и программу- реконструктор Import reconstructor. Ниже показана работа программы-реконструктора и ее результат соответственно. Результатом работы является создание файла dump_derty2_. Рисунок 1.17 – Работа программы-реконструктора Рисунок 1.18 –Результат работы программы-реконструктора Заключение В ходе лабораторной работы был проведен анализ программы с применением дизассемблера повышенной сложности. Получены сведения о методике дизассемблирования программ и связанных с ней проблем. OllyDbg- бесплатный 32-битный отладчик уровня ассемблера для операционных систем Windows, предназначенный для анализа и модификации откомпилированных исполняемых файлов и библиотек, работающих в режиме пользователя. В OllyDbg множество настроек интерфейса для удобства пользователя. Анализатор, который встроен в программу, является значимой частью программы. Он позволяет преобразовывать двоичный код к более читабельному виду, упрощает отладку, и тем самым вероятность неправильного дизассемблирования становится меньше. Отладчик есть в каждой среде, в том числе и в Windows, он является модулем среды разработки или приложением, которое ищет ошибки в программе. Отладчик отслеживает значения переменных в процессе выполнения какой-то программы, устанавливает условия ее остановки, выполняет трассировку. |