Министерство образования и науки РФ
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
«Комсомольский-на-Амуре Государственный Технический Университет»
Факультет компьютерных технологий
Кафедра МОП ЭВМ
по курсу «ОСРР»
Выполнил: Неделько Н.И.
Проверил: Трещев И.А.
Вариант: 13
Комсомольск-на-Амуре
Тема: «Дисассемблеры и отладчики».
Цель: Научиться работать с отладчиком и дисассемблером.
Задание: Вам выдан рабочий модуль программы (COM файл). При запуске этой программы производится запрос пароля, после чего дается заключение о правильности прохода через пароль. Ваша задача:
1) Используя отладчик AFD или TD пройти по программе, найти место, где происходит дешифровка пароля и расшифровать его, после чего снова запустить программу, ввести правильный пароль и получить подтверждение о правильности прохода через пароль.
2) Используя дизассемблер SOUSER
- дизассемблировать выданную программу
- автоматически построить блок схему алгоритма ее работы
- найти в тексте программы место проверки пароля и подавить проверку
- заново ассемблировать программу и представить ее преподавателю, продемонстрировав, что программа теперь не запрашивает пароль ( или успешно завершается при любом пароле).
3) Оформить электронный отчет, в котором отразить:
- титульный лист;
- тему лабораторной работы и задание на лабораторную работу;
- описание этапов дешифровки пароля и экранные формы отладчика, использованные при дешифровке пароля;
- описание этапов дизассемблирования программы и экранные формы дизассемблера, использованные при этом, в отчет включить УЧАСТОК дизассемблированной программы, в котором происходит дешифровка и обработка пароля;
- описание этапов автоматического построения блок-схемы алгоритма программы, в отчет включить УЧАСТОК блок-схемы алгоритма, в котором происходит дешифровка и обработка пароля;
- описание приемов, примененных для подавления обработки пароля, в отчет включить УЧАСТОК дизассемблированной программы измененный Вами с целью подавления обработки пароля;
- описание порядка ассемблирования программы;
- вид экрана после срабатывания откорректированной программы;
Все экранные формы снимать с экрана и вносить в отчет, используя программу SNIPPER, выданную Вам преподавателем.
Электронный отчет представить на защиту. Знать приемы работы с отладчиком AFD или TD и дизассемблером SOUSER.
Вам выдан рабочий модуль программы (COM файл). При запуске этой программы производится запрос пароля, после чего дается заключение о правильности прохода через пароль. Ваша задача:
1) Используя отладчик AFD или TD пройти по программе, найти место, где происходит дешифровка пароля и расшифровать его, после чего снова запустить программу, ввести правильный пароль и получить подтверждение о правильности прохода через пароль.
2) Используя дизассемблер SOUSER
- дизассемблировать выданную программу
- автоматически построить блок схему алгоритма ее работы
- найти в тексте программы место проверки пароля и подавить проверку
- заново ассемблировать программу и представить ее преподавателю, продемонстрировав, что программа теперь не запрашивает пароль ( или успешно завершается при любом пароле).
Алгоритм работы программы:
Вводится пароль, потом одна буква зашифрованного пароля, потом происходит дешифровка с помощью команды XOR, сравнивается с символом введенным пользователем. Если пароль совпал то выводится сообщение об успехе.
Текст программы:
loc_4: │ │
┌────────────────────┴────────────────────┐ │
│ mov ah,9 │<────────┘
│ mov dx,offset data_7 │
│ int 21h │
│ mov dx,offset data_6 │
│ int 21h │
│ mov dx,offset data_7+2 │
│ int 21h │
│ mov cx,5 │
│ mov si,data_1e │
└────────────────────┬────────────────────┘
locloop_5: │
┌────────────────────┴────────────────────┐
┌──>│ mov bl,data_9[si] │
│ │ xor bl,7Ch │
│ └────────────────────┬────────────────────┘
│ ┌────────────────────┴────────────────────┐
│ │ cmp byte ptr ds:[17Bh][si],bl │
│ └────────────────────┬────────────────────┘
│ ^
│ / \ loc_6
│ < jne >─────────────────────────┐
│ \ / │
│ v │
│ ┌────────────────────┴────────────────────┐ │
│ │ inc si │ │
│ └────────────────────┬────────────────────┘ │
│ ┌────────────────────┴────────────────────┐ │
└───┤ loop locloop_5 │ │
└────────────────────┬────────────────────┘ │
┌────────────────────┴────────────────────┐ │
│ mov ah,9 │ │
│ mov dx,offset data_10+0Eh │ │
│ int 21h │ │
└────────────────────┬────────────────────┘ │
Результат работы программы:
Первым шагом оттрассировали программу в TD (см. рис. 1.).
Рис. 1. Трассировка в TD
Вторым шагом дисассемблировали программу в sources (см. рис. 2.).
:
Рис. 2. Дисассемблирование программы
Третьим шагом изменяем код программы (см. рис. 3.).
Рис. 3. Изменение кода
Четвертым шагом скомпилируем программу с помощью tasm, tlink и запустили ее на выполнение. Выдается сообщение о успешном выполнение задания (см. рис. 4.).
Рис. 4. Компоновка и сборка с помощью tasm, tlink
Список использованных источников:
1. Фролов А.В., Фролов Г.В. Библиотека системного программиста. Т. 1. Часть 1, 2, 3. Операционная система MS-DOS. М: ДИАЛОГ-МИФИ, 1991, 1993
2. Фролов А.В., Фролов Г.В. Библиотека системного программиста. Т. 2. Аппаратное обеспечение IBM PC. Часть 1, 2. М: ДИАЛОГ-МИФИ, 1992
3. Фролов А.В., Фролов Г.В. Библиотека системного программиста. Т. 3. Программирование видеоадаптеров CGA, EGA и VGA. М: ДИАЛОГ-МИФИ, 1992
4. Фролов А.В., Фролов Г.В. Библиотека системного программиста. Т. 6. Защищенный режим процессоров Intel 80286/80386/80486. М: ДИАЛОГ-МИФИ, 1993
5. Фролов А.В., Фролов Г.В. Библиотека системного программиста. Т. 8. Локальные сети персональных компьютеров. Использование протоколов IPX, SPX, NETBIOS. М: ДИАЛОГ-МИФИ, 1993
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.