Universal Radio Hacker
======================

|Build Status| |Code Climate| |PyPI version| |Dependency Status|

The Universal Radio Hacker 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

Check out the `wiki <https://github.com/jopohl/urh/wiki>`__ for more
information.

Like to see things in action? Watch URH on YouTube!

|Youtube Image|

Installation
------------

Requirements
~~~~~~~~~~~~

-  Python 3.4+
-  numpy / psutil
-  PyQt5
-  C++ Compiler

Arch Linux
~~~~~~~~~~

.. code:: bash

    yaourt -S urh

Ubuntu/Debian
~~~~~~~~~~~~~

.. code:: bash

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

Windows
~~~~~~~

1. Install `Visual C++ Build
   Tools <http://landinghub.visualstudio.com/visual-cpp-build-tools>`__.
2. Install `Python 3 for
   Windows <https://www.python.org/downloads/windows/>`__.
3. (Optional) Open a terminal (**cmd**) and type: ``pip install numpy``
   - *This speeds the installation up a bit.*
4. In a terminal, type: ``pip install urh``.
5. Type ``urh`` in a terminal or search for ``urh`` in search bar.

Mac OS X
~~~~~~~~

1. Install `Python 3 for Mac OS
   X <https://www.python.org/downloads/mac-osx/>`__.
2. In a terminal, type: ``pip3 install urh``.
3. Type ``urh`` in a terminal to get it started.

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:

.. code:: bash

    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:

.. code:: bash

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

And start the application by typing ``urh`` in a terminal.

Screenshots
-----------

Get the data out of raw signals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. figure:: http://i.imgur.com/Wy17Zv3.png
   :alt: Interpretation phase

   Interpretation phase

Keep an overview even on complex protocols
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. figure:: http://i.imgur.com/ubAL3pE.png
   :alt: Analysis phase

   Analysis phase

Record and send signals
~~~~~~~~~~~~~~~~~~~~~~~

.. figure:: http://i.imgur.com/BfQpg23.png
   :alt: Record

   Record

.. |Build Status| image:: https://travis-ci.org/jopohl/urh.svg?branch=master
   :target: https://travis-ci.org/jopohl/urh
.. |Code Climate| image:: https://codeclimate.com/github/jopohl/urh/badges/gpa.svg
   :target: https://codeclimate.com/github/jopohl/urh
.. |PyPI version| image:: https://badge.fury.io/py/urh.svg
   :target: https://pypi.python.org/pypi/urh
.. |Dependency Status| image:: https://gemnasium.com/badges/github.com/jopohl/urh.svg
   :target: https://gemnasium.com/github.com/jopohl/urh
.. |Youtube Image| image:: http://i.imgur.com/5HGzP2T.png
   :target: https://www.youtube.com/watch?v=kuubkTDAxwA
