перейти к полному списку дипломных проектов
Ссылка на скачивания файла в формате .doc находится в конце странички
Аналог C/C++ функции strncpy;
copy_block proc dst:DWORD, src:DWORD
Функция копирования 16 байтного блока src в dst;
StrLen proc item:DWORD
Функция быстрого вычисления длины строки
Алгоритм загрузки образа реализован внутри функции 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 тем, что так же создает диалог из ресурсов. Само удалении происходит в обработчике нажатия кнопки «Удалить».
Описание основных функций программы
Описание функций дано в порядке вхождения модулей, в которых те описаны, в список файлов проектов.
Программа загрузчик (Loader.exe):
ProcessMessages proc hWnd:DWORD
Обработка всех сообщений из очереди для данного окна;
DelImageDlgWndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
Диалоговая оконная функция диалога удаления файла;
DelImageDlgShow proc
Вызов диалогового окна удаления файла;
AC_ErrorMessage proc error:DWORD
Вывод системной информации о произошедшей ошибке;
AC_FindDriverInMem proc
Поиск драйвера в памяти и получение его состояния;
AC_RegisterService proc
Загрузка драйвера в память;
AC_StartService proc lpFileName:DWORD
Загрузка образа из указанного файла и создание диска;
AC_StopService proc
Выгрузка образа и удаление диска;
AC_DeleteService proc
Выгрузка драйвера из памяти;
AC_CreateNewImage proc imgsize:DWORD, imgpath:DWORD
Процесс создания нового файла образа диска;
AC_Cmd_LoadDriver proc lpFileName:DWORD
Интерфейс загрузки существующего файла образа диска;
AC_Cmd_UnloadDriver proc
Интерфейс выгрузки драйвера из памяти;
AC_GetUsedDriveLetter proc
Поиск логического диска, с которым связан загруженный драйвер;
WinMain proc hInst:HINSTANCE, hPrevInst:HINSTANCE, CmdLine:LPSTR, CmdShow:DWORD
Создание и поддержка главного окна приложения;
WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
Оконная функция главного окна приложения;
_SaveFileDialog_ proc lpTitle:DWORD, lpFilter:DWORD, lpDefExt:DWORD
Вызов системного диалога выбора файла;
SwapButtonsEnabling proc hOwnerDlgWnd:DWORD
Переключение доступности кнопок диалогового окна. Вызывается на время выполнения выделения места под файл образа на винчестере, а также при удалении существующего файла образа для того, чтобы пользователь не мог ничего нажимать во время фоновой работы приложения;
NewImageDlgWndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
Оконная функция диалогового окна, в котором создается новый файл образа диска;
NewImageDlgShow proc
Создание диалогового окна, в котором создается новый файл образа диска;
FillDriveLetters proc hWndComboBox:DWORD
Заполнение всплывающего списка выбора (ComboBox) буквами дисков, не зарегистрированных в системе;
PasswordDlgWndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
Оконная функция ввода пароля;
PasswordDlgShow proc
Создание диалогового окна ввода пароля;
AC_TrayIconCreate proc
Создание иконки в трее и контекстного меню для нее;
AC_TrayIconDelete proc
Удаление иконки приложения из трея;
AC_TrayIconChange proc hNewIcon:DWORD
Изменение изображения у иконки приложения в трее;
AC_TrayIconWndProc_WM_TRAY proc wParam:DWORD, lParam:DWORD
Функция обработки сообщений от иконки в трее, которые система посылает главной оконной функции приложения;
AC_TrayIconWndProc_WM_COMMAND proc wParam:DWORD, lParam:DWORD
Функция обработки сообщений от пунктов контекстного меню;
AC_TrayIconMenuItemsCheckState proc
Функция меняет доступность пунктов меню и изображения иконки в трее в зависимости от текущего состояния драйвера.
Драйвер устройства (ACVHDD.SYS):
AC_OpenFileDrive proc pDeviceObject : PDEVICE_OBJECT, pIrp : PIRP
Открытие файла образа, а также инициализация и вычисление физических параметров создаваемого диска (число цилиндров, число секторов на трек, число байт на сектор и т.д.);
AC_CloseFileDrive proc pDeviceObject : PDEVICE_OBJECT, pIrp : PIRP
Освобождение выделенных ресурсов, закрытие файла образа, завершение работы системы шифрования;
AC_DriverUnload proc pDriverObject : PDRIVER_OBJECT
Функция вызывается при выгрузке драйвера и освобождает все выделенные ресурсы;
AC_DriverEntry proc pDriverObject : PDRIVER_OBJECT, pusRegistryPath : PUNICODE_STRING
Точка входа при первоначальной загрузке драйвера. Создает само устройство, инициализирует мютекс, а также устанавливает обработчики в DRIVER_OBJECT на системные запросы IRP_MJ_ xxx;
InitAES proc passwrd:DWORD
Инициализация системы шифрования по заданному паролю;
DoneAES proc
Завершение работы системы шифрования;
EncodeBuffer proc src:DWORD, dst:DWORD, block_count:DWORD
Шифрование буфера src длиной block_count 16 байтных блоков с записью результатат в dst;
DecodeBuffer proc src:DWORD, dst:DWORD, block_count:DWORD
Дешифровка буфера src длиной block_count 16 байтных блоков с записью результате в dst;
b_SetUp_Encode proc
Внутренняя функция, используемая при шифровании;
b_SetUp_Decode proc
Внутренняя функция, используемая при десшифрации;
rijndaelEncrypt proc a:DWORD, b:DWORD, rk:DWORD
Шифрование 16 байтного блока a с записью результата в b на основе ключей раундов rk;
rijndaelDecrypt proc a:DWORD, b:DWORD, rk:DWORD
Дешифровка 16 байтного блока a с записью результата в b на основе ключей раундов rk;
my_strncpy proc dst:DWORD, src:DWORD, maxlen:DWORD
Функция копирования нультерминальной строки. Аналог C/C++ функции strncpy;
copy_block proc dst:DWORD, src:DWORD
Функция копирования 16 байтного блока src в dst;
StrLen proc item:DWORD
Функция быстрого вычисления длины строки. Аналог C/C++ функции strlen;
populateKeyMaterial proc text:DWORD, key:DWORD
Расширение пароля text до заполнения длины ключа key;
InvMixColumn proc a:DWORD
Специальное перемешивание байт массива a;
rijndaelKeySched proc k:DWORD, W:DWORD
Формирование ключа шифрования по расширенному паролю;
rijndaelKeyEnctoDec proc keyBits:DWORD, W:DWORD
Формирования ключа дешифрации из ключа шифрования;
makeKey proc key:DWORD, direction:DWORD, keyLen:DWORD, keyMaterial:DWORD
Формирование ключа шифрования/дешифрования на основе пароля key, требуемому направлению шифрования direction, длины ключа keyLen и начального материала для формирования ключа keyMaterial;
MmGetSystemAddressForMdlSafe proc pMdl:PMDL, Priority:DWORD
Получение указателя в системном адресном пространстве нулевого кольца для пользовательского буфера в третьем кольце защиты;
AC_DispatchReadWrite proc pDeviceObject : PDEVICE_OBJECT, pIrp : PIRP
Функция – обработчик запросов системы на чтение/запись с устройства – диска; производит чтение / запись с соответствующим шифрованием / дешифрованием;
AC_DispatchCreate proc pDeviceObject : PDEVICE_OBJECT, pIrp : PIRP
Обработка инициализации драйвера в системе;
AC_DispatchClose proc pDeviceObject : PDEVICE_OBJECT, pIrp : PIRP
Обработка выгрузки драйвера;
AC_LoadKeyAndInitAES proc pDeviceObject : PDEVICE_OBJECT, pIrp : PIRP
Обработка сообщения от приложения загрузчика, передавшего в драйвер введенный пользователем пароль. Инициализация системы шифрования на основе этого пароля;
AC_DispatchControl proc pDeviceObject : PDEVICE_OBJECT, pIrp : PIRP
Функция обработки всех приходящих драйв
скачать бесплатно Программного Обеспечения ЭВМ, Информационных Технологий и Прикладной Математики
Содержание дипломной работы
Техническое задание
1
Основная часть текста, разделенная на разделы:
Исследовательская часть
Для того чтобы этого избежать, следует использовать специальный режим шифрования
С использованием IV сообщения с идентичным открытым текстом при шифровании переходят в сообщения с различным шифротекстом
В данном продукте решено использовать стандартный размер блока в 128 бит и размер ключа в 256 бит, как наиболее стойкий вариант
Коэффициенты этого преобразования выбраны таким образом, чтоб у полученного узла замен отсутствовали точки неподвижности (S[y] = y), и "антинеподвижности" (S[y] = ~y)
Кроме того, в обратной матрице присутствуют четыре различных элемента, тогда как в исходной - только три, что позволяло "сэкономить" одно умножение из четырех
inc – функции шифрования и дешифрации блоков по 16 байт, а также вспомогательные по отношению к ним функции;
\Driver\AES\usefull_functions
При выборе пункта «Удалить образ диска» также вызывается единственная функция DelImageDlgShow, внутри которой происходит весь процесс удаления существующего файла образа диска
Аналог C/C++ функции strncpy;
copy_block proc dst:DWORD, src:DWORD
Функция копирования 16 байтного блока src в dst;
StrLen proc item:DWORD
Функция быстрого вычисления длины строки
Для выгрузки драйвера и удаления виртуального диска из системы выберите пункт «Выгрузить диск» контекстного меню
Кроме того, реализованный в данной работе криптографический алгоритм Rijndael (AES), обладает высокой криптостойкостью и очень высокой скоростью работы
, нами было разработано и проведено 6 занятий по 3D моделированию, позволяющих изучить основы 3D моделирования