Добавил:
github.com Кофедра ВТ-помойка Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Тимофеев 2018 / ОС 1 лаб

.docx
Скачиваний:
19
Добавлен:
26.01.2019
Размер:
2.09 Mб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра вычислительной техники

отчет

по лабораторной работе №1

по дисциплине «Операционные системы»

Тема: «Исследование объектов Windows»

Студент гр. 6307

Лазарев С. О.

Преподаватель

Тимофеев А. В.

Санкт-Петербург

2018

Цель работы: исследовать объектные механизмы Win32.

Основные теоретические положения

Утилита Process Explorer отображает подробную информацию о процессах и потоках, включая их родство, загруженные DLL и открытые дескрипторы объектов.

Консольная утилита Handle отображает информацию о дескрипторах объектов, имеющихся у процессов системы. Для каждого процесса отображается имя, PID и имя учетная записи, от имени которой запущен процесс.

Программа LiveKD позволяет запускать отладчик ядра Microsoft KD, входящий в Windows Driver Kit (WDK). LiveKD позволяет выполнять просмотр моментального снимка работающей локальной системы, не перезагружая систему в режим отладки.

Экспериментальные результаты

Задание 1.1: Получить список открытых объектов и изучить типы объектов

Выбран процесс ConsoleApplication2.exe c PID = 9980

Объекты программы можно посмотреть с помощью Process Explorer

Рис. 1 - выбранный процесс для исследования и его объекты

А также с помощью утилиты handle.exe

Вывод используемых типов объектов программой ConsoleApplication2.exe с помощью ключа -s

Рис. 2 – сводный список с количеством объектов разного типа, принадлежащих выбранному процессу

Вывод всех объектов программы ConsoleApplication2.exe с помощью ключа –a

Приведён не полный список, он совпадает с выводом программы Process Explorer

Рис. 3.1 – список объектов выбранного процесса

Рис. 3.2 – список объектов выбранного процесса

Таблица1. Описание типов объектов:

ALPC Port

ALPC – Advanced Local Procedure Call Объект ядра, реализующий механизм межпроцессного взаимодействия

Desktop

Объект, содержащийся внутри объекта станции окна (windows station). Рабочий стол имеет логическую поверхность дисплея и содержит окна, меню и связи.

Directory

Виртуальный каталог в пространстве имён диспетчера объектов, отвечающий за содержание других объектов или каталогов объектов

EtwRegistration

Объект регистрации, связанный с ETW-провайдером пользовательского режима (или режима ядра), который зарегистрирован с помощью API-функции EventRegister.

Event

Объект, имеющий постоянное состояние (о котором поступил или не поступил сигнал), который может использоваться для синхронизации или уведомления.

File

Экземпляр открытого файла или устройства вводавывода.

IoCompletion

Метод для потоков по постановке в очередь и извлечении из неё уведомлений о завершении операций ввода-вывода.

Key (раздел реестра)

Механизм ссылки на данные реестра. С объектом раздела (key) связано от нуля до нескольких значений раздела, эти значения содержат данные о разделе.

Mutant

Механизм обеспечения взаимного исключения для сред Win32 и OS/2.

Section (раздел)

Область разделяемой памяти.

Semaphore

Счётчик, ограничивающий доступ к ресурсу путём разрешения доступа к этому ресурсу, защищённому семафором, вполне определённому максимальному количеству потоков.

Thread

Исполняемая категория внутри процесса.

Timer

Механизм уведомления потока об истечении конкретного периода времени.

TpWorkerFactory

Коллекция потоков, назначенных для выполнения конкретного набора задач. Ядро может управлять количеством рабочих элементов, которые будут выполняться по очереди, тем, сколько именно потоков будут отвечать за работу, а также динамическим созданием и завершением рабочих потоков, исходя из конкретных ограничений, устанавливаемых вызывающей программой. Windows показывает рабочий производственный объект через пулы потоков.

WindowStation

Объект, содержащий буфер обмена, набор глобальных атомов и группу объектов типа Рабочий стол

Job (задание)

Совокупность процессов, управляемая как единая группа.

Process

Виртуальное адресное пространство и управляющая информация, необходимая для выполнения набора объектов «поток»

SymbolicLink

Механизм косвенной ссылки на имя объекта.

Token

Закодированный идентификатор, содержащий информацию о правах доступа зарегистрировавшегося в системе пользователя.

