📡 On-off keying tools for your SD-arrrR
MIT License
ooktools aims to help with the reverse engineering of on-off keying data sources such as wave files or raw frames captured using RfCat.
I recently played around a little with static key remotes, and wrote some code to help with the reverse engineering thereof.
json
definition files that can be shared.json
recordings..grc
template file generation.You can install ooktools
in two ways. Either from pip
or from source. In case of a source installation, you may want to optionally consider installing it in a virtualenv.
In both installation cases, you need to install RfCat. This too can be done in two ways. On Kali Linux, you can install it with a simple apt
command:
$ apt install rfcat
Or, if you need to manually install it, download the latest RfCat sources and run the setup.py
script:
$ wget -c https://bitbucket.org/atlas0fd00m/rfcat/downloads/rfcat_150225.tgz
$ tar xjvf rfcat_150225.tgz
$ cd rfcat_150225
$ python setup.py install
Pip Package:
$ pip install ooktools
Using this method, you should have the ooktools
command available globally.
From source:
$ git clone https://github.com/leonjza/ooktools.git
$ cd ooktools
$ pip install -r requirements.txt
If you installed from source then you can invoke ooktools
with as a module using python -m ooktools.console
from the directory you cloned to.
There are a number of sub commands that are grouped by major category. At anytime, add the --help
argument to get a full description of any other sub commands and or arguments available.
$ ooktools --help
_ _ _
___ ___| |_| |_ ___ ___| |___
| . | . | '_| _| . | . | |_ -|
|___|___|_,_|_| |___|___|_|___| v0.1
On-off keying tools for your SD-arrrR
https://github.com/leonjza/ooktools
Usage: ooktools [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
gnuradio GNU Radio Commands.
signal Signal Commands.
wave Wave File Commands.
For full examples, please refer to the blogpost here
Nothing is perfect I guess. One of the biggest problems would be test cases and variations. So, here is the stuff that I know is not 100% perfect. Pull requests welcome!
graph
and clean
break when the wave file is too long. ~50M samples seem to start hitting the point of breakage.matplotlib
usage is silly from a performance perspective. Its the main reason I don't have live graphs in too as I just cant get it working great.Please refer to the LICENSE file.