Skip to main content

Universal Radio Hacker: investigate wireless protocols like a boss

Project description

Universal Radio Hacker Blackhat Arsenal 2017

Travis (.org) AppVeyor Coverage Status PyPI version

The Universal Radio Hacker (URH) is a software for investigating unknown wireless protocols. Features include

  • hardware interfaces for common Software Defined Radios
  • easy demodulation of signals
  • assigning participants to keep overview of your data
  • customizable decodings to crack even sophisticated encodings like CC1101 data whitening
  • assign labels to reveal the logic of the protocol
  • fuzzing component to find security leaks
  • modulation support to inject the data back into the system
  • simulation environment to perform stateful attacks

To get started, download the official userguide (PDF), watch the demonstration videos (YouTube) or check out the wiki for more information and supported devices. Scroll down this page to learn how to install URH on your system.

Want to stay in touch? Slack

If you find URH useful, please consider giving this repository a :star: or even donate via PayPal. We appreciate your support!

If you use URH in your research paper, please cite this WOOT'18 paper, or directly use this BibTeX entry:

@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

Universal Radio Hacker can be installed via pip or using the package manager of your distribution (if included). Below you find more specific installation instructions for:

Windows

On Windows, URH can be installed with it's MSI 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

Via Package Manager

For the following linux distributions you can install URH using your package manager.

Distribution Install with
Arch Linux pacman -S urh
Gentoo / Pentoo emerge -av urh
Fedora 25+ dnf install urh
openSUSE zypper install urh

Generic way with pip (Ubuntu/Debian)

URH you can also be installed with pip using pip3 install urh. In case you are running Ubuntu or Debian read on for more specific instructions.

In order to use native device backends, make sure you install the -dev package for your desired SDRs, that is libairspy-dev, libhackrf-dev, librtlsdr-dev , libuhd-dev .

If your device does not have a -dev package, e.g. LimeSDR, you need to manually create a symlink to the .so, like this:

sudo ln -s /usr/lib/x86_64-linux-gnu/libLimeSuite.so.17.02.2 /usr/lib/x86_64-linux-gnu/libLimeSuite.so

before installing URH, using:

sudo apt-get update
sudo apt-get install python3-numpy python3-psutil python3-zmq python3-pyqt5 g++ libpython3-dev python3-pip cython3
sudo pip3 install urh

Docker Image

If you use docker you can also run the official URH docker image available here.

Mac OS X

  1. Install Python 3 for Mac OS X. If you experience issues with preinstalled Python, make sure you update to a recent version using the given link.
  2. (Optional) Install desired native libs e.g. brew install librtlsdr for corresponding native device support.
  3. In a terminal, type: pip3 install urh.
  4. Type urh in a terminal to get it started.

Update your installation

Updating with Pip

If you installed URH via pip you can keep it up to date with pip3 install --upgrade urh, or, if this should not work python3 -m pip install --upgrade urh.

Updating with MSI

If you experience issues after updating URH using the .msi installer on Windows, please perform a full uninstallation. That is, uninstall URH via Windows and after that remove the installation folder (something like C:\Program Files\Universal Radio Hacker). Now, install the new version using the recent .msi .

Running from source

If you like to live on bleeding edge, you can run URH from source.

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 from source you need to have python-setuptools installed. You can get it e.g. with pip install setuptools. Once the setuptools are installed use:

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