С помощью утилиты handle.exe можно вывести список всех типов объектов, используемых в системе. Всего в системе используется 68228 объектов.

handle -s

Рис. 4 – сводный список с количеством объектов разного типа для всех процессов вычислительной системы

Описание типов объектов:

job objectпозволяет группировать несколько процессов и управлять ими как одним целым.

directory – объект, который содержит другие объекты.

EtwConsumer (ETW - Event Tracing for Windows) – потребляет события из ETW

EtwRegistration – регистрирует события для ETW

FilterCommunicationPort – менеджер порта коммуникации процессов

FilterConnectionPort – менеджер порта соединения процессов

IoCompletion – порт завершения, средство, повышающее производительность приложений, часто использующих операции ввода/вывода.

IoCompletionReserve – резервирует место для I/O completion

KeyedEvent – объекты ключевых событий системы

PcwObject(Performance Counters for Windows) – объект счётчика производительности

PowerRequest – объект запроса питания

Session – контролируют процесс установок.

SymbolLink – ссылка на другие объекты

Timer – объект извещающий процессы с определённым промежутком

TmRm – менеджер транзакций

TmIm – менеджер транзакций

Token – доступные права для объекта

TpWorkerFactory – делает системные вызовы для фабрик и их работников, содержит имя, атрибуты, желаемую маску доступа и дескриптор безопасности, для объектов.

UserApcReserve – резервирует место для APC (Asynchronous Procedure Calls) асинхронных вызовов

WmiGuide(Windows Management Instrumentation globally unique identifier) – уникальный id управления инструментами Windows.

Открытые файлы в системе с расширением .xls(xlsx)

Рис. 5 – Открытые файлы xls в системе

Закрытие дескриптора первого файла

Рис. 6- Закрытие дескриптора 1 файла

Открытые файлы после закрытия одного из дескрипторов

Рис. 7 – Открытые файлы после закрытия 1 дескриптора

Вывод: в операционной системе Windows каждый объект имеет свой дескриптор, однозначно определяющий тип объекта. Действия над объектами совершаются с использованием их дескрипторов.

Задание 1.2: Изучить хранение информации об объектах процесса

Процесс: ConsoleApplication2.exe в момент написания этого задания pid=998010=26FC16. Но после перезагрузки ПК PID может измениться, т.е он не закрепляется навсегда за процессом.

Вывод полной информации о таблице дескрипторов в процессе с идентификатором 0x26FC.

Рис. 8 – Вывод информации о процессе

Рис. 9 – Таблица дескрипторов данного процесса

Вывод подробной информации об объекте 0x0004 процесса 0x26FC.

Рис. 10 – вывод подробной информации об объекте 0004 данного процесса

Всего 53 вхождения, что совпадает с 53 в handle.exe, однако это не означает, что количество объектов всегда фиксировано.

Подробнее о процессе:

Рис. 11 – краткая информация о процессе

Вывод таблицы объектов процесса 0x26FC.

Рис. 12 – таблица объектов процесса

Проанализируем с помощью команды dd <физический адрес> первые 64 16-разрядных слова, размещенные по адресу одноуровневой таблицы объекта процесса:

Рис. 13 – таблица дескрипторов процесса

Физические адреса объектов выбранных дескрипторов

Номер дескриптора

Физический адрес объекта

4

0xffff8788d7a882d0

8

0xffff8788d761fb40

12

0xffff8788ccc5f050

Заголовки объектов.

Рис. 14 – заголовок объекта с дескриптором 4

Рис. 15 – заголовок объекта с дескриптором 8

Рис. 16 – заголовок объекта с дескриптором 12

Описания объектов. Проанализируем тип объектов.

Рис. 17 – описание объекта с дескриптором 4

Рис. 18 – описание объекта с дескриптором 8

Рис. 19 – описание объекта с дескриптором 12

Проанализируем структуру данных объектов.

4 дескриптор

Рис. 20 – структура данных объекта с дескриптором 4

8 дескриптор

Рис. 21 – структура данных объекта с дескриптором 8

12 дескриптор

Рис. 22 – структура данных объекта с дескриптором 12

Вывод: в ходе выполнения данной работы были исследованы объектные механизмы Win32, с помощью утилит Process Explorer, Handle и LiveKD был исследован процесс ConsoleApplication2.exe, был получен список объектов этого процесса и проанализированы дескрипторы 4, 8, 12 выбранного процесса.

Соседние файлы в папке Тимофеев 2018