Защита информации в системах дистанционного обучения с монопольным доступом
Категория реферата: Рефераты по информатике, программированию
Теги реферата: гражданское право реферат, реферат на тему человек
Добавил(а) на сайт: Popyrin.
Предыдущая страница реферата | 7 8 9 10 11 12 13 14 15 16 17 | Следующая страница реферата
Чтобы облегчить работу программиста практически все современные компиляторы с языка C++ содержат специальные библиотеки классов. Такие библиотеки включают в себя практически весь программный интерфейс Windows и позволяют пользоваться при программировании средствами более высокого уровня, чем обычные вызовы функций. За счет этого значительно упрощается разработка приложений, имеющих сложный интерфейс пользователя, облегчается поддержка технологии COM и взаимодействие с базами данных.
Современные интегрированные средства разработки приложений Windows позволяют автоматизировать процесс создания приложения. Для этого используются генераторы приложений. Программист отвечает на вопросы генератора приложений и определяет свойства приложения - поддерживает ли оно многооконный режим, технологию COM, трехмерные органы управления, справочную систему. Генератор приложений, создаст приложение, отвечающее требованиям, и предоставит исходные тексты. Пользуясь им как шаблоном, программист сможет быстро разрабатывать свои приложения.
Подобные средства автоматизированного создания приложений включены в компилятор Microsoft Visual C++ и называются MFC AppWizard. Заполнив несколько диалоговых панелей, можно указать характеристики приложения и получить его тексты, снабженные обширными комментариями. MFC AppWizard позволяет создавать однооконные и многооконные приложения, а также приложения, не имеющие главного окна, -вместо него используется диалоговая панель. Можно также включить поддержку технологии COM, баз данных, справочной системы.
Среда Visual C++ 6.0 была выбрана как одно из лучших средств разработки на языке С++ для ОС Microsoft Windows. Немаловажным фактором является ее поддержка такими утилитами, как Visual Assist, BoundsChecker, которые в свою очередь позволяют создавать программы более быстро и качественно. Компилятор Visual C++ генерирует достаточно оптимизированный код, что весьма важно для разрабатываемого приложения.
3.1.3. Краткая характеристика библиотеки ATL
Библиотека активных шаблонов (ATL) представляет собой основу для создания небольших СОМ - компонентов. В ATL использованы новые возможности шаблонов, добавленные в C++. Исходные тексты этой библиотеки поставляются в составе системы разработки Visual C++. Кроме того, в эту систему разработки введено множество мастеров Visual C++, что облегчает начальный этап создания ATL-проектов.
Библиотека ATL обеспечивает реализацию ключевых возможностей СОМ
компонентов. Выполнения многих рутинных процедур, с которыми мы столкнулись
при разработке последнего примера, можно избежать за счет использования
классов шаблонов ATL. Приведем далеко не полный список функций ATL.
Некоторые из них будут рассмотрены в этой главе.
. Утилита AppWizard, предназначенная для создания первичного ATL- проекта.
. Мастер объектов, используемый для добавления в проект компонентов различных типов.
. Поддержка по умолчанию основных интерфейсов COM, таких как IUnknown и
IClassFactory.
. Поддержка механизма транспортировки пользовательского интерфейса.
. Поддержка базового механизма диспетчеризации (автоматизации) и двунаправленного интерфейса.
. Существенная поддержка разработки небольших элементов управления
ActiveX.
Основной задачей ATL является облегчение создания небольших СОМ-
компонентов. Задача MFC — ускорение разработки больших Windows-приложений.
Функции MFC и ATL несколько перекрываются, в первую очередь в области
поддержки OLE и ActiveX.
Поскольку разрабатываемый модуль защиты не велик и не требует какой либо работы с графическим интерфейсом, то вполне естественно выбрать его, а не более тяжелый и излишний по функциональности MFC.
3.1.4. Краткая характеристика библиотеки ZLIB
Библиотека ZLIB представляет собой небольшую и удобную библиотеку на языке С. Ее назначение – упаковка и распаковка данных. Поскольку она распространяется в исходных кодах, то ее будет легко и удобно использовать в разрабатываемом модуле. Также отметим, что эта библиотека является свободно распространяемой, что не влечет за собой нарушения авторских прав.
3.2. Полиморфный генератор алгоритмов шифрования
Рассмотрим построение генератора полиморфных алгоритмов шифрования и
расшифрования. Эти алгоритмы всегда генерируются парами, механизм их
генерации весьма схож и осуществляется одним кодом. Разница только в том, что используются блоки, производящие обратные преобразования. Вначале
рассмотрим, как вообще выглядят общий алгоритм шифрования/расшифрования.
Затем покажем, как выглядит готовый код алгоритма шифрования/расшифрования, и расскажем о виртуальной машине, в которой он выполняется. Также будет
приведет отладочный вывод виртуальный машины, демонстрирующий работу
алгоритмов шифрования/расшифрования. Затем будет рассмотрен непосредственно
сам алгоритм построения полиморфного кода, и подсчитана вероятность
генерации одинаковых алгоритмов и пути повышения сложности полиморфных
алгоритмов.
3.2.1. Общие принципы работы полиморфных алгоритмов шифрования и расшифрования
Представим генерируемые алгоритмы шифрования/расшифрования в общем виде. Они состоят из 8 функциональных блоков, некоторые из которых могут повторяться. На рисунке 5 приведена абстрактная схема работы алгоритма шифрования/расшифрования. Повторяющиеся блоки обозначены эллипсами, находящимися под квадратами. Количество таких блоков выбирается случайно при генерации каждой новой пары алгоритмов. Функциональные блоки и их номер отмечены числом в маленьком прямоугольнике, расположенным в правом верхнем углу больших блоков.
Сразу отметим, что при своей работе виртуальная машина
использует виртуальные регистры и память. Начальное содержимое виртуальной
памяти, как и сам сгенерированный алгоритм, хранится в файле. Например, именно в виртуальной памяти может быть записано, сколько байт необходимо
расшифровать. Некоторые виртуальные регистры и виртуальные ячейки памяти
содержат мусор и не используются или используются в холостых блоках.
Холостые блоки состоят из одной или более базовых инструкций виртуальной
машины. Они не являются функциональными блоками, и их описание будет
опушено. Холостым блокам будет уделено внимание в следующем разделе. На
схеме произвольные регистры/ячейки памяти обозначаются как буква А с
цифрой. Полиморфный генератор случайным образом выбирает, какой же именно
регистр или ячейка памяти будет задействована в каждом конкретном алгоритме
шифрования/расшифрования. Рассмотрим теперь каждый из функциональных блоков
более подробно.
[pic]
Рисунок 5. Алгоритм шифрования/расшифрования в общем виде.
Рекомендуем скачать другие рефераты по теме: ответы 5 класс, реферат теория.
Предыдущая страница реферата | 7 8 9 10 11 12 13 14 15 16 17 | Следующая страница реферата