[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-70764":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":24,"defaultBranch":25,"hasWiki":23,"hasPages":24,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":42,"readmeContent":43,"aiSummary":44,"trendingCount":16,"starSnapshotCount":16,"syncStatus":45,"lastSyncTime":46,"discoverSource":47},70764,"urh","jopohl\u002Furh","jopohl","Universal Radio Hacker: Investigate Wireless Protocols Like A Boss","",null,"Python",12452,1008,435,54,0,6,14,53,18,44.01,"GNU General Public License v3.0",true,false,"master",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"airspy","bladerf","hacking","hackrf","iot","limesdr","python","qt","radio","rtl-sdr","sdr","sdrplay","security","usrp","wireless","2026-06-12 02:02:43","![URH image](https:\u002F\u002Fraw.githubusercontent.com\u002Fjopohl\u002Furh\u002Fmaster\u002Fdata\u002Ficons\u002Fbanner.png)\n\n[![CI](https:\u002F\u002Fgithub.com\u002Fjopohl\u002Furh\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fjopohl\u002Furh\u002Factions\u002Fworkflows\u002Fci.yml)\n[![Code style: black](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcode%20style-black-black)](https:\u002F\u002Fgithub.com\u002Fpsf\u002Fblack)\n[![PyPI version](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Furh.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Furh)\n[![Packaging status](https:\u002F\u002Frepology.org\u002Fbadge\u002Ftiny-repos\u002Furh.svg)](https:\u002F\u002Frepology.org\u002Fproject\u002Furh\u002Fversions)\n [![Blackhat Arsenal 2017](https:\u002F\u002Frawgit.com\u002Ftoolswatch\u002Fbadges\u002Fmaster\u002Farsenal\u002Fusa\u002F2017.svg)](http:\u002F\u002Fwww.toolswatch.org\u002F2017\u002F06\u002Fthe-black-hat-arsenal-usa-2017-phenomenal-line-up-announced\u002F)\n [![Blackhat Arsenal 2018](https:\u002F\u002Frawgit.com\u002Ftoolswatch\u002Fbadges\u002Fmaster\u002Farsenal\u002Feurope\u002F2018.svg)](http:\u002F\u002Fwww.toolswatch.org\u002F2018\u002F09\u002Fblack-hat-arsenal-europe-2018-lineup-announced\u002F)\n\n\nThe Universal Radio Hacker (URH) is a complete suite for wireless protocol investigation with native support for [many](https:\u002F\u002Fgithub.com\u002Fjopohl\u002Furh\u002Fwiki\u002FSupported-devices) common __Software Defined Radios__.\nURH allows __easy demodulation__ of signals combined with an [automatic](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002F10.1145\u002F3375894.3375896) detection of modulation parameters making it a breeze to identify the bits and bytes that fly over the air. \nAs data often gets _encoded_ before transmission, URH offers __customizable decodings__ to crack even sophisticated encodings like CC1101 data whitening.\nWhen 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:\u002F\u002Fwww.usenix.org\u002Fconference\u002Fwoot19\u002Fpresentation\u002Fpohl).\nFinally, URH entails a __fuzzing component__ aimed at stateless protocols and a __simulation environment__ for stateful attacks.\n\n### Getting started\nIn order to get started\n - view the [installation instructions](#Installation) on this page,\n - download the [official userguide (PDF)](https:\u002F\u002Fgithub.com\u002Fjopohl\u002Furh\u002Freleases\u002Fdownload\u002Fv2.0.0\u002Fuserguide.pdf), \n - watch the [demonstration videos (YouTube)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=kuubkTDAxwA&index=1&list=PLlKjreY6G-1EKKBs9sucMdk8PwzcFuIPB),\n - check out the [wiki](https:\u002F\u002Fgithub.com\u002Fjopohl\u002Furh\u002Fwiki) for more information such as supported devices or\n - read some [articles about URH](#Articles) for inspiration.\n\nIf you like URH, please :star: this repository and [join our Slack channel](https:\u002F\u002Fjoin.slack.com\u002Ft\u002Fstralsundsecurity\u002Fshared_invite\u002FenQtMjEwOTIxNzMzODc3LTk3NmE4MGVjYjEyYTMzYTdmN2RlNzUzYzg0NTNjNTQ2ODBkMzI3MDZlOWY3MjE4YjBkNTM4ZjJlNTJlZmJhNDg). We appreciate your support!\n\n### Citing URH\nWe encourage researchers working with URH to cite [this](https:\u002F\u002Fwww.usenix.org\u002Fconference\u002Fwoot18\u002Fpresentation\u002Fpohl) WOOT'18 paper or directly use the following BibTeX entry.\n \n \u003Cdetails>\n \u003Csummary> \u003Cb>URH BibTeX entry for your research paper\u003C\u002Fb> \u003C\u002Fsummary>\n \n  ```bibtex\n@inproceedings {220562,\nauthor = {Johannes Pohl and Andreas Noack},\ntitle = {Universal Radio Hacker: A Suite for Analyzing and Attacking Stateful Wireless Protocols},\nbooktitle = {12th {USENIX} Workshop on Offensive Technologies ({WOOT} 18)},\nyear = {2018},\naddress = {Baltimore, MD},\nurl = {https:\u002F\u002Fwww.usenix.org\u002Fconference\u002Fwoot18\u002Fpresentation\u002Fpohl},\npublisher = {{USENIX} Association},\n}\n```\n\n \u003C\u002Fdetails> \n\n## Installation\nURH runs on Windows, Linux and macOS. See below for OS specific installation instructions.\n\n### Windows\n On Windows, URH can be installed with its [Installer](https:\u002F\u002Fgithub.com\u002Fjopohl\u002Furh\u002Freleases). No further dependencies are required.\n \nIf you get an error about missing ```api-ms-win-crt-runtime-l1-1-0.dll```, run Windows Update or directly install [KB2999226](https:\u002F\u002Fsupport.microsoft.com\u002Fen-us\u002Fhelp\u002F2999226\u002Fupdate-for-universal-c-runtime-in-windows).\n\n### Linux\n#### Installation with pipx\nURH is available on [PyPi](https:\u002F\u002Fpypi.org\u002Fproject\u002Furh\u002F) so you can install it, for example, with [pipx](https:\u002F\u002Fpypa.github.io\u002Fpipx\u002F): \n```bash \npipx install urh\n``` \nThis is the recommended way to install URH on Linux because it comes with __all native extensions__ precompiled.\n\nIn order to access your SDR as non-root user, install the according __udev rules__. You can find them [in the wiki](https:\u002F\u002Fgithub.com\u002Fjopohl\u002Furh\u002Fwiki\u002FSDR-udev-rules).\n\n#### Install via Package Manager\nURH 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.\n\n__Note__: For native support, you must install the according ```-dev``` package(s) of your SDR(s) such as ```hackrf-dev``` __before__ installing URH.\n\n#### Docker Images\nThe official URH docker image is available [here](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fjopohl\u002Furh\u002F). It has all native backends included and ready to operate.\n\n### macOS\n#### Using DMG\n\nIt is recommended to use __at least macOS 13__ when using the DMG available [here](https:\u002F\u002Fgithub.com\u002Fjopohl\u002Furh\u002Freleases).\n\n#### With brew\nURH is available as a [homebrew formula](https:\u002F\u002Fformulae.brew.sh\u002Fformula\u002Furh) so you can install it with\n```commandline\nbrew install urh\n```\n\n### Running from source (OS-agnostic)\n#### Without installation\n\nTo execute the Universal Radio Hacker without installation, just run:\n```commandline\ngit clone https:\u002F\u002Fgithub.com\u002Fjopohl\u002Furh\u002F\ncd urh\u002Fsrc\u002Furh\nPYTHONPATH=.. .\u002Fmain.py\n```\n\nNote, before first usage the C++ extensions will be built.\n\n#### Installing from source\n\nTo install URH from source you need to have ```python-setuptools``` installed. You can get them with ```python3 -m pip install setuptools```. \nOnce the setuptools are installed execute: \n```commandline\ngit clone https:\u002F\u002Fgithub.com\u002Fjopohl\u002Furh\u002F\ncd urh\npython setup.py install\n```\n\nAnd start the application by typing ```urh``` in a terminal.\n\n\n## Articles\n### Hacking stuff with URH\n* [Hacking Burger Pagers](https:\u002F\u002Fwww.rtl-sdr.com\u002Fusing-a-hackrf-to-reverse-engineer-and-control-restaurant-pagers\u002F)\n* [Reverse-engineer and Clone a Remote Control](https:\u002F\u002Fwww.rtl-sdr.com\u002Fvideo-tutorial-using-universal-radio-hacker-an-rtl-sdr-and-a-microcontroller-to-clone-433-mhz-remotes\u002F)\n* [Reverse-engineering Weather Station RF Signals](https:\u002F\u002Fwww.rtl-sdr.com\u002Ftag\u002Funiversal-radio-hacker\u002F)\n* [Reverse-engineering Wireless Blinds](https:\u002F\u002Fwww.rtl-sdr.com\u002Freverse-engineering-wireless-blinds-with-an-rtl-sdr-and-controlling-them-with-amazon-alexa\u002F)\n* [Attacking Logitech Wireless Presenters (German Article)](https:\u002F\u002Fwww.heise.de\u002Fsecurity\u002Fmeldung\u002FWireless-Presenter-von-Logitech-und-Inateck-anfaellig-fuer-Angriffe-ueber-Funk-4439795.html)\n* [Attacking Wireless Keyboards](https:\u002F\u002Fthreatpost.com\u002Ffujitsu-wireless-keyboard-unpatched-flaws\u002F149477\u002F)\n* [Reverse-engineering a 433MHz Remote-controlled Power Socket for use with Arduino](http:\u002F\u002Fwww.ignorantofthings.com\u002F2018\u002F11\u002Freverse-engineering-433mhz-remote.html)\n\n### General presentations and tutorials on URH\n* [Hackaday Article](https:\u002F\u002Fhackaday.com\u002F2017\u002F02\u002F23\u002Funiversal-radio-hacker\u002F)\n* [RTL-SDR.com Article](https:\u002F\u002Fwww.rtl-sdr.com\u002Freverse-engineering-signals-universal-radio-hacker-software\u002F)\n* [Short Tutorial on URH with LimeSDR Mini](https:\u002F\u002Fwww.crowdsupply.com\u002Flime-micro\u002Flimesdr-mini\u002Fupdates\u002Finvestigating-wireless-protocols-with-universal-radio-hacker)\n* [Brute-forcing a RF Device: a Step-by-step Guide](https:\u002F\u002Fpandwarf.com\u002Fnews\u002Fbrute-forcing-a-new-device-a-step-by-step-guide\u002F)\n* [Hacking wireless sockets like a NOOB](https:\u002F\u002Folof-astrand.medium.com\u002Fhacking-wireless-sockets-like-a-noob-b57d4b4812d5)\n\n## External decodings\nSee [wiki](https:\u002F\u002Fgithub.com\u002Fjopohl\u002Furh\u002Fwiki\u002FExternal-decodings) for a list of external decodings provided by our community! Thanks for that!\n\n## Screenshots\n### Get the data out of raw signals\n![Interpretation phase](http:\u002F\u002Fi.imgur.com\u002FWy17Zv3.png)\n\n### Keep an overview even on complex protocols\n ![Analysis phase](http:\u002F\u002Fi.imgur.com\u002FubAL3pE.png)\n\n### Record and send signals\n ![Record](http:\u002F\u002Fi.imgur.com\u002FBfQpg23.png)\n","Universal Radio Hacker (URH) 是一个用于无线协议研究的综合套件，支持多种常见的软件定义无线电设备。其核心功能包括信号的简易解调、自动检测调制参数、可自定义的解码方案以及协议逆向工程工具。URH 能够自动推断协议字段，并提供了一个针对无状态协议的模糊测试组件和一个用于有状态攻击的模拟环境。该项目采用 Python 语言开发，界面基于 Qt，适合于物联网安全评估、无线通信研究及教学等场景使用。",2,"2026-06-11 03:34:04","high_star"]