Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Выбор языка и среды программирования↑ ⇐ ПредыдущаяСтр 3 из 3 Содержание книги
Поиск на нашем сайте
Сегодня существует большое количество как различных средств разработки, так и платформ. Наиболее используемые в настоящее время языки программирования: C++/MFC, Win32/C++, Visual Basic, Java, Delphi, C#. Выбор языка программирования сразу же был сделан в пользу C/C++. Будучи языком высокого уровня, он все же предоставляет программисту полный контроль над машиной, позволяет легко переходить на язык более низкого уровня (ассемблер). С++ является мировым стандартом для приложений, где нужно быстродействие и малый размер кода при достаточно глобальных масштабах проекта. Для написания драйвера использовался язык С, т.к. Windows XP не поддерживает использование C++ для компонентов ядра. Для этого имеется ряд причин: - отсутствие библиотеки времени исполнения (runtime library), а, следовательно, и определяемых в ней глобальных операторов new и delete; - отсутствие поддержки исключительных ситуаций C++; - нет поддержки инициализации глобальных экземпляров классов. Для разработки драйвера была использована специализированная среда для разработки драйверов - Driver Development Kit (DDK) для Windows XP Service Pack 1 от Microsoft Windows. В частности, утилита BUILD. Эта утилита позволяет создавать любой тип исполняемого файла, поддерживаемый NT с использованием командной строки. Для отладки драйвера использовался режим построения исполняемого файла - Checked build, который позволяет выводить трассировочную информацию с помощью функции DbgPrint(). Для ее просмотра использовалась программа Марка Руссиновича DebugView. Для разработки пользовательского приложения использовалась среда Microsoft Visual Studio 2005, поскольку она дает мощные и гибкие средства разработки программного продукта. Для создания максимально переносимого приложения для разработки было использовано WinAPI, что дает возможность пользовательскому приложению работать на всех компьютерах вне зависимости от того, установлен ли на нем FrameWork 2.x. Решающим фактором стало то, что WinAPI дает максимальную скорость выполнения, т.к. в любом случае все функции построены на API средствах Windows и являются лишь их «оберткой», что существенно снижает их эффективность. При разработке обеих частей проекта была реализована модульность для обеспечения необходимой структурированности, устранения громоздкости кода, и унификации отдельных частей программы с целью обеспечения возможности пользоваться фрагментами программы при написании других приложений и для удобства дальнейшего развития проекта.
Пользовательский интерфейс
При запуске программы автоматически создается дерево файлов всех дисков NTFS на компьютере. Для загрузки драйвера в память нужно нажать на кнопку «загрузить». При успешной загрузке драйвера будет выдано соответствующее сообщение, в случае ошибки (например, если драйвер уже находится в памяти) пользователю будет выдан тип ошибки. Рис.7. Вид главного окна
Для сокрытия файлов необходимо выбрать соответствующий файл из каталога файлов и перетащить его в правую сторону, либо нажать на верхнюю кнопку со стрелочкой влево. Если при закрытии приложения драйвер не был выгружен из памяти, то при последующем запуске все скрытые ранее фалы будут показываться в левом окне приложения. Все скрытые файлы хранятся в реестре в ветке HKEY_LOCAL_MACHINE\SYSTEM\Rootkit и удаляются оттуда либо при поступлении команды о снятии правила с файла. Для того, чтобы снять все правила, необходимо нажать на самую нижнюю кнопку и все файлы, находящиеся слева станут видимыми для пользователя. При сокрытии файлов необходимо помнить о том, что нельзя скрывать те файлы, которые используются в настоящий момент (!) или к ним возможно последующее обращение (!). Если система не сможет получить доступ к файлу, то для этого файла будут накапливаться необработанные сообщения, что приведет к краху системы. Рис.8. Вид директории до сокрытия файла DjvuReader.exe
Рис.8. Вид директории после сокрытия файла DjvuReader.exe Тестирование драйвера
Для тестирования драйвера использовалась программа Driver Verifier, входящая в состав Driver Development Kit (DDK) для Windows XP Service Pack 1 от Microsoft Windows, которая проверяет правильность следующих тестов: 1. Операции с пулами памяти; 2. Корректность уровней IRQL, на которых выполняется код драйвера; 3. Обнаружение взаимоблокировок; 4. Выполнение DMA операций; 5. Стресс-тест (нехватка ресурсов);
Рис.9. Диспетчер проверки драйверов
Все тесты прошли успешно. Память в системе распределялась правильно, ошибок с ней не возникало. На нехватку ресурсов драйвер реагировал корректно. Нетипичные запросы к драйверу не обрабатывались им. Выводы
В ходе разработки проекта были исследованы и проанализированы подходы к решению проблемы скрытия файлов. В результате работы над проектом создано программное средство, позволяющее скрывать файлы и папки в ОС Windows XP с помощью установки драйвера-фильтра файловой системы и обеспечивающее интерактивное взаимодействие с пользователем посредством приложения уровня пользователя. Данный программный продукт может использоваться как обычными пользователями для скрытия информации на компьютере, так и в ходе разработки системного программного обеспечения, поскольку возможно расширение функциональности созданной программы, путем добавления обработчиков соответствующих IRP – запросов в драйвер. Фильтр-драйвер был протестирован с помощью тестовых утилит из состава пакета DDK и отвечает всем современным требованиям, накладываемым ОС Windows на характеристики драйверов. Из недостатков реализованного проекта можно отметить невысокую степень защиты скрываемых данных – при перезагрузке системы в безопасном режиме, скрытые файлы и папки становятся снова видимыми. Эту проблему можно решить путем шифрования скрываемых данных, добавив реализацию соответствующих алгоритмов в пользовательское приложение, однако это, как было сказано в начале, выходит за рамки курсового проекта.
Список используемой литературы
1. В.П. Солдатов, Программирование драйверов Windows. Изд. 2-е, перераб. И доп. – М.: ООО «Бином-Пресс», 2004 г. – 480 с.: ил. ISBN 5-9518-0099-4 2. MSDN Library, Copyright 1987-2007 Microsoft Corporation 3. Д.Н. Колесниченко, Rootkits под Windows,теория и практика программирования шапок-невидимок, позволяющих скрывать от системы данные, процессы, сетевые соединения, изд. «Наука и Техника»,2006 г 4. Г. Хоглунг, Дж. Батлер, Руткиты – внедрение в ядро Windows, изд. «Питер», 2007 г. 5. Шрайбер С.Б., Недокументированные возможности Windows 2000, Изд. 1-е, 2002 год, «Питер»
|
||||
Последнее изменение этой страницы: 2020-03-26; просмотров: 123; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.148.222 (0.006 с.) |