Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Взлом ПО.docx
Скачиваний:
115
Добавлен:
23.11.2018
Размер:
3.85 Mб
Скачать

Встроенный язык ida Pro

С помощью встроенного языка программирования (упрощенный язык С) можно писать небольшие программы анализа дизассемблированного кода.

Существует два способа выполнения команд на языке IDC. Вызвать окно комбинацией клавиш Shift + F2. В окне можно набирать команды и после нажатия OK они выполнятся.

Рис. Окно встроенного языка IDC

Результат выполнения команды Message(«Engecon!»);

Рис. Результат выполнения команды IDC

Второй подход – более основательный, создание файлов с расширением idc и их запуск.

Рис. Меню выбора открытия файлов IDC

В папке idc есть несколько примеров подобных скриптов.

Рис. Файлы IDC

Плагины ida Pro

Благодаря плагинам, написанным на С++ функционал IDA Pro можно расширить.

Обзор плагинов для IDA Pro (можно скачать без регистрации): http://www.openrce.org/downloads/browse/IDA_Plugins

Одним из плагинов для IDA Pro является декомпилятор HexRays, который переводит двоичный код в «С-подобный».

Литература для дополнительного изучения

  1. Ассемблер и дизассемблирование. Владислав Пирогов.

  2. The IDA Pro Book: The Unofficial Guide to the World's Most Popular Disassembler, Chris Eagle http://www.idabook.com/

  3. «Образ мышления – дизассемблер IDA», К.Касперски. За основу книги взята версия IDA Pro 4.01, а уже вышла версия 6.1. Много примеров скриптов на языке IDC.

  4. Фундаментальные основы хакерства. Искусство дизассемблирование. К.Касперски.

Задание для самостоятельного выполнения

Лабораторную работу можно выполнять по два человека, но будет оцениваться вклад каждого.

Разработать консольное приложение на Visual C++ или на чистом ассемблере, запрашивающее строковый пароль. В случае правильно введенного пароля – выводится строка: «True password», иначе – строка «Wrong password». Ввод пароля ограничен тремя попытками.

Исходный текст с комментариями к программе необходимо приложить к отчету в качестве Приложения 1.

Первая версия приложения не должна содержать какой-либо защиты от отладчиков и дизассемблеров, т.е. пароль можно хранить в открытом виде.

Затем необходимо исследовать (Release-версию) программу в отладчике/дизассемблере и обойти механизм ввода пароля. Все шаги необходимо отразить в отчете в виде скриншотов (комментариев, листингов).

Затем необходимо реализовать несколько методов (например, через ассемблерные вставки или на чистом ассемблере) защиты программы от исследования с помощью отладчика/дизассемблера.

Исходный код с комментариями к обновленной программе (важны комментарии к добавленным средствам защиты) необходимо приложить к отчету в качестве Приложения 2.

Проверить на отладчике/дизассемблере работу внедренных средств защиты. В отчете необходимо отразить скиншоты с комментариями и дизассемблированный код (листинг).

Выводы по проделанной работе.

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

Список используемой литературы

  1. Реверсинг и защита программ от взлома. Александр Панов.

  2. Ассемблер и дизассемблирование. Владислав Пирогов.

  3. Введение в крэкинг с нуля, используя OllyDbg. Рикардо Нарваха, пер. Aquila, http://wasm.ru

  4. Отладка без исходных текстов. К.Касперски. Скачать книгу: http://www.insidepro.com/kk/170/170r.rar

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

2 http://sourceforge.net/projects/beye/

3 Cохранение копии содержимого оперативной памяти программы на диске или другом внешнем носителе

4 см. книгу Ассемблер и дизассемблирование. Владислав Пирогов. «Некоторые сложности в распознавании исполняемого кода»