• Aucun résultat trouvé

Unit OS6: Device Management Unit OS6: Device Management

N/A
N/A
Protected

Academic year: 2022

Partager "Unit OS6: Device Management Unit OS6: Device Management"

Copied!
25
0
0

Texte intégral

(1)

Unit OS6: Device Management Unit OS6: Device Management

6.4.6.4. Lab ManualLab Manual

(2)

2

Copyright Notice Copyright Notice

© 2000-2005 David A. Solomon and Mark Russinovich

© 2000-2005 David A. Solomon and Mark Russinovich

These materials are part of the

These materials are part of the Windows Operating Windows Operating System Internals Curriculum Development Kit,

System Internals Curriculum Development Kit, developed by David A. Solomon and Mark E.

developed by David A. Solomon and Mark E.

Russinovich with Andreas Polze Russinovich with Andreas Polze

Microsoft has licensed these materials from David Microsoft has licensed these materials from David Solomon Expert Seminars, Inc. for distribution to Solomon Expert Seminars, Inc. for distribution to academic organizations solely for use in academic academic organizations solely for use in academic environments (and not for commercial use)

environments (and not for commercial use)

(3)

Roadmap for Section 6.4.

Roadmap for Section 6.4.

Lab experiments investigating:

Lab experiments investigating:

Viewing Security Processes Viewing Security Processes Looking at the SAM

Looking at the SAM

Viewing Access Tokens Viewing Access Tokens

Looking at Security Identifiers (SIDs) Looking at Security Identifiers (SIDs) Viewing a Security Descriptor structure Viewing a Security Descriptor structure

Investigating ordering of Access Control Entries (ACEs) Investigating ordering of Access Control Entries (ACEs) Investigating Privileges

Investigating Privileges

(4)

4

Lab: Viewing the Installed Driver Lab: Viewing the Installed Driver List List

View the list of System Drivers in the Software View the list of System Drivers in the Software

Environment section of the Windows Information Environment section of the Windows Information

utility (Msinfo32.exe) utility (Msinfo32.exe)

Note: the distinction between File System Drivers Note: the distinction between File System Drivers

and Kernel Drivers is from the Type value in the and Kernel Drivers is from the Type value in the

driver’s Registry key. This distinction is driver’s Registry key. This distinction is

meaningless.

meaningless.

(5)

Lab: Viewing Installed Drivers Lab: Viewing Installed Drivers

Open a command prompt Open a command prompt

and type “set and type “set

devmgr_show_nonpresent devmgr_show_nonpresent

_devices=1”

_devices=1”

Then enter Then enter

“devmgmt.msc”

“devmgmt.msc”

Select “show hidden Select “show hidden

devices” in the view menu devices” in the view menu

(6)

6

Lab: Viewing Loaded Drivers Lab: Viewing Loaded Drivers

List the loaded drivers with Drivers.exe from the List the loaded drivers with Drivers.exe from the

Resource Kit Resource Kit

List the loaded drivers “lm kv” in the kernel List the loaded drivers “lm kv” in the kernel

debugger debugger

(7)

Lab: Driver Verifier Lab: Driver Verifier

Enable verification for all drivers with all options Enable verification for all drivers with all options

Reboot Reboot

Does the system still boot?

Does the system still boot?

If not, use Last Known Good to reboot If not, use Last Known Good to reboot

After 7 minutes low resource simulation will After 7 minutes low resource simulation will

begin begin

Reboot again and within 7 minutes turn off Reboot again and within 7 minutes turn off

verification and reboot again!

verification and reboot again!

(8)

8

Lab: Viewing \Device Directory Lab: Viewing \Device Directory

Use Winobj to view driver objects in the \Device directory Use Winobj to view driver objects in the \Device directory

(9)

Lab: Device Name Mappings Lab: Device Name Mappings

Use Winobj to view symbolic links that define the Windows device Use Winobj to view symbolic links that define the Windows device namespace

namespace

(10)

10

Lab: Viewing Defined Driver Objects Lab: Viewing Defined Driver Objects

Use Winobj to view driver objects in the \Drivers and \FileSystem Use Winobj to view driver objects in the \Drivers and \FileSystem directories

directories

Drivers in the FileSystem directory are those that were marked as file Drivers in the FileSystem directory are those that were marked as file system drivers in their Registry key’s Type value

system drivers in their Registry key’s Type value

(11)

Lab: Viewing the TCP/IP Driver Lab: Viewing the TCP/IP Driver

Object and its Device Objects Object and its Device Objects

In the kernel debugger type “!drvobj tcpip 7”

In the kernel debugger type “!drvobj tcpip 7”

Note the DriverEntry function, which the I/O Note the DriverEntry function, which the I/O

Manager calls to start the driver Manager calls to start the driver

Note the I/O command dispatch function table Note the I/O command dispatch function table

