Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №

на тему
«Тема ЛР»

по дисциплине "Информационная безопасность"

специальность

230105 - “ Программное обеспечение вычислительной техники
и автоматизированных систем ”

    Преподаватель Е. В. Щанова  
Студент гр. ПО-306 В.О.Игнатьев     Дата выполнения: 18.04.13 Оценка_____________________ Подпись____________________  

 

Екатеринбург 2013

 

Цель работы: изучить различные способы защиты программ от взлома, научится их применять.

 

Работа:

1) Сейчас мы разберемся как ввести регистрационный код.

Устанавливаем точку останова на считывание текста из стандартного элемента ввода.(функции GetWindowText, GetGlgItemText модуля KERNEL32).

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

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

2) Анализируем регистрационный код.

Не анализируем код сразу после его ввода. Не проверяем код только в одном месте и не пишем для проверки функцию. Не проверяем пароль одним алгоритмом. Не принимаем не каких действий после проверки.

3) Отладчики и дизассемблеры.

Распаковываем файл OllyDbg.

И заходим в программу:

Открываем файл CrackMe.

Рассматриваем части и функции этой программы:

- Дизасемблированный код, он автоматически анализирует программу

Можно облегчить работу с ней: APPEARENCE → HIGHLIGHTING → JUMPS AND CALLS.

- Регистры: в них отображается значительная часть информации. Есть три состояния.

- Стек и «куча»

Зона памяти, где сохраняются данные которые должны быть восстановлены в ближайшее время.

- Дамп.

Много режимов отображения которые можно менять. По умолчанию используется режим 8 – байтовый Hex/ASCII.

Он чаще всего используемый.

 

 

Immunity Debugger

Отличительная черта - возможность писать скипты на языке Python.

 

 

YDbg

Очень мощный мод.

SoftICE

Отладчик для Windows. Работает на уровне ядра.

Microsoft Debugger

Входит в состав WDK. Microsoft Debugger может работать как на прикладном уровне (ring-3), так и на уровне ядра.

Syser Kernel Debugger

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

GDB

Основной отладчик под UNIX, ориентированный на совершенно иной тип мышления, чем все вышеперечисленные отладчики.

IDA Pro

Это одновременно интерактивный дизассемблер и отладчик. Она позволяет превратить бинарный код программы в ассемблерный текст, который может быть применен для анализа работы программы.

Hex-Rays

Hex-Rays - декомпилятор, требующий обязательно установленную на компьютеру ИДУ.

W32DASM

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

DeDe

Для декомпиляции кода, написанного на Delphi/Borland C++ Builder, т.е программ.

PEiD

Способен определить название и версию упаковщика.

PE Explorer

Программа для просмотра и редактирования PE-файлов - начиная с EXE, DLL и ActiveX контролов, и заканчивая скринсейвверами SCR (Screensavers), апплетами панели управления CPL, SYS и бинарниками для платформы Windows Mobile.

 

Контрольные вопросы:

1) Дизассемблирование - это получение из исполняемого кода программы код на языке ассемблера.

2) Дизассемблер - программа, осуществляющая дисассемблирова­ние.

 

3) Интерактивный дизассемблер - программа, тесно взаимодействующая с пользователем в процессе дисассемблирования.

 

4) Отладчик – программа, предназначенная для анализа поведения другой программы, обеспечивающая остановку в указанных точках и позволяющая просматривать (редактировать) содержимое ячеек памяти, регистров процессора и команды программы.

 

Эмулирующий отладчик - отладчик, который самостоятельно интерпретирует и выполняет команды программы (без использования реального процессора).

5) Мне известны средства – Дисассемблирование, Дисассемблер. Интерактивный дисассемблер, Отладчик, Эмулирующий отладчик.

 

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

 

7) Методы защиты от дезассемблирования: шифрование, архивирование программного кода, динамическое изменение кода программы, нестандартная структура программы.

 

8) Методы защиты от работы под контролем отладчика: перехват прерывания INT 3, использование отладчиком стека.

 

9) Отладочные механизмы: OllyDbg, Immunity Debugger, YDbg, SoftICE, Microsoft Debugger, Syser Kernel Debugger, GDB и так далее.

 

10) Трассировка - пошаговое выполнение программы.

11)

1. Советы помогающие обезопасить программу от взлома: Пишите защиту на ассемблере.

2. Никогда не давайте осмысленные имена важным функциям, типа IsValidSerialNum.

3. Не предупреждайте (сразу) пользователя о том, что защита нарушена. Лучше сделайте это через два-три дня - хакеры это ненавидят…

4. Используйте "перекрестные" проверки CRC-кодов ваших EXE- и DLL-файлов.

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

6. Сохраняйте пароли в каком-нибудь "необычном" месте, например, в свойствах поля базы данных.

7. Не привязывайтесь к системной дате. Вычисляйте текущую дату из времени создания каких-нибудь системных файлов, например SYSTEM.DAT или USER.DAT (Windows Registry).

8. Сохраняйте пароль в нескольких местах одновременно.

9. Не используйте "статические" (то есть жестко прошитые в вашу программу) строчки текста для уведомления пользователя о том, что пароль правильный (или неправильный). Это первое, на что смотрит хакер. Генерируйте эти строчки динамически, или используйте шифрование, хотя бы самое простенькое.

10. Используйте "мелкие хитрости" для защиты от дизассемблирования и отладки.

11. Наконец, никому никогда не рассказывайте о том, как построена ваша защита.

12) Отладчики и дизассемблеры: OllyDbg, Immunity Debugger, YDbg, SoftICE, Microsoft Debugger, Syser Kernel Debugger, GDB и так далее.

13) Возможности OllyDbg: бесплатный проприетарный 32-битный отладчик уровня ассемблера для операционных систем Windows, предназначенный для анализа и модификации откомпилированных исполняемых файлов и библиотек, работающих в режиме пользователя. встроен специальный анализатор, которые распознает и визуально обозначает процедуры, циклы, константы и строки, внедренные в код, обращение к функциям API, параметры этих функции. Отличается от классических отладчиков.

14) Стек или «куча»- это зона памяти, где сохраняются данные, которые должны быть восстановлены в ближайшее время. Здесь не много конфигурационных опций – разве что возможность отобразить информацию, касающуюся регистров ESP и EBP.

 

 

Вывод: в этой работе я научился разными способами защищать программы от взлома и рассмотрел все возможности этой защиты.

 

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.