Разработка приложения, способного защищать исполняемые файлы, страница 9

Для расшифровки из DLL вызывается функция PassWrd. В начале своей работы функция выводит на экран диалоговое окно, запрашивающее пароль. После ввода пароля начинается расшифровка, начиная с переданного функции виртуального адреса. Расшифровывается переданное функции количество байт. Параллельно с расшифровкой происходит вычитание из псевдо-контрольной суммы всех байт, вычитаемых из кода. После окончания расшифровки из  оставшегося числа вычитается длина введённого пароля. Если после всех вычислений получилось ненулевое значение, выводится сообщение об отказе в доступе, и вызывающей программе возвращается этот остаток. Если пароль верен, остаток равен нулю, и получив его, программа переходит на сохранённый EntryPoint.


Разработка интерфейса программы

Интерфейс программы представлен на рисунке 2.

Рисунок 2. Интерфейс программы

При выборе файла в нижней строке статуса появляются различные сообщения:

Фай можно защитить

Файл уже защищен

<Описание ошибки> если файл не может быть защищен

В зависимости от статуса файла становятся доступными кнопки «Защитить» (установить пароль), либо кнопка «Снять защиту» (снять пароль).

При нажатии на кнопку «Защитить» появляется диалоговое окно с просьбой ввести пароль а затем с просьбой подтвердить его.

Рисунок 3. Установка пароля

Можно ввести пароль а можно отменить действие. После ввода пароля программа выполняет все необходимые действия по установке защиты. Если защита проведена успешно, программа выдает сообщение об этом. Если наоборот, то выдается сообщение об ошибке.

При нажатии на кнопку «Снять защиту» появляется диалоговое окно с просьбой ввести пароль, аналогичное предыдущему (Рисунок 3)

Если пароль правильный то программа снимает защиту и сообщает об этом. Если пароль неправильный -  выдается сообщение о неправильном пароле.

В нижней части окна находится флажок «Создавать резервную копию». Если флажок установлен, то программа сохраняет старую программу с расширением .BAK (на всякий случай).

При нажатии кнопки «О программе»  появляется окно с информацией о программе.

При нажатии кнопки «Помощь»  появляется окно с помощью.

При нажатии кнопки «Выход» происходит выход из программы.


Требования программы

Программа была протестирована на ОС Windows XP, но работает и под Windows 9x, и под Windows ME и под Windows 2000

Программа позволяет защищает приложения в формате PE32. Для того, чтобы программа могла быть защищена, она должна импортировать не менее 2-х функций из KERNEL32.DLL (это ограничение почти несущественно, так как даже для выхода из Win32 программы используется функция из этой библиотеки). Программа не позволит начать защиту, если отсутствует файл или PEGUARD.BIN.

При установленном флаге «Создавать резервную копию» программа не позволит начать защиту, если не хватает места для создания резервной копии защищаемого файла.

Для корректной работы защищенного приложения нужно скопировать библиотеку Lamen.dll либо в каталог, где лежит программа, либо в системный каталог операционной системы System32.


Вывод

В ходе работы была разработана программа, удовлетворяющая требованиям задания. Она позволяет защищать исполняемые файлы от несанкционированного запуска с помощью запроса пароля. Программа построена таким образом, что в неё легко добавить новые методы защиты. Для этого потребуется только модифицировать программу защиты и добавить функцию в библиотеку расшифровки. Программа снабжена файлом помощи, отображаемым при нажатии на кнопку Help. Этот файл практически не содержит информации, помогающей в использовании программы, так как создан не с целью помочь пользователю, а с целью придать курсовому проекту вид законченного приложения.


Список литературы

1.  MSDN Library Visual Studio 6.0

2.  Джеффри Рихтер. Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows. // Электронная версия книги

3.  Харт, Джонсон. Системное программирование в среде Win32. - М.: "Вильямс", 2001. – С. 804.  А. Мешков, Ю. Тихомиров. Visual C++ и MFC. Программирование для Windows NT и Windows 95. T.1 – 470c. // Электронная версия книги

5.  Каев Артем //Интернет. – http://firststeps.ru/mfc/steps/

6.  Интернет