Аналог C/C++ функции strncpy; copy_block proc dst:DWORD, src:DWORD Функция копирования 16 байтного блока src в dst; StrLen proc item:DWORD Функция быстрого вычисления длины строки


перейти к полному списку дипломных проектов

Ссылка на скачивания файла в формате .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 моделирования

заработать

Закачай файл и получай деньги