Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР №9 - OllyDebugger / ЛР №9 (пример2)

.docx
Скачиваний:
24
Добавлен:
10.02.2015
Размер:
21.82 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

БАЛТИЙСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ ИМ. И. КАНТА

ФИЗИКО-ТЕХНИЧЕСКИЙ ИНСТИТУТ

ОТЧЕТ

по лабораторной работе № 5

Тема: «Исследование моделей защит ПО. Изучение средств динамического исследования ПО на примере отладчика Olly Debugger. Защита от отладчиков»

Выполнили:

студенты 4 курса

специальности «Организация и технология защиты информации»

Барзенков Александр

Лорич Илья

Калининград

2013

Цель: Познакомиться на практике с методами реализации обратного проектирования программ. Изучить возможности отладчиков. Исследовать парольную защиту предложенной программы при помощи отладчика Olly Debugger.

Ход работы:

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

00407C86 WINZIP32 Always PUSH WINZIP32.0047D95C

00407CA6 WINZIP32 Always PUSH 12C

004080C6 WINZIP32 Always CALL WINZIP32.004267E7

004080CB WINZIP32 One-shot ADD ESP,0C

00426926 WINZIP32 Always CALL DWORD PTR DS:[<&USER32.MessageB

2. При первой регистрации были заданы

имя пользователя: barzenkov

пароль: lorich.

3. Перед командой RET, находящейся по адресу 0167:00426940, содержимое регистров

ESI: 0047D958 WINZIP32.0047D958

EBX: 0047D928 WINZIP32.0047D928

4. Содержимое памяти по адресу, указанному

в регистре ESI: arzenkov

в регистре EBX: orich

5. Можно сделать вывод, что

по адресу: 0047D958 находится имя пользователя без первого символа.

по адресу: 0047D928 находится пароль без первого символа.

6. Функция GetDlgItemTextA вызывается по адресу:

7E3BB069 E8 0093FBFF CALL USER32.GetDlgItem

7. В функцию GetDlgItemTextA передаются следующие аргументы и их значения:

Идентификатор окна диалога 0012F65C 001E055E |hWnd = 001E055E ('Register WinZip',class='#32770',parent=0045054A)

Идентификатор управления 0012F660 00000C81 |ControlID = C81 (3201.)

Адрес текстового буфера 0012F664 0047D958 |Buffer = WINZIP32.0047D958

Макс. длина строки 0012F668 0000000B \Count = B (11.)

8. Адрес хранения идентификатора пользователя:

WINZIP32.0047D958

9. Адрес хранения записан в регистр:

ESI

10. После выхода из процедуры GetDlgItemTextA, значение регистра с адресом хранения идентификатора стало равно:

00000000

11. Команда по адресу 0167:00407B58 выполняет действие:

сравнивает первую букву логина с тем, что находится в памяти

12. В процедуру CALL 00407E31, вызываемую по адресу 0167:00407B83 передаются следующие аргументы и их значения:

Arg1 => 0047D928 ASCII "barzenkov"

Вывод. Среди аргументов передается имя пользователя.

13. В процедуру (CALL 00407CC6), вызываемую по адресу 0167:00407C16 передаются следующие аргументы и их значения:

0047D928 ASCII "barzenkov"

0047D958 ASCII "lorich"

14. На вход процедуры (CALL 00457900), вызываемой по адресу 0167:00407C2A передаются следующие аргументы и их значения:

0012F278 0012F354 ASCII "7D4C0FA8"

0012F27C 0047D958 ASCII "lorich"

0012F280 0031059A

0012F284 0047D958 ASCII "lorich"

0012F288 0047D928 ASCII "barzenkov"

Данная процедура выполняет проверку серийного номера.

15. Регистрационный код программы

7D4C0FA8

Вывод: в ходе выполнения работы были исследованы методы реализации обратного проектирования программ, изучены возможности отладчика Olly Debugger, исследована парольная защита предложенной программы при помощи отладчика

Соседние файлы в папке ЛР №9 - OllyDebugger