47580 (572038)

Файл №572038 47580 (Методы взлома защиты программы от несанкционированного доступа)47580 (572038)2016-07-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла















Контрольная работа

Методы взлома защиты программ

Введение

Цель: Научиться использовать средства статического и динамического анализа программ. Разобраться в основных принципах работы компилятора при генерации кода на примере MS Visual Studio 2003 (C++).


Предисловие


Данная работа основывается на том, что студент 4 курса специальности ФБ прослушал следующие дисциплины:

  • «Программирование на языке С++»

  • «Системное программирование»

  • «Архитектура ЭВМ»

  • «Основы защиты информации».

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

  • Ознакомлен с языком программирования С++, т.е. умеет программировать на уровне «черного С» (без использования расширенных средств языка С++) (курс «Программирование на языке С++»).

  • Ознакомлен c языком программирования Assembler, т.е. умеет различать между собой команды языка, и знает их назначение (курс «Архитектура ЭВМ»)

  • Ознакомлен со структурой исполняемых файлов формата PE (для Windows), т.е. знает, что такое заголовок исполняемого файла, имеет представление о внутренней структуре файла (курсы «Архитектура ЭВМ», «Системное программирование»)

  • Ознакомлен с методами защиты программ от взлома, и методами взлома (курс «Основы защиты информации»)


Теоретические сведения

HIEW 6.81

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

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

При старте программы без параметров перед пользователем открывается окно выбора нужного файла (рис. 1) Для определенности выберем файл Hiew.hlp из родного каталога программы (рис. 2).

Как можно видеть, по умолчанию данный редактор работает в режиме обычного просмотра текста. Теперь нажмем клавишу ENTER (аналогично можно нажать клавишу F4 и выбрать необходимый режим просмотра информации), таким образом совершив переход от обычного просмотра в режиме текста в шестнадцатеричное отображение информации (рис. 3). Теперь окно редактора разбито на 3 колонки. Крайняя левая представляет собой смещение байта относительно начала файла, центральная область – шестнадцатеричное представление информации, крайняя правая – текстовое отображение информации.

Для того чтобы перейти в режим редактирования текста, необходимо нажать клавишу F3. После этого можно менять все байты, находящиеся в центральной области окна редактора, на необходимые пользователю. Чтобы сохранить изменения, нужно нажать клавишу F9.

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

Теперь рассмотрим практический пример – откроем файл приложения Windows Notepad. Перед этим рекомендуется сделать его резервную копию.

Нажмем клавишу F9 и перейдем в режим выбора файлов. После того, как файл был выбран, перейдем в режим дизассемблера (клавиша F4, либо два раза ENTER).

Рис. 1. Окно HIEW при запуске без параметров.

Рис. 2 Текстовый файл, открытый в HIEW

Рис. 3 Шестнадцатеричный режим отображения информации

Рис. 4. Отображение кода программы Блокнот в HIEW

А теперь внесем в программу необратимые изменения, после которых она не сможет запуститься. Для этого нажмем F8 и посмотрим, где находится точка входа в программу (рис. 5).

Рис. 5. Информация о заголовке файла Блокнот

Как видим, точка входа находится по адресу 739d. Перейдем в нее. Для этого выйдем из режима просмотра заголовка, нажав клавишу ESC, а затем F5. Наберем «.739D». НЕ ЗАБУДЬТЕ ПРО ТОЧКУ ПЕРЕД ШЕСТНАДЦАТИРИЧНЫМ ЧИСЛОМ!!!!! Теперь на экране должно быть нечто похожее на то, что изображено на рис. 6.

Рис. 6. Точка входа Блокнота

Теперь «поиздеваемся» над Блокнотом, заменив вызов одной процедуры на пустые операции. Для этого нажмем F3, и затем последовательно заменим байты со значением 6A70 на 9090 (0х90 = nop – отсутствие какой-либо операции). После этого нажимаем F9 для того, чтобы сохранить изменения и нажимам ESC для выхода из HIEW.

Отметим, что зачастую nop'ами приходится «забивать» не один байт, а целый кусок программы; для этого удобнее отметить блок байт (клавиша «*»), а затем выполнить команду FillBlk (ALT-F2).

Рисунок 7 Измененная точка входа Блокнота

