Баринов Сергей Сергеевич
Факультет: | Компьютерные науки и технологии |
Кафедра: | Компьютерная инженерия |
Специальность: | Системное программирование |
Тема выпускной работы: | Разработка и исследование средств отладки режима ядра операционной системы Microsoft Windows |
Руководитель: | профессор, д.т.н. Святный Владимир Андреевич |
Консультант: | старший преподаватель Шевченко Ольга Георгиевна |
Перечень ссылок по теме выпускной работы
-
Прилепский В.А. Защита процессов Windows в режиме ядра
Методика защиты исполнения процессов ОС Windows в режиме ядра. Она включает в себя защиту от завершения, повреждения, внедрения кода и других вмешательств в работу процесса. Защита выполняется путем создания драйвера, который перехватывает обработчики системных сервисов и выполняет дополнительные проверки, не позволяя взаимодействовать с определенным процессом.
-
Гошко С.В. Защита исполнимого кода
Защита выполняется путем внесения изменений в исполняемый файл, которые затрудняют отладку и взлом приложения.
-
Галько Р.В. Операционная система реального времени QNX
Средства разработки кода для операционной системы QNX включают в себя отладочные механизмы. Поскольку в операционной системе QNX драйверы выполняются как обычные пользовательские процессы, их можно отлаживать и оптимизировать при помощи единого интегрированного инструментария.
-
Похилец Н.В. Как на самом деле работают системные вызовы Windows?
Большинство литературы, описывающей архитектуру и прикладной интерфейс операционной системы Windows, не затрагивает вопрос взаимодействия режима пользователя и режима ядра. Системные сервисы как раз и являются тем связующим звеном, и статья раскрывает вопросы их технической реализации.
-
Гриценко А.А. Получение, обработка и передача общесистемных сообщений в операционных системах Microsoft Windows
В данном докладе рассматриваются вопросы использования, проектирования и реализации специализированных динамических библиотек перехвата общесистемных сообщений и модулей управления ими.
-
Морозов Д.С. Общая концепция программирования драйверов для ОС семейства Windows NT
Современные операционные системы Windows не позволяют пользовательским приложениям напрямую работать с портами, как это было возможно в DOS и Windows 9x. Автор рассматривает возможные пути преодоления данного ограничения.
-
Dmitry Vostokov. Crash Dump Analysis
Дмитрий Востоков, сертифицированный технический специалист Microsoft, с 2003 работающий в компании Citrix и давно занимающийся вопросами отладки режима ядра, рассказывает о приемах анализа дампов памяти.
-
Microsoft Corporation. NTDebugging
Блог посвящен вопросам расширенной отладки и устранению проблем в различных сценариях для платформы Microsoft Windows. Он поддерживается сотрудниками команды Microsoft Global Escalation Services, которые проводят свои дни, отлаживая и копая программный код внутренних механизмов операционной системы Windows в поисках неисправностей, приводящих к блокировкам, сбоям, утечкам памяти, замедлению производительности.
-
Scott Noone. Analyze -v
Скотт Нун, сертифицированный технический специалист Microsoft в области драйверов и разработке режима ядра, повсеместно использует отладчик WinDbg и дизассемблер IDA Pro для решения возникших проблем и описывает свой опыт в блоге.
-
Mark Russinovich. Mark's Blog
Марк Руссинович, в настоящее время работающий в отделе Platform and Services в Microsoft Corporation, является крупным специалистом по внутреннему устройству и архитектуре операционной системы Windows. В своем блоге он рассказывает об успешно выявленных с помощью диагностических утилит и отладчика проблемах и сбоях.
-
Ken Johnson. Nynaeve: adventures in Windows debugging and reverse engineering.
Кен Джонсон является разработчиком приложений для платформы Windows. Его интересы включают: прикладное программное обеспечения для Windows, разработку драйверов, отладку, реверс-инжиниринг. Большая часть статей в блоге посвящена этим тематикам.
-
MSDN Forums
Сообщество разработчиков для операционной системы Windows, обсуждающее широкий спектр вопросов. Среди регулярных участников присутствует большое количество сертифицированных технических специалистов, поэтому можно рассчитывать на квалифицированную помощь.
-
Stack Overflow
Бесплатное сообщество вопросов и ответов. На многие вопросы, связанные с программированием, можно получить ответ в считанные минуты. Ресурс является чем-то средним между энциклопедией, блогом и форумом.
-
Microsoft .NET User Group Community
Группа единомышленников, объединенных по признаку интереса к новым информационным технологиям, готовности делиться знаниями и желанием учиться у коллег. Группа ориентирована, в первую очередь, на программирование и администрирование в стеке или с использованием технологий корпорации Microsoft.
-
RSDN
Русскоязычный сайт, посвященный программированию. Создатели сайта пытались хоть как-то компенсировать нехватку материалов по программированию на русском языке. На сайте можно найти статьи по различной тематике, ответы на вопросы, полезные утилиты.
-
Microsoft Corporation. TechNet Magazine
Основанный в 2005 году ежемесячный журнал, предоставляющий IT-профессионалам, которые работают с технологиями компании Microsoft, информацию о внедрении, эксплуатации и оптимизации их программных систем.
-
The NT Insider
Электронная версия журнала, посвященного исключительно разработке системного программного обеспечения для операционной системы Windows. Темы статей варьируются от общих, таких как серия «NT Drivers 101», до более специфичных тем, например, «Реализация PnP», «Взаимодействие между драйверами» или «Написание драйверов шин».
-
Nicolae Mogoreanu. Managed Library for interacting with Debugger Tools for Windows Engine API
Управляемая библиотека для взаимодействия с Microsoft Debugger Engine API. Предоставляет два набора классов: первый будет легко использовать людям, знакомым с Debugger Engine API, второй более соответствует стилю.NET. Библиотека дает возможность извлекать информацию из дампов памяти и из памяти запущенного приложения.
-
Microsoft Corporation. Singularity Research Development Kit
Singularity Research Development Kit (RDK) базируется на Microsoft Research Singularity Project. Он включает исходный код, утилиты сборки, тестовые пакеты и другие дополнительные материалы. Singularity RDK предназначен для академического некоммерческого использования. Singularity — начатый в 2003 году проект исследовательского подразделения корпорации Майкрософт по созданию высоконадёжной операционной системы, в которой микроядро, драйверы устройств и приложения написаны на управляемом коде.
-
Microsoft Open Debugger Extension for WinDbg
Модуль расширения для отладчика WinDbg, базирующийся на примере «exts» из Debugger Tools for Windows SDK. Основная цель проекта — помочь локализировать распространенные проблемы и сделать интерактивную и аварийную отладку легче.
-
Microsoft Corporation. Windows Research Kernel
Исходные коды ядра, основанного на ядре операционной системы Windows Server 2003 SP1, с инструментами для сборки и тестирования. Распространяется в образовательных и исследовательских целях.
-
Microsoft Corporation. Windows Driver Kit
Набор программных инструментов корпорации Microsoft, предназначенный для разработки драйверов устройств для платформы Microsoft Windows. Включает документацию, примеры, среды сборки и утилиты для разработчиков драйверов.
-
Microsoft Corporation. Windows Logo Kit
Windows Logo Kit включает все необходимое для сертификации устройств для ОС Windows. Он позволяет автоматизировать запуск тестов драйверов, которые должны быть выполнены поставщиками оборудования для получения эмблемы «Designed for Windows».
-
Intel Corporation. Intel 64 and IA-32 Architectures Software Developer's Manuals
Официальная документация по процессорам архитектур Intel 64 and IA-32 в пяти томах содержит: базовое описание архитектуры, справочник по набору инструкций, руководство по системному программированию и руководство по оптимизации.
-
Microsoft Corporation. Debug Help Library
Библиотека Debug Help включена в состав операционной системы Windows и содержит набор низкоуровневых функций для поддержки отладки. Библиотека используется другими, более высокоуровневыми библиотеками и различными отладчиками.
-
Microsoft Corporation. Debugger Engine and Extension APIs
Отладочное ядро дает возможность манипулировать отлаживаемой системой, как в режиме пользователя, так и в режиме ядра. Отладочное ядро поддерживает установки точек останова, уведомление о событиях, запрос символов, работу с памятью и регистрами и управление потоками.
-
Microsoft Corporation. Interoperating with Unmanaged Code
Microsoft .NET Framework поддерживает взаимодействие с компонентами COM, службами COM+, внешними библиотеками и системными сервисами операционной системы.
-
International Organization for Standardization. C# Language Specification
Язык C# стал стандартом ISO в 2003 году (ISO/IEC 23270:2003) в области «Информационные технологии» — «Языки программирования»
-
PInvoke.net: the interop wiki
Электронная библиотека, позволяющая разработчикам находить, редактировать и добавлять описание функций, структур, перечислений для взаимодействия с неуправляемым кодом Windows API.
-
Microsoft Corporation. Driver Debugging Basics
Слайды презентации с доклада на конференции WinHEC 2007, включающие информацию об отладчике WinDbg, его командах, отличиях архитектуры x64 от x86 и некоторых приемах отладки.
-
Mark Russinovich. Mysteries of Windows Memory Management Revealed
Слайды презентации с доклада Марка Руссиновича на конференции PDC 2010. В первой части рассказывается об управлении виртуальной памятью: раскрываются категории виртуальной памяти, проецируемые файлы и файлы подкачки. Во второй части внимание уделяется физической памяти, в частности, рабочим наборам и списках страниц памяти.
-
Mark Russinovich. Windows Vista Kernel Changes
Слайды презентации с доклада Марка Руссиновича на конференции WinHEC 2007. В операционной системе Windows Vista было сделано очень много изменений, и это касается не только внешнего вида. Улучшения в ядре коснулись практически всех аспектов: процессов и потоков, ввода-вывода и файловой системы, управления памятью, процесса запуска и завершения работы операционной системы.
-
Robert Kuster. WinDbg. From A to Z!
Экскурс в отладчик WinDbg, состоящий из 111 слайдов с тезисной информацией. По словам автора, в них включено все, что необходимо знать об отладчике WinDbg, и ничего более.
-
Robert Kuster. Common WinDbg Commands (Thematically Grouped)
Основным режимом для отладчика WinDbg является режим интерпретатора команд, количество которых исчисляется сотнями. В документе содержится справочная информация по наиболее используемым командам, сгруппированным по назначению.
-
Daniel Bullington. Debugging on the Windows Platform
Анализ всего многообразия средств отладки режима пользователя для платформы Window. В презентации рассматривается как неуправляемый, так и управляемый код, даются советы по поводу отладки в Microsoft Visual Studio и WinDbg, говорится о применении ряда техник, облегчающих отладку.
-
Microsoft Corporation. Advanced Driver Debugging
Слайды презентации, останавливающиеся на некоторых расширенных механизмах отладки ядра Windows.
-
David B. Probert. Windows Kernel Internals. I/O Architecture
Подсистема ввода-вывода в ядре операционной системы Windows является одной из ключевых, многие операции на низком уровне сводятся к чтению или записи в файловый поток. В ядре диспетчер ввода-вывода делит эти операции на пакеты запросов ввода-вывода, затем проходящие через стек драйверов.
-
Microsoft Corporation. Use the Microsoft Symbol Server to obtain debug symbol files
Для отладки приложений с помощью различных системных утилит требуется наличие отладочных символов. Файлы символов содержат дополнительную информацию об исполняемых файлах: имена функций и переменных, описание структур. Отладочные символы доступны для всех исполняемых файлов операционной системы Windows, и статья рассказывает, как настроить систему для автоматической загрузки символов с серверов корпорации Microsoft.
-
PCAUSA. Kernel Debugging WinDbg Host and Target in Virtual Machines
При сетевой отладке операционной системы отладчик запущен на системе, отличной от отлаживаемой. В этом случае отлаживаемую систему удобно запускать в рамках виртуальной машины. Статья содержит инструкции по организации соединения и описывает несколько типовых сценариев.
-
VMware. Examples: Debugging over a Virtual Serial Port
При сетевой отладке с привлечением виртуальной машины VMware Workstation отсутствует необходимость организовывать полноценную сеть: виртуальная машина предлагает возможность переадресации виртуального последовательного порта в именованный канал, тогда как отладчик Windows Debugger имеет возможность подключаться через именованный канал.
-
Christian Moser. WPF Tutorial
Содержит краткое описание и большое количество примеров использования тех или иных возможностей графического интерфейса нового поколения Windows Presentation Foundation. Все возможности распределены по тематическим группам, доступ к которым осуществляется посредством меню.
-
Matt Pietrek. A Crash Course on the Depths of Win32 Structured Exception Handling
Из всех возможностей операционной системы Windows структурная обработка исключений (SEH), возможно, используется наиболее широко как в режиме пользователя, так и в режиме ядра. На нее же опираются компиляторы, реализуя механизм исключений конкретного языка для платформы Windows. Однако внутренняя реализация механизмов SEH практически не документирована, поэтому автор доступно рассказывает о внутренних структурах, разграничивая код операционной системы, библиотек времени выполнения и компиляторов.
-
DebugInfo. Matching debug information
Как правило, отладочные символы хранятся в отдельном файле, а не внутри исполняемого файла. Даже при незначительном изменении программы адреса переменных и функций также меняются, изменяются имена и так далее. Использование при отладке устаревшей версии отладочных символов может привести к непредсказуемым последствиям. Поэтому отладчик должен иметь возможность предотвратить такую ситуацию. Статья раскрывает, каким образом это реализовано на системном уровне.
-
Mark Russinovich. Windows Sysinternals
В 1996 году, основав фирму Winternals Software, Марк Руссинович открыл веб-сайт Sysinternals, написал и опубликовал на нем множество популярных утилит для администрирования и диагностики Windows, среды которых Process Explorer, ProcessMonitor, Autoruns и др. После покупки Winternals Software корпорацией Майкрософт Марк Руссинович, уже как сотрудник Майкрософт, продолжил работать над этими утилитами, а веб-сайт Sysinternals стал частью Microsoft TechNet.
-
WASM.RU
Сайт призван предоставить как можно более полную и развернутую информацию по следующим темам: системное программирование, отладка и дизассемблирование программы, защита программ.
-
Русский BugTraq
Является одним из самых старых и популярных сайтов, посвященных информационной безопасности. Включает библиотеку статей, написанную участниками проекта и форум, насчитывающей более сотни тысяч сообщений.
-
OSR Online
OSR Online позиционирует себя в качестве технической домашней странице для системных программистов Windows: своего рода место, где собрана вся информация касательно написания, тестирования и поддержки драйверов операционной системы Windows.
-
IntervalZero. RTX
Microsoft Windows предлагает отличную операционную систему для персональных компьютеров, которая, однако, не является системой реального времени. Компания IntervalZero разработала собственную версию ядра для операционной системы Microsoft Windows, которая предоставляет программный интерфейс приложениям для взаимодействия с планировщиком реального времени: приложения могут быть уверены, что поставленная ими задача будет выполнена в конечное время.
-
Breakpoints Live. Web based Debugging Software
Компания Breakpoints Live специализируется на решениях в области отладки приложений как режима пользователя, так и режима ядра. Предлагаемый ей интерактивный отладчик DebugLive Debugger имеет веб-ориентированный дружественный интерфейс, который должен снизить порог вхождения и и облегчить процесс отладки.
-
Microsoft DreamSpark
Программа, введенная корпорацией Microsoft, чтобы предоставить студентам инструменты для разработки программного обеспечения (например, Microsoft Visual Studio) бесплатно. Украина также принимает участие в программе DreamSpark.