Find the device objects for TCP, UDP and IP Find the device objects for TCP, UDP and IP

Type “!devobj <address>” with the address of each Type “!devobj <address>” with the address of each

of the listed device objects of the listed device objects

Find the TCPIP driver object in Winobj Find the TCPIP driver object in Winobj

(12)

12

Lab: Viewing Device Handles Lab: Viewing Device Handles

Any process that has an open handle to a device will have a Any process that has an open handle to a device will have a corresponding file object in its handle table

corresponding file object in its handle table Can be display with Process Explorer

Can be display with Process Explorer

(13)

Lab: Looking at a file object Lab: Looking at a file object

Open the handle view in Process Explorer and Open the handle view in Process Explorer and

look at handles of type “file”

look at handles of type “file”

Identify ones that represent real devices Identify ones that represent real devices

Type “dt _FILE_OBJECT” in the kernel Type “dt _FILE_OBJECT” in the kernel

debugger debugger

You can look at an actual file object with !fileobj You can look at an actual file object with !fileobj

(14)

14

Lab: Looking at Driver’s Dispatch Lab: Looking at Driver’s Dispatch

Routines Routines

Most drivers specify dispatch routines to handle Most drivers specify dispatch routines to handle only a subset of possible major function codes only a subset of possible major function codes

create (open), read, write, device I/O control, power, create (open), read, write, device I/O control, power, Plug and Play, System (for WMI commands), and Plug and Play, System (for WMI commands), and close

close

File system drivers are an example of a driver type File system drivers are an example of a driver type

that often fills in most or all of its dispatch entry points that often fills in most or all of its dispatch entry points with functions

with functions

The I/O manager sets any dispatch entry points that The I/O manager sets any dispatch entry points that a driver doesn’t fill to point to its own

a driver doesn’t fill to point to its own IopInvalidDeviceRequest

IopInvalidDeviceRequest

(15)

Lab: Examine Interrupt Intervals Lab: Examine Interrupt Intervals

Peripheral Device Controller

CPU Interrupt Controller

CPU Interrupt

Service Table 0 2 3

n

ISR Address Spin Lock

Dispatch Code

Read from device Acknowledge- Interrupt Request DPC Raise IRQL

Lower IRQL Grab Spinlock

Drop Spinlock

(16)

16

Lab: Find an IRP Lab: Find an IRP

Type “!irpfind” in the kernel debugger Type “!irpfind” in the kernel debugger

Locate an IRP aimed at the TCP/IP driver Locate an IRP aimed at the TCP/IP driver Type “!irp <address>” on the IRP

Type “!irp <address>” on the IRP

Look at the command type the active stack location (the one with the Look at the command type the active stack location (the one with the

“>” symbol)

“>” symbol)

Correlate that against the TCP/IP driver’s dispatch table: “!drvobj Correlate that against the TCP/IP driver’s dispatch table: “!drvobj

\driver\tcpip 7”

\driver\tcpip 7”

Type “!devobj <address>” to view the device object Type “!devobj <address>” to view the device object Type “!fileobj <address>” to view the file object

Type “!fileobj <address>” to view the file object

>[ c, 2] 1 1 86fb2488 861a4a40 00000000-00000000 pending \Driver\Tcpip

(17)

Lab: Find an IRP Lab: Find an IRP

Look at the issuing thread and process:

Look at the issuing thread and process:

Open Process Explorer and go to the threads Open Process Explorer and go to the threads

tab of the owning process tab of the owning process

Look at the stack of the thread to determine what its Look at the stack of the thread to determine what its

purpose is purpose is

Irp is active with 3 stacks 1 is current Mdl = 809d45c8

Associated Irp = 80988e68 Thread 80987da0: Irp stack trace.

(18)

18

Lab: Looking at a Device Stack Lab: Looking at a Device Stack

Use the !devstack command to look at a driver stack Use the !devstack command to look at a driver stack

0: kd> !devstack keyboardclass0

!DevObj !DrvObj !DevExt ObjectName 86e40530 \Driver\Ctrl2cap 86e405e8

> 86e42160 \Driver\Kbdclass 86e42218 KeyboardClass0 86e3f020 \Driver\i8042prt 86e3f0d8

86fc9650 \Driver\ACPI 86fccea0 0000006b

!DevNode 86fc85e8 :

DeviceInst is "ACPI\PNP0303\4&11876118&0"

ServiceName is "i8042prt"

(19)

Lab: See the volsnap.sys driver Lab: See the volsnap.sys driver

Using Winobj see what device corresponds to Using Winobj see what device corresponds to

\Global??\C:

\Global??\C:

In the kernel debugger look at that device object In the kernel debugger look at that device object

e.g. “!devstack \device\harddiskvolume1”

e.g. “!devstack \device\harddiskvolume1”

Note the volsnap.sys device object attached above Note the volsnap.sys device object attached above

