Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОИБ Lab2.doc
Скачиваний:
5
Добавлен:
24.09.2019
Размер:
416.77 Кб
Скачать

3. Результаты работы

3.1. Выполнение индивидуального задания

1.) Написали простейшую программу на Си, запрашивающую пароль. Пароль хранится в файле в открытом виде. Проверку пароля реализовали в виде отдельной функции.

/* верный пароль «hello» */

Убедимся в том. Что программа запрещает доступ пользователям неправильно вводящим пароль:

Пароль верный – программа разрешает доступ.

Если водим неверный пароль, то доступ запрещен.

Далее ищем в исполняемом файле команду перехода при проверке правильности пароля

( в нашем случае это команда JNZ)

Меняем команду перехода таким образом, чтобы при вводе любого пароля программа принимала пользователя, как авторизованного.

Теперь пробуем запустить нашу программу и проверить, действительно ли, даже при неверном пароле доступ будет разрешен

2.) Модифицировали свою программу, чтобы исключить открытое хранение пароля

Далее выполняем все те же самые действия

/* верный пароль «hello_lo» */

3.) Сравним, действительно ли с помощью операции XOR пароль хранится в неявном виде

Без XOR

После применения XOR

4.) Запускаем на выполнение программу Nag.exe

Вводим в окне редактирования произвольный текст, примерно через 15 сек. Появляется окно «NAG SCREEN», далее оно появляется скова и снова.

Находим место, где контролируется счетчик и меняем всё так, чтобы всплывающее окно больше не блокировало работу программы

Заменяем на NOP команды

4.) Запусткаем программу

3.2. Ответы на контрольные вопросы

1.) Для защиты коммерческих программ от ввода некорректных данных применяются такие методы, как: запрос пароля или др. данных, которые позволили аутентифицировать пользователя; так же использование всплывающих окон (nag screen).

2.) Чаще всего в дизассемблированном коде, места, где идет проверка пароля сопровождаются комментариями – верно ли введен пароль или нет, именно по ним проще всего ориентироваться.

3.) Самым простым методом защиты от дизассемблирования является использование оптимизирующего отладчика. При компилировании программы с его помощью нарушается некоторый логичный порядок, что затрудняет понимание программы при дизассемблировании.

Использовать функции проверки на использование отладчика.

Так же есть вариант запаковать программу – и это пожалуй, лучший метод.

4.) Методы для усиления механизмов защиты:

  • Всплывающие окна, и установка таймера на них

  • Запаковка программ

  • Проверять присутствие отладчика

  • Хранить программу в память не целиком, а частично.

5.)Свободное распространение демо-версия является методом защиты программ от незаконного использования.

4. Выводы

В данной работе я ознакомилась с защитой коммерческого программного обеспечения. Были реализованы несколько программ по проверке пароля, изучена операция XOR – простейшее шифрование.

Так же были получены навыки в изучении, а главное понимании дизассемблированного кода программы.

Приложение

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]