Поиск условия проверки выхода. Запуск IDA, Выбор файла lab2,exe для дизассемблирования. Просмотр списка функций

Страницы работы

Содержание работы

Санкт-Петербургский государственный университет

информационных технологий механики и оптики

Лабораторная работа №2

по курсу «Безопасность вычислительных систем»

                                                              Выполнил:  

                                                     Группа:       5103

                                                                   Проверил: 

2008г.


1.  Задание

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

2.  Поиск условия проверки выхода

1)  Запуск IDA. Выбор файла lab2.exe для дизассемблирования.

2)  Просматриваем список функций в поисках функции завершения программы.

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

4)  Трассируя прогрaмму, доходим до процедуры, которая, вероятно и создаёт окно программы.

5)  Трассируя далее, доходим до адреса 0040145A, сразу замечаем, что после неё идёт команда сравнения содержимого регистра EAX - test eax, eax. Эта команда устанавливает флаг ZF при условии, что EAX = 0, видим, что в EAX записан ноль и при дальнейшей трассировке программа завершается, пробуем поменять значение в EAX на ненулевое, в результате программа работает. Таким образом надо просто поменять условие перехода.

.text:00401251              jz      short loc_401257

на   

.text:00401251              jmp     short loc_401257

Получаем работающую программу.

.text:0040140E          call    ?ShowWindow@CWnd@@QAEHH@Z ; CWnd::ShowWindow(int)

.text:00401413           mov     ecx, [ebp+var_10]

.text:00401416           call    sub_401640

.text:0040141B           mov     al, byte_40515C

.text:00401420           mov     [ebp+String1], al

.text:00401426           mov     ecx, 40h

.text:0040142B           xor     eax, eax

.text:0040142D           lea     edi, [ebp-13Bh]

.text:0040124F             test    eax, eax

.text:00401251              jmp      short loc_401257

.text:00401253              xor     eax, eax

.text:00401255              jmp     short loc_40125C

Похожие материалы

Информация о работе