3.2.1. Структура программы
Программный продукт состоит из следующих частей:
- \Driver\*.* – файлы исходных кодов драйвера;
- \Driver\ACVHDD.asm – главный модуль драйвера;
- \Driver\dispatch.asm – модуль обработки IRP-запросов к драйверу;
- \Driver\consts.inc – объявление типов и констант;
- \Driver\proto.inc – прототипы реализованных функций;
- \Driver\seh0.inc – макросы для SEH (модуль написан Four-F);
- \Driver\ACVHDD.rap – файл проекта RadASM;
- \Driver\acvhdd.sys – сам драйвер;
- \Driver\AES\ – файлы части драйвера, реализующие шифрование;
- \Driver\AES\AESCrypt.inc – функции шифрования верхнего уровня (инициализация, шифрование и дешифрация целого буфера);
- \Driver\AES\boxes-fst.inc – таблицы перестановок;
- \Driver\AES\consts.inc – объявление констант и структур;
- \Driver\AES\EncodeDecode.inc – функции шифрования и дешифрации блоков по 16 байт, а также вспомогательные по отношению к ним функции;
- \Driver\AES\usefull_functions.inc – вспомогательные функции и макросы;
- \Loader\*.* – файлы исходных кодов загрузчика и оболочки;
- \Loader\Loader.asm – основной модуль загрузчика;
- \Loader\DelImageDlg.inc – диалог удаления файла образа;
- \Loader\DriverService.inc – функции взаимодействия с драйвером;
- \Loader\MainWndProc.inc – главная оконная функция;
- \Loader\NewImageDlg.inc – диалог создания нового образа диска;
- \Loader\PasswordDlg.inc – диалоговое окно ввода пароля при монтировании файла образа новым виртуальным логическим диском в систему;
- \Loader\TrayIcon.inc – модуль реализации иконки в трее;
- \Loader\Loader.rc – список подключаемых ресурсов;
- \Loader\Loader.rap – файл проекта RadASM;
- \Loader\Loader.exe – сам загрузчик;
- \Loader\Icons\*.ico – иконки, используемые в загрузчике;
- \Loader\Res\*.* – файлы ресурсов используемых в загрузчике;
- \Loader\Res\XPMan.manifest – манифест для программы;
- \Loader\Res\DialogForms.rc – ресурсы диалоговых окон;
- \Loader\Res\LoaderRes.rc – иконки, добавляемые в ресурсы;
- \Loader\Res\XPMan.rc – подключение к проекту манифеста.
3.2.2. Структура данных
Для реализации программного продукта кроме стандартных заголовочных файлов необходимы файлы из KmdKit (Kernel Mode Driver Development Kit for MASM32 programmers) от Four-F, являющийся переработкой заголовочный файлов из DDK. Без них совершенно невозможна компиляция драйвера, а также компиляция нескольких модулей загрузчика.
3.2.3. Средства обмена данными
Пользователь непосредственно работает только с загрузчиком, предоставляющим пользователю все поддерживаемые продуктом функции. Все взаимодействие происходит через контекстное меню иконки, добавляемой загрузчиком в трей, и через три диалоговых окна: создание нового файла образа, ввод пароля, удаление файла образа.
Система взаимодействует с драйвером через диспетчер ввода-вывода (Input/Output Manager), а загрузчик – через функции диспетчера управления службами (Service Control Manager, SCM).
3.2.4. Алгоритм работы программы
Общий принцип работы программного приложения следующий:
После запуска приложения-загрузчика Loader.exe сначала проверяется, а не запущена ли уже эта программа на данной машине. Для этого с помощью функции CreateFileMapping в виртуальной памяти создается блок, имеющий уникальное имя. В случае ошибки, т.е. наличия другой запущенной копии, выводится сообщение об ошибке и работа приложения завершается. Первая копия в конце своей работы освобождает выделенный блок памяти вызовом CloseHandle.
В ином случае создается невидимое главное окно, предназначенное для обработки сообщений, приходящих от иконки в трее. В оконной функции WndProc этого окна обрабатываются несколько различных сообщений от системы.
При создании окна функцией AC_TrayIconCreate создается иконка в трее, затем с помощью функции AC_FindDriverInMem осуществляется поиск драйвера в памяти. Если драйвер загружен, то вызов AC_GetUsedDriveLetter возвращает букву диска, с которой связан драйвер. Затем в зависимости от состояния драйвера функция AC_TrayIconMenuItemsCheckState меняет иконку в трее и доступность пунктов контекстного меню, информируя пользователя о состоянии драйвера.
При закрытии окна функцией AC_TrayIconDelete иконка в трее удаляется.
Сообщения, приходящие от иконки в трее, обрабатываются вызовами функций AC_TrayIconWndProc_WM_COMMAND и AC_TrayIconWndProc_WM_TRAY, где первая обрабатывает выбор пунктов меню пользователем, а вторая вызывает, при необходимости, контекстное меню.
При выборе пункта «Загрузить образ диска» вызывается функция AC_Cmd_LoadDriver, производящая загрузку драйвера и монтирование образа на создаваемый файл. После того, как функция отработает, вызывается AC_TrayIconMenuItemsCheckState.
При выборе пункта «Выгрузить диск» сначала вызывается AC_Cmd_UnloadDriver, выгружающая образ, драйвер и удаляющая диск, затем вызывается AC_TrayIconMenuItemsCheckState.
При выборе пункта «Создать образ диска» вызывается единственная функция NewImageDlgShow, описанная в модуле NewImageDlg.inc и реализующая весь процесс создания нового файла образа диска.
При выборе пункта «Удалить образ диска» также вызывается единственная функция DelImageDlgShow, внутри которой происходит весь процесс удаления существующего файла образа диска.
Алгоритм загрузки образа реализован внутри функции AC_Cmd_LoadDriver, и состоит из следующего: первоначально с помощью функции AC_FindDriverInMem осуществляется поиск драйвера в памяти и, если он работает, выводится сообщение о невозможности загрузки нового образа без предварительной выгрузки старого, после чего происходит прерывание функции загрузки образа. Иначе вызов AC_RegisterService загружает драйвер в память, а функция AC_StartService монтирует диск из файла, путь к которому передан ей в качестве параметра.
Выгрузка образа реализована в функции AC_Cmd_UnloadDriver следующим образом: сначала драйвер ищется вызовом AC_FindDriverInMem. Если он не найден, то выводится соответствующее сообщение и выгрузка на этом завершается. Иначе в функции AC_StopService производится выгрузка образа и удаление диска, затем вызов AC_DeleteService удаляет из памяти сам драйвер.
Процесс создания нового файла образа происходит внутри вызова функции NewImageDlgShow. Данная функция создает модальное диалоговое окно из окна, прописанного в ресурсах исполняемого файла загрузчика. Все действия выполняются внутри диалоговой оконной функции NewImageDlgWndProc. Основное действие выполняется в вызове функции AC_Cmd_LoadDriver, уже описанной выше. Остальные действия заключаются в проверке корректности введенных данных, доступности файла на запись и реализации интерфейса пользователя.
Процесс удаления существующего файла образа происходит внутри вызова функции DelImageDlgShow, по своему устройству весьма похожей на NewImageDlgShow тем, что так же создает диалог из ресурсов. Само удалении происходит в обработчике нажатия кнопки «Удалить».
... для блокировки загрузки с FDD; Интерфейс для блокировки загрузки с CD-ROM; Программное обеспечение формирования списков контролируемых программ; Документация. 2. Система защиты информации "Secret Net 4.0" Рис. 2.1. Назначение: Программно-аппаратный комплекс для обеспечения информационной безопасности в локальной вычислительной сети, рабочие ...
... » использовались раньше, а в наши дни они заложены практически в любой, даже самой сложной программе шифрования. Каждый из рассмотренных методов реализует собственный способ криптографической защиты информации и имеет собственные достоинства и недостатки, но их общей важнейшей характеристикой является стойкость. Под этим понимается минимальный объем зашифрованного текста, статистическим анализом ...
... которым они имели место, является одним из необходимых условий разработки защищенных систем и их использования.АЛГОРИТМ RC4 В настоящей работе проведен анализ криптостойкости методов защиты информации, применяемых в операционных системах семейства Microsoft Windows 95, 98. Кроме того, нами было проведено исследование по поиску необходимой длины ключа и пароля, а также были рассмотрены проблемы ...
... питания, уничтожители бумажных документов Заключение Цель курсового исследования достигнута путём реализации поставленных задач. В результате проведённого исследования по теме "Методы защиты информации в телекоммуникационных сетях" можно сделать ряд выводов: Проблемы, связанные с повышением безопасности информационной сферы, являются сложными, многоплановыми и взаимосвязанными. Они ...
0 комментариев