Санкт-Петербургский государственный университет
информационных технологий механики и оптики
по курсу «Безопасность вычислительных систем»
Выполнил:
Группа: 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» или дать ему нулевое значение.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.