All Projects → ondrejbudai → Hidviz

ondrejbudai / Hidviz

Licence: gpl-3.0
A tool for in-depth analysis of USB HID devices communication

Projects that are alternatives of or similar to Hidviz

Qtusb
A cross-platform USB Module for Qt.
Stars: ✭ 245 (-51.49%)
Mutual labels:  usb, libusb, qt, qt5
Device.net
A C# cross platform connected device framework
Stars: ✭ 347 (-31.29%)
Mutual labels:  usb, hid, libusb
Aspia
Remote desktop and file transfer tool.
Stars: ✭ 784 (+55.25%)
Mutual labels:  protobuf, qt, qt5
Taoquick
a cool QtQuick/qml component library and demo(一套酷炫的QtQuick/Qml基础库和示例)
Stars: ✭ 481 (-4.75%)
Mutual labels:  qt, qt5
Qxlsx
Excel file(*.xlsx) reader/writer library using Qt 5 or 6. Descendant of QtXlsx.
Stars: ✭ 340 (-32.67%)
Mutual labels:  qt, qt5
Node Elgato Stream Deck
A Node.js library for interfacing with the Elgato Stream Deck.
Stars: ✭ 359 (-28.91%)
Mutual labels:  usb, hid
Teenyusb
Lightweight USB device and host stack for STM32 and other MCUs.
Stars: ✭ 287 (-43.17%)
Mutual labels:  usb, hid
Qhttp
a light-weight and asynchronous HTTP library (both server & client) in Qt5 and c++14
Stars: ✭ 394 (-21.98%)
Mutual labels:  qt, qt5
Heimer
Heimer is a simple cross-platform mind map, diagram, and note-taking tool written in Qt.
Stars: ✭ 380 (-24.75%)
Mutual labels:  qt, qt5
Hidapi
A Simple library for communicating with USB and Bluetooth HID devices on Linux, Mac and Windows.
Stars: ✭ 465 (-7.92%)
Mutual labels:  usb, hid
Qview
Practical and minimal image viewer
Stars: ✭ 460 (-8.91%)
Mutual labels:  qt, qt5
Lan Share
Cross platform LAN File transfer application built with Qt C++ framework
Stars: ✭ 317 (-37.23%)
Mutual labels:  qt, qt5
Qxmpp
Cross-platform C++ XMPP client and server library
Stars: ✭ 300 (-40.59%)
Mutual labels:  qt, qt5
Libusb
A cross-platform library to access USB devices
Stars: ✭ 3,482 (+589.5%)
Mutual labels:  usb, libusb
Qt Advanced Docking System
Advanced Docking System for Qt
Stars: ✭ 422 (-16.44%)
Mutual labels:  qt, qt5
Qt.go
Qt binding for Go (Golang) aims get Go's compile speed again.
Stars: ✭ 487 (-3.56%)
Mutual labels:  qt, qt5
Headsetcontrol
Sidetone and Battery status for Logitech G930, G533, G633, G933 SteelSeries Arctis 7/PRO 2019 and Corsair VOID (Pro) in Linux and MacOSX
Stars: ✭ 392 (-22.38%)
Mutual labels:  usb, hid
Singleapplication
Replacement of QtSingleApplication for Qt5 with support for instance communication.
Stars: ✭ 443 (-12.28%)
Mutual labels:  qt, qt5
Project lemonlime
为了 OI 比赛而生的基于 Lemon + LemonPlus 的轻量评测系统 | 三大桌面系统支持
Stars: ✭ 255 (-49.5%)
Mutual labels:  qt, qt5
Raspberry Pi Cross Compilers
Latest GCC Cross Compiler & Native (ARM & ARM64) CI generated precompiled standalone toolchains for all Raspberry Pis. 🍇
Stars: ✭ 261 (-48.32%)
Mutual labels:  qt, qt5

Hidviz

Build Status Build status

Hidviz is a GUI application for in-depth analysis of USB HID class devices. The 2 main usecases of this application are reverse-engineering existing devices and developing new USB HID devices.

USB HID class consists of many possible devices, e.g. mice, keyboards, joysticks and gamepads. But that's not all! There are more exotic HID devices, e.g. weather stations, medical equipment (thermometers, blood pressure monitors) or even simulation devices (think of flight sticks!).

Hidviz screenshot

1) Building

Hidviz can be built on various platforms where following prerequisities can be obtained. Currently only Fedora, Ubuntu and MSYS2/Windows are supported and build guide is available for them.

1.1) Prerequisities

  • C++ compiler with C++14 support
  • libusb 1.0 (can be called libusbx in you distro)
  • protobuf (v2 is enough)
  • Qt5 base
  • CMake (>=3.2)

1.1.1) Installing prerequisities on Fedora

sudo dnf install gcc-c++ gcc qt5-qtbase-devel protobuf-devel libusbx-devel

1.1.2) Installing prerequisities on Ubuntu

sudo apt-get install build-essential qtbase5-dev libprotobuf-dev protobuf-compiler libusb-1.0-0-dev

Note that Ubuntu 14.04 LTS has old gcc unable to build hidviz, you need to install at least gcc 5.

1.1.3) Installing prerequisities on MSYS2/Windows

Please note hidviz is primarily developed on Linux and we currently don't have Windows CI therefore Windows build can be broken at any time. If you find so, please create an issue.

If you do not have MSYS2 installed, firstly follow this guide to install MSYS2.

pacman -S git mingw-w64-x86_64-cmake mingw-w64-x86_64-qt5 mingw-w64-x86_64-libusb \
          mingw-w64-x86_64-protobuf mingw-w64-x86_64-protobuf-c mingw-w64-x86_64-toolchain \
          make

1.2) Clone and prepare out of source build

Firstly you need to obtain sources from git and prepare directory for out of source build:

git clone --recursive https://github.com/ondrejbudai/hidviz.git
mkdir hidviz/build
cd hidviz/build

Please note you have to do recursive clone.

1.3) Configuring

1.2.1) Configuring on Fedora/Ubuntu (Linux)

cmake ..

1.2.2) Configuring on MSYS2/Windows

cmake -G "Unix Makefiles" ..

1.4) Build

make -j$(nproc)

If you are doing MSYS2 build, check before build you are using MinGW32/64 shell, otherwise the build process won't work. More information can be found here.

2) Running

To run this project you need build/hidviz as you current directory for hidviz to work properly!

After successful build you need to run

cd hidviz
./hidviz

2.1) Running on Windows

Unfortunately you cannot use hidviz on Windows straight out of the box. Firstly you need to install custom drivers to devices you want to analyze.

I recommend you using following approach: Download Zadig, run it and install libusbK to device you want to analyze. You can find more information about the need for custom driver on Windows on libusb wiki.

3) Installing (Linux only)

sudo make install

Alternatively, you can install hidviz from Arch Linux's AUR repository:

pacaur -S hidviz

4) License

Hidviz is license under GPLv3+. For more information see LICENSE file.

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].