12
UsbDk at a Glance

UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM

UsbDk at a Glance

Page 2: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM

Meet UsbDk

UsbDk stands for “USB Development Kit”Universal engine for exclusive access to USB devices on Windows OSesFull user mode API for all device operationsDesigned to support all types of USB devicesGeneric API to allow wide range of use-casesDesigned with HCK certifications in mindHiding engine for total detachment of USB devices from OS software stack

Page 3: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM

Feature setTotally dynamic device captureNo INF files and no self-signing neededAny device can be captured

Totally dynamic device detachmentAny device or class of devices may be hiddenPrevents Windows from showing "New Hardware” pop-ups for devices without in-box driversGreat for security solutions

Co-existence with original device driverWhen the device is not captured original driver is loaded by the system automaticallyIf user mode client terminates unexpectedly for any reason system reverts to original device driver immediately

Supports for all types of devices and interfacesBulk, isochronous, composite, HID, etc.

Being USB filter driver doesn't require WHQL-ingas per Microsoft requirements

Page 4: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM

Advantages over WinUSB

Full feature parityFull support for isochronous devicesFull support for composite devicesNo INF files and no signing neededOpen source and community supported

Page 5: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM

Supported Windows Versions

7

VistaXP

8 8.1

2008

2008R2 2012 2012

R2

2003

10

2016

Page 6: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM

UsbDk is open sourceHosted by:http://www.spice-space.org

Mailing list:spice-devel(http://lists.freedesktop.org/mailman/listinfo/spice-devel)

Maintained by:Dmitry Fleytman <[email protected]>Dmitry Fleytman <[email protected]>

License:Apache 2.0

Git repository:http://cgit.freedesktop.org/spice/win32/usbdk/

Page 7: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM

Build environment

Visual Studio 2015

Windows Driver Kit (WDK) 10 for Windows 7/2008R2 and later platforms

Software Development Kit (SDK) 10 for Windows 7/2008R2 and later platforms

Windows 7 DDK (WDK 7.1) for Windows XP, 2003, Vista, 2008

WiX toolset 3.8 for MSI packages creation

Page 8: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM

UsbDk components

UsbDk.sys

UsbDkHelper.dll

UsbDkController.exe

Kernel mode

User mode

Page 9: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM

UsbDkHelper.dll API

Driver installation

Enumerate USB devices

Driver un-installation

Capture USB device

Pipe transfer

Control transfer

Configure device

Reset device

Inst

allAc

quire

Ope

rate

Hide USB device

Page 10: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM

UsbDk.sys structure

USB device filterUSB hub filter

Control interface

Generic USB device driver

UsbDkHelper.dll

PNP Manager

Page 11: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM

Technical Info

See ARCHITECTURE document at source tree roothttp://cgit.freedesktop.org/spice/win32/usbdk/tree/ARCHITECTURE

Software Development Manualavailable on www.spice-space.org

Page 12: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM

Thank you!