the volume device the volume device

(20)

20

Lab: Viewing the Device Tree Lab: Viewing the Device Tree

Use View->Devices by Connection in the Use View->Devices by Connection in the

Hardware Manager to see a system’s device Hardware Manager to see a system’s device treetree

In the kernel debugger use “!devnode 0 7” to In the kernel debugger use “!devnode 0 7” to

see the internal representation of the device tree see the internal representation of the device tree

(21)

Lab: Viewing Devnode Information Lab: Viewing Devnode Information

Windows XP and Server 2003 Device Manager can display details tab Windows XP and Server 2003 Device Manager can display details tab

Shows devnode’s device instance ID, hardware ID, service names, Shows devnode’s device instance ID, hardware ID, service names, filters, and power capabilities

filters, and power capabilities Run:

Run: set devmgr_show_details=1 set devmgr_show_details=1 devmgmt.msc

devmgmt.msc

(22)

22

Lab: View the system power policy Lab: View the system power policy

Use !popolicy to see the active power policy Use !popolicy to see the active power policy

lkd> !popolicy

SYSTEM_POWER_POLICY (R.1) @ 0x80544020

PowerButton: None Flags: 00000003 Event: 00000010 Query UI SleepButton: Sleep Flags: 00000003 Event: 00000000 Query UI LidClose: Sleep Flags: 00000001 Event: 00000000 Query Idle: Sleep Flags: 00000001 Event: 00000000 Query

OverThrottled: Sleep Flags: c0000004 Event: 00000000 Override NoWakes Critical IdleTimeout: 0 IdleSensitivity: 50%

MinSleep: S1 MaxSleep: S1 LidOpenWake: S0 FastSleep: S1 WinLogonFlags: 1 S4Timeout: 0 VideoTimeout: 1200 VideoDim: 56 SpinTimeout: 0 OptForPower: 0 FanTolerance: 100% ForcedThrottle: 100%

MinThrottle: 20% DyanmicThrottle: None (0)

(23)

Lab: Looking at a Device’s Power Lab: Looking at a Device’s Power

Mapping Mapping

Open a command prompt Open a command prompt

and type “set and type “set

devmgr_show_details=1”

devmgr_show_details=1”

Then enter Then enter

“devmgmt.msc”

“devmgmt.msc”

Go to the “Details” page Go to the “Details” page on a device’s properties on a device’s properties page and look at “Power page and look at “Power

State Mapping”

State Mapping”

(24)

24

Lab: Using Filemon to Trace File I/O Lab: Using Filemon to Trace File I/O

1.1. Run FilemonRun Filemon

2.2. Set filter to only include Notepad.exeSet filter to only include Notepad.exe

3.3. Run NotepadRun Notepad

4.4. Type some textType some text

5.5. Save file as “test.txt”Save file as “test.txt”

6.6. Go back to FilemonGo back to Filemon

7.7. Stop loggingStop logging

8.8. Set highlight to “test.txt”Set highlight to “test.txt”

9.9. Find line representing creation of new fileFind line representing creation of new file

Hint: look for create operationHint: look for create operation

(25)

Lab: Seeing An Error’s Root Cause Lab: Seeing An Error’s Root Cause

with Filemon with Filemon

Many applications don’t report access denied Many applications don’t report access denied errors well

errors well

1. 1.

In Explorer, create a folder c:\noaccessIn Explorer, create a folder c:\noaccess

2. 2.

Remove all rights to the folderRemove all rights to the folder

3. 3.

Run Notepad & type some textRun Notepad & type some text

4. 4.

Run Filemon – set filter to Notepad.exeRun Filemon – set filter to Notepad.exe

5. 5.

In Notepad, File->Save As to In Notepad, File->Save As to c:\noaccess\test.txt

c:\noaccess\test.txt

Références

Documents relatifs

Repairing of the lost data was considered in [9], where the communication cost incurred by data download and repair was analyzed for a caching scheme where data is stored in the

Interrupt occurs; handler stores Interrupt occurs; handler stores data; signals device driver. data; signals

When an open succeeds the object manager creates a file object to When an open succeeds the object manager creates a file object to represent the open instance of the device and

Device drivers User / device interaction Example 1: basic module Example 2: character driver Example 3: « ioctl » method Example 4: the « mmap » method... Linux

Contexte du stage : Le département R&amp;D de Worldline assure la veille technologique et développe des prototypes qui mettent en œuvre des technologies innovantes appliquées

Besides the obvious ben- e��t of relieving the infrastructure network load, shif�ing data to a complementary wireless technology leads to a number of other improvements, including:

Taking into account the 5G eV2X service requirements, we propose a cooperative ultra-reliable resource allocation and scheduling approach that will be presented in more detail

1) When many devices want to access to the network in the same cell (Figure 13), they have to send the information to the access point serving the cell. However, the