Поиск условия проверки выхода. Запуск W32DASM, Выбор файла lab1,exe для дизассемблирования. Листинг кода (условие проверки выхода)

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

2 страницы (Word-файл)

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

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

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

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

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

Выполнил:

                                                     Группа:       5103

                                                                   Проверил: 

2008г.


1.  Задание

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

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

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

2)  “Functions” -> “Import” показывает нам функцию KERNEL32.ExitProcess

3)  Переходим к коду вызова этой процедуры и смотрим условия перехода к этому вызову.

4)  Замечаем команду cmp и далее команду перехода в зависимости от результата её выполнения.

3.  Листинг кода (условие проверки выхода)

* Reference To: MFC42.MFC42:NoName0084, Ord:1847h

:004013E5 837DF000                  cmp dword ptr [ebp-10], 00000000

:004013E9 7508                           jne 004013F3

:004013EB 6A00                          push 00000000

* Reference To: KERNEL32.ExitProcess, Ord:00B6h

:004013ED FF1510304000           Call dword ptr [00403010]

4.  Внесенные изменения

* Reference To: MFC42.MFC42:NoName0084, Ord:1847h

:004013E5 837DF000                  cmp dword ptr [ebp-10], 00000000

:004013E9 7408                           je 004013F3

:004013EB 6A00                          push 00000000

* Reference To: KERNEL32.ExitProcess, Ord:00B6h

:004013ED FF1510304000           Call dword ptr [00403010]

5.  Комментарии к дополнительному заданию

            Программа проверяет значение параметра «Value» в реестре по адресу «Software\Microsoft\Explorer\Parameters». Если значение существует и неравно нулю, то программа завершает работу. Значит, для работы программы достаточно удалить параметр «Value» или дать ему нулевое значение.

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

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