Universal Radio Hacker (URH) and Ubuntu 18.04 with a pybombs GNURadio backend.

While attending Defcon 27 and hanging around the wireless village, I caught Dale Wooden giving an interesting talk on his exploits around playing with Fords key fobs. A lot of his initial research was performing leveraging Universal Radio Hacker. URH looked pretty slick and as with most tools the wireless village folks show off, their default response is “Use Pentoo” if you want to use tool. My conference device is a fairly vanilla Ubuntu 18.04 box at the moment and getting things up at running was a bit challenging so I figured I’d document my steps and hopefully help someone out along the way.

Last Defcon I happened to be in the market for an SDR folks and the BladeRF folks happened to drop their new 2.0 version while I was there so that’s been my primary SDR for the past year. It’s small enough and packs a big enough FPGA to be fun. The team behind it has been pretty responsive in launching new libbladerfs as they’re developing new features and bug fixes so I’ve tended to rely on pybombs for building my gnuradio environment. If you haven’t built with pybombs before it’s generally a breeze and tends to stay decently ahead of PPA in my experience. Check here for details generally or more specifically for the bladerf.

Because I like to “live on the bleeding edge” I opted to run URH from source. Most of the process goes exactly as expected but after installing my gnuradio via pybombs into the prefix directory ~/gnuradio/default (yours may be different depending on your selected prefix location) it took me a minute to track down where exactly the gnuradio back end was sourcing python. Since we’re looking for what our python path is when we’re executing gnuradio, lets go ahead and activate our typical gnuradio python environment. In my case that’s:

cd ~/gnuradio/default
source setup_env.sh

Now to double check where this python environment is sourcing from:

which python

which for me yields:


With all that setup, lets launch urh. If you followed the steps to install/run from source above, this should just be executing from your current directory:


Once URH is up and running navigate to Edit->Options and verify that under Gnuradio options the “Python 2 interpreter” path is set to what you found above. If you ran URH from your “activated” pybombs environment at this point you should see a list of radios that match your GNURadio environment. If not give the rebuild button a try or leave a comment below (with console output if you can).

Screenshot from 2019-08-27 21-40-40.png