Skip to main content

Universal Radio Hacker: investigate wireless protocols like a boss

Project description

URH image

CI 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 10.14 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.9.5.tar.gz (3.0 MB view details)

Uploaded Source

Built Distributions

urh-2.9.5-cp312-cp312-manylinux_2_28_x86_64.whl (20.4 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ x86-64

urh-2.9.5-cp311-cp311-manylinux_2_28_x86_64.whl (20.7 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ x86-64

urh-2.9.5-cp311-cp311-macosx_10_9_universal2.whl (4.3 MB view details)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

urh-2.9.5-cp310-cp310-manylinux_2_28_x86_64.whl (20.4 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ x86-64

urh-2.9.5-cp39-cp39-manylinux_2_28_x86_64.whl (20.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ x86-64

urh-2.9.5-cp38-cp38-win_amd64.whl (10.9 MB view details)

Uploaded CPython 3.8 Windows x86-64

urh-2.9.5-cp38-cp38-win32.whl (10.0 MB view details)

Uploaded CPython 3.8 Windows x86

urh-2.9.5-cp38-cp38-manylinux_2_28_x86_64.whl (20.5 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ x86-64

File details

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

File metadata

  • Download URL: urh-2.9.5.tar.gz
  • Upload date:
  • Size: 3.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for urh-2.9.5.tar.gz
Algorithm Hash digest
SHA256 eb621df420e0f15cf7fe98bceac6beb453c909e88c3fad05066f034ea578f406
MD5 afe09534ddce67107f1639cdffd466ed
BLAKE2b-256 494bb1a4236c6e3dbcf215a3b1ded8e7ff1af6ca02155c230c40e9b1db0a5376

See more details on using hashes here.

File details

Details for the file urh-2.9.5-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for urh-2.9.5-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 52c9b1473793f9b0abea12fb8baf7dadfc606c6b5038f5d6d6c8eba20d3d512b
MD5 2242c51711845614ea1c8559b81b7507
BLAKE2b-256 e7e98b0e4da5c60663bc65f907daad193f1f02f6f1cc52949a1c40cbfddc15ab

See more details on using hashes here.

File details

Details for the file urh-2.9.5-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for urh-2.9.5-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5dda6a586cd2d06bb0811e69ef0fd91e74e74c38b7d4860eeebad307a2638b81
MD5 c6da2efc4b3f30c4da70d5abd55bd24f
BLAKE2b-256 b8bbc61c52e90695fa57af86c68be8879732016a9b996063f25241211342b90f

See more details on using hashes here.

File details

Details for the file urh-2.9.5-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for urh-2.9.5-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 d2d623259bf196f3f01a84f3a83529ed22cebc43e0f513f72aeb8548d2485749
MD5 49126c48324fc41649dda252e39c36ea
BLAKE2b-256 8a68a6432ac82e1ef1bab79c02197fe98c487194f0d788f1ff7a0b3470a403ba

See more details on using hashes here.

File details

Details for the file urh-2.9.5-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for urh-2.9.5-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6b0ca5652b89e441069d037f9933352bb495ec71229793a915e05f46c922fd0e
MD5 cc7f39c663874db9e9b5a7f9734aa4fb
BLAKE2b-256 b07f5ee8b7d8d556c2a0c837f9af0a027ba6a756be0676a02eddf7539ad94083

See more details on using hashes here.

File details

Details for the file urh-2.9.5-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for urh-2.9.5-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 44c3f3a06920c68b2b0423b7359e5f2565e3f1d1592c443a15895b3d66a5239b
MD5 9ce0f4ed772d0bc0b10c599e1027e1bc
BLAKE2b-256 2639b2337f829dd3c3a828ade43350028083ebb0464c29c6058dbe644e8b01d1

See more details on using hashes here.

File details

Details for the file urh-2.9.5-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: urh-2.9.5-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 10.9 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for urh-2.9.5-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 894f940568db7042506a0184cf032c3f0f7ac4f1046cebefe44ae100a0e08bc8
MD5 4f81749650f8c93b06c4255ea82e4dbc
BLAKE2b-256 4f592cd1c998b254363ac2b7c04628dd945a60eb632075d56f36547cd5295333

See more details on using hashes here.

File details

Details for the file urh-2.9.5-cp38-cp38-win32.whl.

File metadata

  • Download URL: urh-2.9.5-cp38-cp38-win32.whl
  • Upload date:
  • Size: 10.0 MB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for urh-2.9.5-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 5dbe1dec467c832775862b869b205efe7b8f1cd3a12e7799572c06f3baec63a1
MD5 34334252b07905d98759bf29562678e3
BLAKE2b-256 757cf2c5e26ebf5522708b00a2ae20f36fc45df239f8261f2636b26cedd56f55

See more details on using hashes here.

File details

Details for the file urh-2.9.5-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for urh-2.9.5-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bd961a853fad0f5c5786fdb355d83cc4ff00752942b9ea95028382a51ce22fae
MD5 84e63731df1fba19363b965dcacb1880
BLAKE2b-256 7ce2b1fde66dd2ceac4c99bf1e60a56192fc1630a89aeb5bf2b02086df82d2ff

See more details on using hashes here.

Supported by

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