Запустим полученную версию Блокнота. Как видим, она не запускается. Таким образом, мы научились уничтожать полезный код программы путем замены нужных байтов на nop. Помните, что в данной лабораторной работе львиную долю защиты можно снять таким методом, главное знать, что и где заменять. Отсюда следует вывод: ПРИ НЕОБХОДИМОСТИ ОБЕЗВРЕДИТЬ УЧАСТОК КОДА ПУТЕМ УДАЛЕНИЯ ЕГО ФУНКЦИОНАЛЬНОСТИ ИЗ ПРОГРАММЫ, НЕОБХОДИМО ЗАМЕНИТЬ НУЖНУЮ ОПЕРАЦИЮ ЭКВИВАЛЕНТНЫМ КОЛИЧЕСТВОМ БАЙТ 0х90.

Для поиска в редакторе нужной строки достаточно нажать клавишу F7 и ввести то, что вам нужно найти либо в ASCII, либо в шестнадцатеричных кодах. Если вхождений нужной строки более чем одно, то для поиска оставшихся вхождений необходимо использовать комбинацию клавиш CTRL+F7.

За более детальным описанием команд обращаться к функции помощи данной программы F1. Информация файлов помощи контекстно-зависима.

IDA Pro v4.51

Для выполнения данной лабораторной работы нам понадобится возможность IDA показывать нам таблицу экспорта и импорта функций программы. Собственно, любая программа под Windows не является вещью в себе, а хоть как-то должна взаимодействовать с окружающей средой, в нашем случае – операционной системой. Поэтому как минимум одну функцию любая программа должна экспортировать: точку входа. Можно сказать, что в нашем случае она может послужить отправной точкой в исследовании программы. Кроме этого, большинство программ импортируют функции WinAPI, и их имена представлены в таблице импорта. В нашем случае нам понадобятся функции, ответственные за вывод информации на экран и взятие информации из элементов окна. Дабы облегчить поиск студента, ниже приводятся функции, задействованные в данной лабораторной работе:

MessageBoxA();

GetDlgItemTextA();

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

Практическое использование IDA.

Рис. 8. Основное окно IDA

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

Рис. 9. Окно запроса о методе анализа файла.

Нажимаем на ОК и получаем следующее (рис. 10).

Рис. 10 .Завершенный анализ исполняемого файла

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

Рис. 11. Открытое окно таблицы импорта

Щелкнув двойным щелчком на функции GetSystemTimeAsFileTime, мы увидим картину, изображенную на рис. 12.

Рис. 12. Информация об импортированной функции GetSystemTimeAsFileTime

Как можно видеть из рис. 12, после совершенной операции перед нами предстало описание импортируемой функции с ее параметрами и местом вызова в программе (; DATA XREF: .text:00401D75). Теперь, если нам необходимо узнать, где в программе вызывается данная функция, то достаточно сделать двойной щелчок по надписи .text:00401D75 и IDA автоматически переведет Вас в нужное место вызова (рис. 13). Таким образом, можно просматривать любую цепочку вызовов функций.

Рис. 13. Место вызова функции GetSystemTimeAsFileTime

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

Собственно, данной информации вполне достаточно для выполнения лабораторной работы.


Работа с отладчиками Visual Studio и OllyDbg

Даже для решения самых тривиальных задач в области реверсинга необходим отладчик: он позволяет динамически отслеживать ход работы программы, вносить изменения «на лету» в ее образ в памяти, следить за состоянием регистров и оперативной памяти и многое другое. Среди современных отладчиков наиболее популярными являются SoftIce из комплекта Compuware Driver Studio и OllyDbg. SoftIce работает в режиме ядра и поэтому позволяет исследовать драйверы и компоненты Windows, работающие в ring0; однако в большинстве случаев его мощность является избыточной и целесообразнее использовать более “дружественный» OllyDbg. К тому же, OllyDbg является freeware и доступен для бесплатного скачивания в Интернете. Кроме того, мы также рассмотрим встроенный отладчик Microsoft Visual Studio.

Отладчик Visual Studio

На основе данного отладчика дается представления о коде программы, который необходимо будет искать. Итак, приступим. Во что превращается код программы, написанной на Си, после компиляции?

Возьмем простой пример:

Создадим простое приложение средства MS Visual Studio типа Win32 с графическим интерфейсом.

Переведем режим проекта в стадию Release (для тех, кто к 4 курсу еще не научился этому, необходимо выбрать свойства проекта Properties->Configuration Manager->Configuration и перевести из режима Debug в режим Release).

Теперь все должно быть готово к применению.

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

Запустим приложение.

Характеристики

Тип файла
Документ
Размер
120,2 Mb
Учебное заведение
Неизвестно

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

Список файлов ответов (шпаргалок)

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7021
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее