ducky-tools | Tools for working with Ducky One keyboard firmware updates

 by   usedbytes Go Version: Current License: MIT

kandi X-RAY | ducky-tools Summary

kandi X-RAY | ducky-tools Summary

ducky-tools is a Go library. ducky-tools has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.

This is the result of some time spent reverse-engineering the Ducky One keyboard firmware updater. It can (in theory) be used to extract and update Ducky One firmware on platforms other than Windows. Contains code for handling "Updates", consisting of firmware blobs and the metadata related to them. This can extract Updates from Ducky’s .exe updater programs, and read/write .toml-based update files created by this tool. Contains code for working with the In-Application Programming (IAP) code on the keyboard, for erasing, flashing, retrieving info, etc. Application for accessing the above libraries.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              ducky-tools has a low active ecosystem.
              It has 11 star(s) with 1 fork(s). There are 2 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              There are 2 open issues and 0 have been closed. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of ducky-tools is current.

            kandi-Quality Quality

              ducky-tools has 0 bugs and 0 code smells.

            kandi-Security Security

              ducky-tools has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              ducky-tools code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              ducky-tools is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              ducky-tools releases are not available. You will need to build from source code and install.
              Installation instructions, examples and code snippets are available.
              It has 1992 lines of code, 86 functions and 9 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed ducky-tools and discovered the below as its top functions. This is intended to give you an instant insight into ducky-tools implemented functionality, and help decide if they suit your requirements.
            • main is the main entry point for testing
            • dumpAction is used to dump an update file
            • updateAction handles the update action
            • LoadTOMLUpdate loads an update from a TOML file
            • Extract key action
            • apapTestAction is the handler for iap action
            • NewContext returns a new context
            • newFileHeader creates a file header from a byte slice .
            • CRCCheck is used to check a CRC check .
            • LoadExeUpdate loads an update from a file
            Get all kandi verified functions for this library.

            ducky-tools Key Features

            No Key Features are available at this moment for ducky-tools.

            ducky-tools Examples and Code Snippets

            No Code Snippets are available at this moment for ducky-tools.

            Community Discussions

            No Community Discussions are available at this moment for ducky-tools.Refer to stack overflow page for discussions.

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install ducky-tools

            First, install go - https://golang.org/. At least version 1.11 for go mod support. This also uses [gousb (https://github.com/google/gousb)](https://github.com/google/gousb), which itself depends on libusb-1.0. This should be an easy dependency to satisfy on Linux and Mac. Consult the gousb page for more information. This extracts the information from an update file (.exe or .toml) and writes it out to a .toml-based description and set of binary files. This will extract the firmware blob and some other data from the .exe updater into files in the current working directory, with a description stored in One_TKL_EU_L_1.03r.exe.toml. This .toml file can be used as an input to ducky iap update (see below). The firmware blob itself will be written to One_TKL_EU_L_1.03r.exe.internal.enc.bin. Note that this data is likely to be scrambled with a 52-byte XOR key, and so won’t look like Arm/Thumb code. The keyboard expects to receive the scrambled data during the programming process, and descrambles it with a key which is only stored in the keyboard and not the updater.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/usedbytes/ducky-tools.git

          • CLI

            gh repo clone usedbytes/ducky-tools

          • sshUrl

            git@github.com:usedbytes/ducky-tools.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link