Указания к выполнению.
1. Скачайте и установите программу виртуализации Microsoft Virtual PC 2007 SP1, доступную по адресу:
http://www.microsoft.com/en-us/download/details.aspx?id=24439
2. Создайте в программе Microsoft Virtual PC 2007 SP1 виртуальную машину со следующими параметрами:
Информация по созданию виртуальной машины и установке операционной системы на виртуальную машину доступна по адресу:
3. Установите на виртуальную машину операционную систему Microsoft Windows Server 2003 SP1.
Замечание. Обратите внимание, в операционной системе обязательно должен быть установлен Service Pack 1 (SP1), поскольку исследовательское ядро Windows WRK поставляется именно для этой версии Windows.
В дальнейшем компьютер, на котором установлена программа Microsoft Virtual PC 2007 SP1, будем называть "физический компьютер", а виртуальный компьютер с операционной системой Microsoft Windows Server 2003 SP1 будем называть "виртуальной машиной".
Указания к выполнению.
1. Загрузите с сайта Windows Academic Program исходные коды Windows Research Kernel:
http://www.microsoft.com/WindowsAcademic
Для загрузки потребуется наличие подписки Microsoft Developer Network Academic Alliance (MSDN AA) или подтверждение статуса преподавателя.
2. Сборку ядра можно осуществить двумя способами: при помощи командного файла Build.bat и в среде Microsoft Visual Studio. Рассмотрим оба способа.
3. Сборка при помощи Build.bat.
В папке WRK-v1.2 находится файл Build.bat. Запустите его – должно открыться консольное окно и начаться сборка ядра:
Сборка продолжается несколько минут. В результате в папке WRK v1.2\base\ntos\BUILD\EXE появится файл ядра wrkx86.exe, а также файл с отладочной информацией wrkx86.pdb. Файл wrkx86.exe – это аналог файла ntoskrnl.exe для WRK.
4. Сборка при помощи Microsoft Visual Studio.
В папке WRK-v1.2 содержится файл решения WRK.sln – файл решения (solution) Microsoft Visual Studio 2008. Если на вашем компьютере установлена Microsoft Visual Studio версии не ниже 2008, вы можете открыть данный файл. При этом если установленная версия Visual Studio выше 2008, будет предложено сконвертировать решение в более новый формат, и после конвертации с решением можно будет работать.
Выберите конфигурацию x86 и платформу Win32:
В меню Построение выберите Построить решение (Build – Build Solution). Результат построения должен быть такой же, как при использовании Build.bat – в папке WRK v1.2\base\ntos\BUILD\EXE появится файл ядра wrkx86.exe.
Замечание. Рекомендуется при изучении лекций и выполнении лабораторных работ для просмотра исходного кода WRK использовать либо Visual Studio, либо HTML документацию по WRK (см. лекцию 5 "Исследовательское ядро Windows").
Указания к выполнению.
1. Запустите виртуальную машину с операционной системой Windows Server 2003 SP1.
2. Откройте в ней папку C:\Windows\System32.
3. Скопируйте в эту папку два файла:
Копирование можно осуществлять двумя способами. Для обоих способов нужно установить в Microsoft Virtual PC 2007 компонент Virtual Machine Additions (пункт меню Action – Install or Update Virtual Machine Additions).
Способ 1. Компонент Virtual Machine Additions позволяет копировать файлы простым перетаскиванием из окна физического компьютера в окно виртуальной машины.
Способ 2. Откройте окно настроек виртуальной машины: пункт меню Edit – Settings. Выберите в левой панели Shared Folders (Папки общего доступа) и нажмите в правой панели кнопку Share Folder:
Выберите папку или диск, который будет использоваться для общего доступа. Нажмите кнопку ОК.
После этого в окне My Computer эта папка (или диск) будет отображаться как сетевой диск, с помощью которого можно обмениваться данными между виртуальной машиной и физическим компьютером:
4. На виртуальной машине откройте файл boot.ini, расположенный в корневом каталоге системного диска (C:).
Если файл boot.ini не отображается в корневом каталоге, значит в настройках Проводника Windows выключен показ скрытых и/или системных файлов. На виртуальной машине откройте My Computer, в меню Tools выберите пункт Folder Options… При этом должно открыться окно Folder Options. Перейдите на вкладку View и найдите в списке два параметра:
Первый параметр отметьте, а у второго уберите флажок:
Нажмите кнопку OK и проверьте, что файл boot.ini отображается в корневом каталоге:
Откройте файл boot.ini и замените его содержимое следующим текстом:
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /NoExecute=OptOut multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Research Kernel " /noexecute=optout /fastdetect /kernel=wrkx86.exe /hal=halacpim.dll /debug /debugport=com1 multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Research Kernel [no debugger] " /noexecute=optout /fastdetect /kernel=wrkx86.exe /hal=halacpim.dll
В файле boot.ini хранятся параметры загрузки Windows. В данном случае, указаны три варианта загрузки:
Обратите внимание, мы использовали следующие опции в файле boot.ini:
/kernel – указание файла, используемого в качестве ядра;/hal – указание файла, используемого в качестве модуля HAL;/debug – активизация режима отладки;/debugport=com1 – для отладки используется COM порт.5. Перезагрузите виртуальную машину. Когда она начнет загружаться, должно отобразиться следующее окно:
Выберите загрузку в режиме отладки (debugger enabled) и нажмите Enter.
6. После загрузки операционной системы проверьте её версию.
Нажмите кнопку Start – Run (Пуск – Выполнить) и введите команду winver:
Появится окно с информацией о версии операционной системы:
Выключите виртуальную машину до окончания установки и настройки отладчика.
Указания к выполнению.
1. Скачайте Windows Software Development Kit (SDK) for Windows 8 по следующему адресу:
http://msdn.microsoft.com/en-US/windows/hardware/hh852363
Замечание. Данный дистрибутив предназначен для работы на операционных системах Windows 7 и Windows 8.
Загрузится программа инсталлятор (sdksetup.exe) размером около 1 Мб, после чего следует её запустить. Откроется следующее окно:
Выберите пункт Install the Windows Software Development Kit to this computer, нажмите кнопку Next.
При желании можете поучаствовать в программе улучшения продуктов Microsoft на основе опыта пользователей (Customer Experience Improvement Program) или отказаться от участия в ней:
На следующем шаге, если на вашем компьютере не установлен .NET Framework 4.5, программа инсталлятор предупредит, что без его наличия компонент .NET Framework 4.5 SDK не установится. Нам он не нужен, поэтому можно пропустить этот шаг (нажмите Next):
Прочитайте лицензионное соглашение и, если согласны с ним, нажмите Accept.
В следующем окне уберите все галочки, кроме Debugging Tools for Windows и нажмите Install:
Во время установки должно работать соединение с Интернетом.
После завершения установки программу WinDbg можно запустить (в Windows 7) из меню Пуск – Все программы – Windows Kits – Debugging Tools for Windows (X86) – WinDbg (X86).
Указания к выполнению.
1. Сначала необходимо задать настройки виртуальной машины.
В меню Action выберите пункт Settings. В левой панели выберите пункт COM1, в поле Named pipe введите следующий текст:
\\.\pipe\debugPipe
Нажмите кнопку ОК.
2. Установите пути к отладочным символам в настройках отладчика WinDbg.
Запустите отладчик WinDbg. В меню File выберите пункт Symbol File Path (или просто нажмите Ctrl+S). Откроется окно Symbol Search Path, в которое нужно ввести пути к файлам с отладочными символами. Введем два пути:
В окне Symbol Search Path введите следующий текст:
c:\WRK-v1.2\base\ntos\BUILD\EXE;
SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
Обратите внимание, что текст должен идти без пробелов и переносов строк:
Нажмите ОК.
3. Установить путь к исходному коду WRK в настройках отладчика WinDbg.
В меню File выберите пункт Source File Path (или нажмите Ctrl+P). Откроется окно Source Search Path, в которое нужно ввести путь к исходным файлам WRK, например, C:\WRK-v1.2\base:
Нажмите ОК.
4. Установить соединение отладчика WinDbg с виртуальной машиной.
В меню File выберите пункт Kernel Debug (или нажмите Ctrl+K). Откроется окно Kernel Debugging.
Установите следующие значения на вкладке COM в этом окне:
Нажмите кнопку OK, при этом начнется процесс подключения к виртуальной машине по COM порту. На вопрос о сохранении информации (Save information for workspace) можете ответить Yes.
Запустите виртуальную машину. В меню загрузки выберите Windows Research Kernel [debugger enabled]. В процессе загрузки в окне Command отладчика должна появиться следующая информация:
5. Узнать информацию о загруженных модулях.
Остановите процесс выполнения виртуальной машины, нажав кнопку
на панели инструментов отладчика, или выбрав в меню Debug пункт Break, или нажав Ctrl+Break.
Отладчик перейдет в режим ввода команд (внизу окна Command сделается активной строка для текстового ввода с подсказкой kd>):
При этом виртуальная машина будет недоступна для любого взаимодействия с пользователем.
В строке команд отладчика введите команду:
lmD
где заглавная буква D – параметр команды lm, отображающей список загруженных модулей.
В окне Command выведется список всех загруженных модулей (на рисунке показана только часть вывода):
Обратите внимание на информацию об отладочных символах справа от модулей ntdll и nt.
Если щелкнуть по названию модуля nt (или ввести команду lmDvmnt), то отобразится более подробная информация о данном модуле:
Чтобы продолжить работу виртуальной машины нажмите F5, или нажмите кнопку
на панели инструментов отладчика, или введите команду g в окне команд.
Указания к выполнению.
1. В отладчике WinDbg в меню Help выберите пункт Contents – откроется окно справочной системы отладчика, которая предоставляет подробную информацию по всем его командам.
2. Например, найдем информацию о команде lm.
Способ 1. Перейдите на вкладку Указатель и введите название команды:
Нажав кнопку Вывести можно перейти на страницу с описанием команды:
Способ 2. На вкладке Содержание найдите следующий раздел: Debugger Reference – Debugger Commands – Commands:
В указанном разделе найдите команду lm:
Указания к выполнению.
1. В WinDbg существуют два основных способа представления десятичных и шестнадцатеричных чисел – в стиле ассемблера MASM и в стиле C++. Этим способам посвящен раздел Numerical Expression Syntax в справке WinDbg:
2. В лабораторных работах будут использоваться обозначения в стиле C++:
3. Если не указывается префикс, число в WinDbg считается записанным в текущей системе счисления, которую можно узнать и, при необходимости, изменить при помощи команды n (Set Number Base):
В данном примере сначала проверяется текущая система счисления (команда n), она оказывается шестнадцатеричной (base is 16), затем устанавливается десятичная система счисления (команда n 10) и возвращается шестнадцатеричная (команда n 16).
4. Для перевода чисел из одной системы счисления в другую можно воспользоваться командой ? (Evaluate Expression):
В примере на рисунке сначала проверяется, что текущая система счисления – шестнадцатеричная (команда n), затем выполняется команда перевода числа 10, которое, в соответствии с текущей системой счисления рассматривается как шестнадцатеричное (команда ? 10), далее явно указывается, что переводимое число десятичное (команда ? 0n10), и, наконец, явно указывается, что переводимое число шестнадцатеричное (команда ? 0x10).
Задание 1. Найдите информацию о следующих командах отладчика:
? (Command Help)? (Evaluate Expression)bpd, da, db, dw, dddtnrsЗадание 2. Найдите информацию о следующих командах расширений отладчика:
!address!handle!sd!tokenУказания к выполнению.
1. Описание команд расширений содержится в разделе справки Debugger Reference – Debugger Commands – General Extension Commands.
Задание 3. Найдите информацию о следующих командах расширений режима ядра:
!devobj!drvobj!fileobj!memusage!object!process!sysinfo!thread!vmУказания к выполнению.
1. Описание команд расширений содержится в разделе справки Debugger Reference – Debugger Commands – Kernel Mode Extension Commands.
Задание 4. Изучить пример хорошего комментирования кода.
Указания к выполнению.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.