Skip to main content

Universal Radio Hacker: investigate wireless protocols like a boss

Project description

URH image

CI Code style: black PyPI version Packaging status Blackhat Arsenal 2017 Blackhat Arsenal 2018

The Universal Radio Hacker (URH) is a complete suite for wireless protocol investigation with native support for many common Software Defined Radios. URH allows easy demodulation of signals combined with an automatic detection of modulation parameters making it a breeze to identify the bits and bytes that fly over the air. As data often gets encoded before transmission, URH offers customizable decodings to crack even sophisticated encodings like CC1101 data whitening. When it comes to protocol reverse-engineering, URH is helpful in two ways. You can either manually assign protocol fields and message types or let URH automatically infer protocol fields with a rule-based intelligence. Finally, URH entails a fuzzing component aimed at stateless protocols and a simulation environment for stateful attacks.

Getting started

In order to get started

If you like URH, please :star: this repository and join our Slack channel. We appreciate your support!

Citing URH

We encourage researchers working with URH to cite this WOOT'18 paper or directly use the following BibTeX entry.

URH BibTeX entry for your research paper
@inproceedings {220562,
author = {Johannes Pohl and Andreas Noack},
title = {Universal Radio Hacker: A Suite for Analyzing and Attacking Stateful Wireless Protocols},
booktitle = {12th {USENIX} Workshop on Offensive Technologies ({WOOT} 18)},
year = {2018},
address = {Baltimore, MD},
url = {https://www.usenix.org/conference/woot18/presentation/pohl},
publisher = {{USENIX} Association},
}

Installation

URH runs on Windows, Linux and macOS. See below for OS specific installation instructions.

Windows

On Windows, URH can be installed with its Installer. No further dependencies are required.

If you get an error about missing api-ms-win-crt-runtime-l1-1-0.dll, run Windows Update or directly install KB2999226.

Linux

Installation with pipx

URH is available on PyPi so you can install it, for example, with pipx:

pipx install urh

This is the recommended way to install URH on Linux because it comes with all native extensions precompiled.

In order to access your SDR as non-root user, install the according udev rules. You can find them in the wiki.

Install via Package Manager

URH is included in the repositories of many linux distributions such as Arch Linux, Gentoo, Fedora, openSUSE or NixOS. There is also a package for FreeBSD. If available, simply use your package manager to install URH.

Note: For native support, you must install the according -dev package(s) of your SDR(s) such as hackrf-dev before installing URH.

Docker Images

The official URH docker image is available here. It has all native backends included and ready to operate.

macOS

Using DMG

It is recommended to use at least macOS 13 when using the DMG available here.

With brew

URH is available as a homebrew formula so you can install it with

brew install urh

Running from source (OS-agnostic)

Without installation

To execute the Universal Radio Hacker without installation, just run:

git clone https://github.com/jopohl/urh/
cd urh/src/urh
./main.py

Note, before first usage the C++ extensions will be built.

Installing from source

To install URH from source you need to have python-setuptools installed. You can get them with python3 -m pip install setuptools. Once the setuptools are installed execute:

git clone https://github.com/jopohl/urh/
cd urh
python setup.py install

And start the application by typing urh in a terminal.

Articles

Hacking stuff with URH

General presentations and tutorials on URH

External decodings

See wiki for a list of external decodings provided by our community! Thanks for that!

Screenshots

Get the data out of raw signals

Interpretation phase

Keep an overview even on complex protocols

Analysis phase

Record and send signals

Record

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

urh-2.10.0.tar.gz (3.2 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

urh-2.10.0-cp314-cp314-manylinux_2_34_x86_64.whl (20.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

urh-2.10.0-cp313-cp313-win_amd64.whl (10.6 MB view details)

Uploaded CPython 3.13Windows x86-64

urh-2.10.0-cp313-cp313-manylinux_2_34_x86_64.whl (21.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

urh-2.10.0-cp313-cp313-macosx_10_13_universal2.whl (4.4 MB view details)

Uploaded CPython 3.13macOS 10.13+ universal2 (ARM64, x86-64)

urh-2.10.0-cp312-cp312-manylinux_2_34_x86_64.whl (21.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

urh-2.10.0-cp311-cp311-manylinux_2_34_x86_64.whl (21.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

urh-2.10.0-cp310-cp310-manylinux_2_34_x86_64.whl (20.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

File details

Details for the file urh-2.10.0.tar.gz.

File metadata

  • Download URL: urh-2.10.0.tar.gz
  • Upload date:
  • Size: 3.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for urh-2.10.0.tar.gz
Algorithm Hash digest
SHA256 c9e2932bc0c7b155cfd9483c058b78d08b51c49cd041ab75a0f4a70fc6cce757
MD5 3aab8ecc104220c1fd2ca26b71f12fe7
BLAKE2b-256 dd75e3ce1cd756dc47ab42166d1ecfb9a9f5e34e2fcf78aeed0b9392313dc057

See more details on using hashes here.

File details

Details for the file urh-2.10.0-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for urh-2.10.0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a6891ac013bce189fb978c008c0b7f6c8ec6f25872569c1e0fbf686ac7137d9e
MD5 b96fe62a48db5427dda7c88dd722320d
BLAKE2b-256 729b029134dceb70e5c5022ffdfde564db8ae0b9586b897e673554440af81375

See more details on using hashes here.

File details

Details for the file urh-2.10.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: urh-2.10.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 10.6 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for urh-2.10.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 0743d6be3f5928cc2054da91b3f515d64550c4ea7899d76417be312623f4e2b8
MD5 4162b3fc1f00376e34f549f93093316d
BLAKE2b-256 2dbbd5bd707cabb512199f2c3b63e9c5a171361476d24c6b9ad49a864e698765

See more details on using hashes here.

File details

Details for the file urh-2.10.0-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for urh-2.10.0-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 f6998f0900f296aa3ed7a21fc182cda45f6291f5d2b58c90139e31eb509bd60a
MD5 9d23a5cb34048980f9a64b84e9d47bd2
BLAKE2b-256 087df0ea5495c4efde92e6e479d0075f973c1bd62cb184970d07928616f2e34d

See more details on using hashes here.

File details

Details for the file urh-2.10.0-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for urh-2.10.0-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 78580a08d755e250c4e4f304cab83bfce26b0b13a74d07958a373ab53966f331
MD5 228b71ffb54445ddcf82e49165b5cb06
BLAKE2b-256 5826d52172b91778ce3d7d6557ec37b853ad8138a2bb3ece5a7b4bc693502461

See more details on using hashes here.

File details

Details for the file urh-2.10.0-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for urh-2.10.0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 abb24af72a94b6a2aca8d1a39b68cdcba1a0407eb176c2534035b3e28bf4828e
MD5 3257aee9e275931aa7add984e2fe64b6
BLAKE2b-256 c13f2840023703d668534be77adfb9bd3018eb359eee63a9ed2b9c5199ef5993

See more details on using hashes here.

File details

Details for the file urh-2.10.0-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for urh-2.10.0-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 bea531da80a75c518a85ef0968f97f0ee3f1c23f04e223d19bc01e02421c4a35
MD5 44fd8e70f9588f2347a784abb2689ed9
BLAKE2b-256 d8e8a43d1a3ae1eeaf53ef88308592d0116577f7cf3ed11928659d8a83937ef8

See more details on using hashes here.

File details

Details for the file urh-2.10.0-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for urh-2.10.0-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 387f682fda80b3c9086fc0a22960cd4219bd517455fe4cfb4365b65674575df6
MD5 8f292bc9b9ff662839076f5876fe4555
BLAKE2b-256 50d5e7201ddf10a18027fcb42d1b0551559b8d340a6cd725bdaedba7d8372580

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page