All Projects → protaskin → LowCDC-Win10x64

protaskin / LowCDC-Win10x64

Licence: GPL-2.0 license
A lowcdc.sys driver package for Windows 10 x64. Supports AVR-CDC and Digispark devices.

Programming Languages

Batchfile
5799 projects

Projects that are alternatives of or similar to LowCDC-Win10x64

rtl8822bu
RTL8822BU Wireless Driver for Linux
Stars: ✭ 59 (+210.53%)
Mutual labels:  driver
tahoe-lafs-public-clouds
tahoe-lafs backend drivers for no-cost cloud providers
Stars: ✭ 25 (+31.58%)
Mutual labels:  driver
Apex-Legends-SDK
Open Source Cheat for Apex Legends, designed for ease of use. Made to understand reversing of Apex Legends and respawn's modified source engine as well as their Easy Anti Cheat Implementation.
Stars: ✭ 101 (+431.58%)
Mutual labels:  driver
faunadb-csharp
C# driver for FaunaDB
Stars: ✭ 55 (+189.47%)
Mutual labels:  driver
mobius-gui
🎨 Reactive & Stream & Driver based UI framework build on Mobius Utils, equipped with neumorphism-derived & utility-first styles.
Stars: ✭ 43 (+126.32%)
Mutual labels:  driver
libusb-win32
libusb-win32 project official github repo
Stars: ✭ 44 (+131.58%)
Mutual labels:  driver
sx126x driver
Driver for SX126x radio
Stars: ✭ 41 (+115.79%)
Mutual labels:  driver
pg async.rs
Asynchronous, HA (master-master) PostgreSQL driver on top of libpq.
Stars: ✭ 40 (+110.53%)
Mutual labels:  driver
BadUSB
Personal implementation of the BadUSB exploit with an Atmel 8-bit AVR ATTiny85 acting as a HID keyboard
Stars: ✭ 63 (+231.58%)
Mutual labels:  digispark
vertica-sql-go
Official native Go client for the Vertica Analytics Database.
Stars: ✭ 52 (+173.68%)
Mutual labels:  driver
keithley2600
Python driver for Keithley 2600 series instruments.
Stars: ✭ 26 (+36.84%)
Mutual labels:  driver
spydriver
🕵️ Lightweight utility to intercept WebDriver and WebElement method calls.
Stars: ✭ 24 (+26.32%)
Mutual labels:  driver
laravel-db2
laravel-db2 is a simple DB2 service provider for Laravel. It provides DB2 Connection by extending the Illuminate Database component of the laravel framework.
Stars: ✭ 56 (+194.74%)
Mutual labels:  driver
node-drivers
Industrial protocol drivers in node.js
Stars: ✭ 20 (+5.26%)
Mutual labels:  driver
tarantool.ex
Tarantool client library for Elixir projects
Stars: ✭ 26 (+36.84%)
Mutual labels:  driver
stm32f7-qspi
QSPI serial flash driver for the STM32F7xx family of controllers
Stars: ✭ 14 (-26.32%)
Mutual labels:  driver
BetterJoyForDolphin
Allows the Nintendo Switch Pro Controller and Joycons to be used with the Dolphin Emulator
Stars: ✭ 44 (+131.58%)
Mutual labels:  driver
neo4j-java-driver-spring-boot-starter
Automatic configuration of Neo4j's Java Driver for Spring Boot applications
Stars: ✭ 33 (+73.68%)
Mutual labels:  driver
staubli
ROS-Industrial Staubli support (http://wiki.ros.org/staubli)
Stars: ✭ 15 (-21.05%)
Mutual labels:  driver
eruption
Realtime RGB LED Driver for Linux
Stars: ✭ 140 (+636.84%)
Mutual labels:  driver

LowCDC-Win10x64

This repo aims to provide instructions on how to create a lowcdc.sys driver package for the 64-bit version of Windows 10 and contains almost everything needed (except for the usbser.sys driver because of the limitations of Microsoft Software License Terms) to accomplish this.

The lowcdc.sys driver is developed by Osamu Tamura and published unchanged. The source code is available on the author's site.

The following devices are supported:

Device Hardware ID
AVR-CDC USB\VID_16C0&PID_05E1
Digispark USB\VID_16D0&PID_087E

The master branch can be broken, use tags/releases in order to obtain stable releases.

Caution

⚠️ Using bulk transfers by low-speed devices is NOT allowed by the USB 1.1 standard. Use at your own risk.

There is an increasing number of reports that indicate compatibility issues between AVR-CDC devices and the USB 3.0 driver stack of Windows 10. Before trying to create or install a LowCDC-Win10x64 driver package make sure that the USB device has been successfully enumerated and assigned a hardware identifier (ID). Learn more about hardware ID and how to find it for a given device.

Issues with the existing lowcdc.sys driver packages under Windows 10

Using LowCDC-Win10x64

Preparing and test-signing a driver package

  1. Download the latest release of LowCDC-Win10x64 and extract the contents somewhere on your computer.

  2. Find usbser.sys included in the 64-bit version of Windows 7. The file is located in the \Sources\install.wim\Windows\System32\DriverStore\FileRepository\mdmcpq.inf_amd64_neutral_fbc4a14a6a13d0c8 directory on the installation disk of Windows 7 with integrated SP1. The version number of the driver I use is 6.1.7601.17514. Copy the file to the directory with the LowCDC-Win10x64 files in it—your driver package directory—and rename it to usbser61.sys to avoid possible replacement of the Windows 10 in-box driver.

  3. Install Windows 10 SDK and Windows Driver Kit (WDK) with the same version number. Make sure that the Inf2Cat.exe tool is located in the \Program Files (x86)\Windows Kits\10\Bin\%Version%\x86 directory, the MakeCert.exe, CertMgr.exe, SignTool.exe tools are located in the \Program Files (x86)\Windows Kits\10\Bin\%Version%\x64 directory. Note that earlier installations of the kits did not include a version number in the path to the tools executables.

    There is also a workaround, which has been tested with the 10.0.19041.685 version of Windows 10 SDK and WDK, to install mostly necessary software. Choose to download the kits for installation on a separate computer instead of installing them. When the download is complete, run Windows SDK for Windows Store Apps Tools-x86_en-us.msi, Windows SDK Signing Tools-x86_en-us.msi and Windows Driver Kit Binaries-x86_en-us.msi from the Installers directories.

  4. Create a catalog file for the driver package.

  5. Create a MakeCert test certificate.

  6. Install the test certificate to the Trusted Root CA and Trusted Publishers local machine certificate stores.

  7. Test-sign the driver package's catalog file.

  8. Delete the private key associated with the test certificate (optional). ⚠️ Because the test certificate has been added to the Trusted Root CA and Trusted Publishers certificate stores, you must destroy the private key, so that it cannot be reused by an attacker to sign malicious applications.

Using the test-signed driver package

  1. Enable the TESTSIGNING boot configuration option, restart the computer for the change to take effect. When the option for test-signing is enabled, Windows displays a watermark with the text "Test Mode", the version and build numbers of Windows in the lower right-hand corner of the desktop. ⚠️ Be aware using Windows with the TESTSIGNING boot configuration option, Windows will load drivers that are signed by any certificate.

  2. To use the test-signed driver package on another computer, install the test certificate to the corresponding certificate stores using the Certificate Import Wizard or the CertMgr tool.

  3. Install the driver package.

Using createcat.bat

createcat.bat is a batch file that generates a test-signed catalog file for a LowCDC-Win10x64 driver package, i.e. performs the steps 4 through 8, inclusive, from the Preparing and test-signing a driver package section.

The batch file does not need any configuration and is ready for use. However you can change the name of a certificate (the CertName variable) or use an installed certificate (change the CertName variable, set CreateCert=0).

  1. Run createcat.bat with the administrative permissions (it is not necessary to run the batch file in the command prompt).

  2. Enter the Windows 10 SDK and WDK version number if included in the path to the tools executables.

  3. Examine the output. The text below is the result of a successful execution.

D:\LowCDC-Win10x64>createcat.bat
Administrator privileges are required. Detecting privileges...
Success: Administrator privileges are confirmed.

D:\LowCDC-Win10x64>dir "C:\Program Files (x86)\Windows Kits\10\Bin" /a:d
 Volume in drive C is Windows
 Volume Serial Number is FA25-3D99

 Directory of C:\Program Files (x86)\Windows Kits\10\Bin

2021-02-11  01:47              .
2021-02-11  01:47              ..
2021-02-11  01:47              10.0.14393.0
2021-02-11  01:47              10.0.15063.0
2021-02-11  01:47              10.0.16299.0
2021-02-11  01:47              10.0.17134.0
2021-02-11  01:47              10.0.19041.0
2021-02-11  01:47              arm
2021-02-11  01:47              arm64
2021-02-11  01:47              x64
2021-02-11  01:47              x86
               0 File(s)              0 bytes
              11 Dir(s)  14 986 432 512 bytes free

Enter the Windows 10 SDK and WDK version number if included in the path to the tools executables: 10.0.19041.0

D:\LowCDC-Win10x64>cd /d C:\Program Files (x86)\Windows Kits\10\Bin\10.0.19041.0\x86

C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86>Inf2Cat /driver:"D:\LowCDC-Win10x64" /os:10_X64
.................................
Signability test complete.

Errors:
None

Warnings:
None

Catalog generation complete.
D:\LowCDC-Win10x64\lowcdc.cat

C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86>cd ..\x64

C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64>if 1 == 1 (
MakeCert -r -pe -ss My -n "CN=createcat.bat autogenerated certificate" -sk "createcat.bat autogenerated certificate" -eku 1.3.6.1.5.5.7.3.3 "D:\LowCDC-Win10x64\certcopy.cer"
 CertMgr -add "D:\LowCDC-Win10x64\certcopy.cer" -s -r LocalMachine Root
 CertMgr -add "D:\LowCDC-Win10x64\certcopy.cer" -s -r LocalMachine TrustedPublisher
)
Succeeded
CertMgr Succeeded
CertMgr Succeeded

C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64>SignTool sign /v /s My /n "createcat.bat autogenerated certificate" /t http://timestamp.digicert.com "D:\LowCDC-Win10x64\lowcdc.cat"
The following certificate was selected:
    Issued to: createcat.bat autogenerated certificate
    Issued by: createcat.bat autogenerated certificate
    Expires:   Sun Jan 01 02:59:59 2040
    SHA1 hash: 2F02FA84A9BC0F51901EE66FEC29CC7CCE7B1AF1

Done Adding Additional Store
Successfully signed: D:\LowCDC-Win10x64\lowcdc.cat

Number of files successfully Signed: 1
Number of warnings: 0
Number of errors: 0

C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64>SignTool verify /v /pa "D:\LowCDC-Win10x64\lowcdc.cat"

Verifying: D:\LowCDC-Win10x64\lowcdc.cat

Signature Index: 0 (Primary Signature)
Hash of file (sha1): F3CFE6C188D35D3F90C588C1CBC239396F770326

Signing Certificate Chain:
    Issued to: createcat.bat autogenerated certificate
    Issued by: createcat.bat autogenerated certificate
    Expires:   Sun Jan 01 02:59:59 2040
    SHA1 hash: 2F02FA84A9BC0F51901EE66FEC29CC7CCE7B1AF1

The signature is timestamped: Tue Mar 02 13:08:43 2021
Timestamp Verified by:
    Issued to: DigiCert Assured ID Root CA
    Issued by: DigiCert Assured ID Root CA
    Expires:   Mon Nov 10 03:00:00 2031
    SHA1 hash: 0563B8630D62D75ABBC8AB1E4BDFB5A899B24D43

        Issued to: DigiCert SHA2 Assured ID Timestamping CA
        Issued by: DigiCert Assured ID Root CA
        Expires:   Tue Jan 07 15:00:00 2031
        SHA1 hash: 3BA63A6E4841355772DEBEF9CDCF4D5AF353A297

            Issued to: DigiCert Timestamp 2021
            Issued by: DigiCert SHA2 Assured ID Timestamping CA
            Expires:   Mon Jan 06 03:00:00 2031
            SHA1 hash: E1D782A8E191BEEF6BCA1691B5AAB494A6249BF3


Successfully verified: D:\LowCDC-Win10x64\lowcdc.cat

Number of files successfully Verified: 1
Number of warnings: 0
Number of errors: 0

C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64>if 1 == 1 (
CertUtil -user -delkey "createcat.bat autogenerated certificate"
 CertMgr -del -c -n "createcat.bat autogenerated certificate" -s -r CurrentUser My
)
  createcat.bat autogenerated certificate
CertUtil: -delkey command completed successfully.
CertMgr Succeeded

C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64>cd /d D:\LowCDC-Win10x64
Press any key to continue . . .

createcat.bat has generated the test-signed catalog file lowcdc.cat and created the certcopy.cer file that contains a copy of the certificate.

Troubleshooting

Error 0x800B0101

SignTool Error: WinVerifyTrust returned error: 0x800B0101
        A required certificate is not within its validity period when verifying against the current system clock or the timestamp in the signed file.

Open lowcdc.cat, compare the signing time of the catalog file and the 'Valid from' value of the certificate. Adjust the system clock. Run createcat.bat again.

Screenshots

The installed driver details in Device Manager.

Device Manager

Communication with the MicroProg programmer.

The MicroProg programmer

Communication with the STK500 compatible programmer.

The AVPISP programmer

Credits

lowcdc.sys is developed by Osamu Tamura @ Recursion Co., Ltd.

License

Copyright 2016-2021 Artyom Protaskin

This document is licensed under a Creative Commons Attribution 4.0 International License.

Creative Commons License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].