# Universal Radio Hacker | Investigate Wireless Protocols Like A Boss ⭐

**URL:** <https://onehack.st/t/universal-radio-hacker-investigate-wireless-protocols-like-a-boss/282673>\
**Category:** Tools & Scripts\
**Tags:** tools, programming, hacking, freebies\
**Created:** [May 11, 2024, 8:01pm UTC](https://onehack.st/t/universal-radio-hacker-investigate-wireless-protocols-like-a-boss/282673 "2024-05-11T20:01:39Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Aina](https://onehack.st/user_avatar/onehack.st/aina/32/167469_2.png) [@Aina](https://onehack.st/u/Aina)\
**Post date:** [May 11, 2024, 8:01pm UTC](https://onehack.st/t/universal-radio-hacker-investigate-wireless-protocols-like-a-boss/282673/1 "2024-05-11T20:01:40Z")

</div>

![image](https://onehack.st/uploads/default/original/3X/9/4/94181b549abbe88ba173a7baebf122334b608f96.png)

Universal Radio Hacker | Investigate Wireless Protocols Like A Boss ⭐

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](https://dl.acm.org/doi/10.1145/3375894.3375896) 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](https://www.usenix.org/conference/woot19/presentation/pohl). Finally, URH entails a **fuzzing component** aimed at stateless protocols and a **simulation environment** for stateful attacks.

### Getting started

In order to get started

- view the [installation instructions](https://github.com/jopohl/urh#Installation) on this page,
- download the [official userguide (PDF)](https://github.com/jopohl/urh/releases/download/v2.0.0/userguide.pdf),
- watch the [demonstration videos (YouTube)](https://www.youtube.com/watch?v=kuubkTDAxwA&index=1&list=PLlKjreY6G-1EKKBs9sucMdk8PwzcFuIPB),
- check out the [wiki](https://github.com/jopohl/urh/wiki) for more information such as supported devices or
- read some [articles about URH](https://github.com/jopohl/urh#Articles) for inspiration.

If you like URH, please ⭐ this repository and [join our Slack channel](https://join.slack.com/t/stralsundsecurity/shared_invite/enQtMjEwOTIxNzMzODc3LTk3NmE4MGVjYjEyYTMzYTdmN2RlNzUzYzg0NTNjNTQ2ODBkMzI3MDZlOWY3MjE4YjBkNTM4ZjJlNTJlZmJhNDg). We appreciate your support!

### Citing URH

We encourage researchers working with URH to cite [this](https://www.usenix.org/conference/woot18/presentation/pohl) WOOT’18 paper or directly use the following BibTeX entry.

**URH BibTeX entry for your research paper**

## 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](https://github.com/jopohl/urh/releases). 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](https://support.microsoft.com/en-us/help/2999226/update-for-universal-c-runtime-in-windows).

### Linux

#### Installation with pipx

URH is available on [PyPi](https://pypi.org/project/urh/) so you can install it, for example, with [pipx](https://pypa.github.io/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](https://github.com/jopohl/urh/wiki/SDR-udev-rules).

#### 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](https://hub.docker.com/r/jopohl/urh/). It has all native backends included and ready to operate.

### macOS

#### Using DMG

It is recommended to use **at least macOS 12** when using the DMG available [here](https://github.com/jopohl/urh/releases).

#### With brew

URH is available as a [homebrew formula](https://formulae.brew.sh/formula/urh) so you can install it with

```auto
brew install urh

```

### Running from source (OS-agnostic)

#### Without installation

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

```auto
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:

```auto
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

- [Hacking Burger Pagers](https://www.rtl-sdr.com/using-a-hackrf-to-reverse-engineer-and-control-restaurant-pagers/)
- [Reverse-engineer and Clone a Remote Control](https://www.rtl-sdr.com/video-tutorial-using-universal-radio-hacker-an-rtl-sdr-and-a-microcontroller-to-clone-433-mhz-remotes/)
- [Reverse-engineering Weather Station RF Signals](https://www.rtl-sdr.com/tag/universal-radio-hacker/)
- [Reverse-engineering Wireless Blinds](https://www.rtl-sdr.com/reverse-engineering-wireless-blinds-with-an-rtl-sdr-and-controlling-them-with-amazon-alexa/)
- [Attacking Logitech Wireless Presenters (German Article)](https://www.heise.de/security/meldung/Wireless-Presenter-von-Logitech-und-Inateck-anfaellig-fuer-Angriffe-ueber-Funk-4439795.html)
- [Attacking Wireless Keyboards](https://threatpost.com/fujitsu-wireless-keyboard-unpatched-flaws/149477/)
- [Reverse-engineering a 433MHz Remote-controlled Power Socket for use with Arduino](http://www.ignorantofthings.com/2018/11/reverse-engineering-433mhz-remote.html)

### General presentations and tutorials on URH

- [Hackaday Article](https://hackaday.com/2017/02/23/universal-radio-hacker/)
- [RTL-SDR.com Article](https://www.rtl-sdr.com/reverse-engineering-signals-universal-radio-hacker-software/)
- [Short Tutorial on URH with LimeSDR Mini](https://www.crowdsupply.com/lime-micro/limesdr-mini/updates/investigating-wireless-protocols-with-universal-radio-hacker)
- [Brute-forcing a RF Device: a Step-by-step Guide](https://pandwarf.com/news/brute-forcing-a-new-device-a-step-by-step-guide/)
- [Hacking wireless sockets like a NOOB](https://olof-astrand.medium.com/hacking-wireless-sockets-like-a-noob-b57d4b4812d5)

## External decodings

See [wiki](https://github.com/jopohl/urh/wiki/External-decodings) for a list of external decodings provided by our community! Thanks for that!

## Screenshots

### Get the data out of raw signals

[![Interpretation phase](https://camo.githubusercontent.com/ce0ae1ebc352756c0494da72b572552a89eabaf148b4392b222fcb27157f1029/687474703a2f2f692e696d6775722e636f6d2f577931375a76332e706e67)](https://camo.githubusercontent.com/ce0ae1ebc352756c0494da72b572552a89eabaf148b4392b222fcb27157f1029/687474703a2f2f692e696d6775722e636f6d2f577931375a76332e706e67)

### Keep an overview even on complex protocols

[![Analysis phase](https://camo.githubusercontent.com/05f81b5c6398d09f12d4344743ce9d3a6434f32ceea436e261a2505061bc0991/687474703a2f2f692e696d6775722e636f6d2f7562414c3370452e706e67)](https://camo.githubusercontent.com/05f81b5c6398d09f12d4344743ce9d3a6434f32ceea436e261a2505061bc0991/687474703a2f2f692e696d6775722e636f6d2f7562414c3370452e706e67)

### Record and send signals

[![Record](https://camo.githubusercontent.com/44414b650701786c256d4b1b17c9690d5d033bb5b7703fed72bf6ff91f6cb6e3/687474703a2f2f692e696d6775722e636f6d2f426651706732332e706e67)](https://camo.githubusercontent.com/44414b650701786c256d4b1b17c9690d5d033bb5b7703fed72bf6ff91f6cb6e3/687474703a2f2f692e696d6775722e636f6d2f426651706732332e706e67)

[GitHub Link](https://github.com/jopohl/urh)

## ENJOY & HAPPY LEARNING! ❤