And start the application by typing urh in a terminal.

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.3.0.tar.gz (3.0 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.3.0-cp37-cp37m-win_amd64.whl (10.9 MB view details)

Uploaded CPython 3.7mWindows x86-64

urh-2.3.0-cp37-cp37m-win32.whl (9.2 MB view details)

Uploaded CPython 3.7mWindows x86

urh-2.3.0-cp36-cp36m-win_amd64.whl (10.9 MB view details)

Uploaded CPython 3.6mWindows x86-64

urh-2.3.0-cp36-cp36m-win32.whl (9.2 MB view details)

Uploaded CPython 3.6mWindows x86

urh-2.3.0-cp35-cp35m-win_amd64.whl (10.9 MB view details)

Uploaded CPython 3.5mWindows x86-64

urh-2.3.0-cp35-cp35m-win32.whl (9.2 MB view details)

Uploaded CPython 3.5mWindows x86

File details

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

File metadata

  • Download URL: urh-2.3.0.tar.gz
  • Upload date:
  • Size: 3.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.7.0

File hashes

Hashes for urh-2.3.0.tar.gz
Algorithm Hash digest
SHA256 8c5f35ee54cbdd824e003720a902e3892fb6d84c217ee47fd35aa792b04c64be
MD5 de5db7b2ab01d1525a28ef421434f9da
BLAKE2b-256 3a359e66f89aa5627e3441e0889b392805d3219112e13f547368f2f7e8766758

See more details on using hashes here.

File details

Details for the file urh-2.3.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: urh-2.3.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 10.9 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0

File hashes

Hashes for urh-2.3.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 c36c618fae83dd341367fa2dcbf952c16ce7c0ad2ace8a5d395cd96c10407205
MD5 2fb425becd34b12840892b52d0425424
BLAKE2b-256 2b021340fbab1aba2a563ad158f8a7dc9b1582be32cae566f57cdaabb489ad5e

See more details on using hashes here.

File details

Details for the file urh-2.3.0-cp37-cp37m-win32.whl.

File metadata

  • Download URL: urh-2.3.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 9.2 MB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0

File hashes

Hashes for urh-2.3.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 c3e070167a830300adc2e5a9068d3c72ba8777bede9f0f0c3ef0669a2426f963
MD5 ea313e4d303c6d1cfa03ea4b8fe4e65a
BLAKE2b-256 3b1f30f8313da28dd351d2cc5399526fbca96d52eb65cfaf0189bcf13828a7f0

See more details on using hashes here.

File details

Details for the file urh-2.3.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: urh-2.3.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 10.9 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.6

File hashes

Hashes for urh-2.3.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 3d1ecfb5d5b4ae701905f9c386cc5dfcba57709810acfc999aae557781fb4002
MD5 a13b8fe447ece51698b5dd9a0ccd3f42
BLAKE2b-256 370d4d7859c34ace36e6353c68be11522c84cfa27670876c0c02644dc495ffef

See more details on using hashes here.

File details

Details for the file urh-2.3.0-cp36-cp36m-win32.whl.

File metadata

  • Download URL: urh-2.3.0-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 9.2 MB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.6

File hashes

Hashes for urh-2.3.0-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 042dcd10bc662f7ce2099c4ecd65ddc79319fb0b358f0482bd1977522ebc323e
MD5 23b6864741589da78bc357b4c005c319
BLAKE2b-256 d6f0b810a1c43d25c6ab901bc28639690bc1642fc5a2b6e8a435c4ac0d6cbc0d

See more details on using hashes here.

File details

Details for the file urh-2.3.0-cp35-cp35m-win_amd64.whl.

File metadata

  • Download URL: urh-2.3.0-cp35-cp35m-win_amd64.whl
  • Upload date:
  • Size: 10.9 MB
  • Tags: CPython 3.5m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/28.8.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.5.4

File hashes

Hashes for urh-2.3.0-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 5d3070f2d7ee81bb23eb60a8b3b3ded41626ef48af8e0944b4255daf3c0d9162
MD5 2ebaa333164375e9710cd5ff61c988b8
BLAKE2b-256 565d67d80ce90bf24dcfc1419329bf238488ee656043004561b9fab608f479f2

See more details on using hashes here.

File details

Details for the file urh-2.3.0-cp35-cp35m-win32.whl.

File metadata

  • Download URL: urh-2.3.0-cp35-cp35m-win32.whl
  • Upload date:
  • Size: 9.2 MB
  • Tags: CPython 3.5m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/28.8.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.5.4

File hashes

Hashes for urh-2.3.0-cp35-cp35m-win32.whl
Algorithm Hash digest
SHA256 499591679b43dc0707b6b5c34b3ade77b10e03ef989af2384a5b5bb7b9c59995
MD5 f3cf9177b13189fb3f5d8e71a8bd4b21
BLAKE2b-256 0f0e065ea6fc557e3860fc323f0c703b8d9788d64a64185562c179d2ef88b86a

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