0x00 準備工作
希望能下載一個 inspectrum。
inspectrum官方網(wǎng)站
inspectrum安裝方法
官方針對不同系統(tǒng)有不同的方法,這里抄錄了Ubuntu的方法。
#install the dependencies
sudo apt-get update
sudo apt-get install qt5-default libfftw3-dev cmake pkg-config
#Install libliquid1d and libliquid1d-dev from Artful manually by extracting them directly
cd ~/Downloads
wget http://mirrors.kernel.org/ubuntu/pool/universe/l/liquid-dsp/libliquid1d_1.3.0-1_amd64.deb
dpkg -x libliquid1d_1.3.0-1_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/l/liquid-dsp/libliquid-dev_1.3.0-1_amd64.deb
dpkg -x libliquid-dev_1.3.0-1_amd64.deb
sudo cp usr/lib/x86_64-linux-gnu/libliquid.* /usr/lib/x86_64-linux-gnu/
sudo cp -ar usr/include/liquid /usr/include/
#Install necessary tools for compilation
sudo apt-get install build-essential git
#Clone repository and compile the program
cd ~/Downloads
git clone https://github.com/miek/inspectrum.git
cd inspectrum
mkdir build
cd build
cmake ..
make
sudo make install
#Note: For the last step (sudo make install) **checkinstall** can be used instead for more benefits.
輸入以下命令,進行檢測(有顯示說明基本正常)
inspectrum -h

0x01 插曲
在進行電瓶車鑰匙密碼破解之前,我的想法想法是重放空調(diào)的開機啟動信號(畢竟我們寢室并沒有租用空調(diào))。
然后開始查找資料,比如像空調(diào)遙控器的頻段,但是網(wǎng)上只是說了一下基本是在 315MHz 和 443MHz 這兩個區(qū)間比較多,我信以為真,然后去打開 osmocom_fft 進行尋找波段,結(jié)果找了半天沒找到,都有把遙控器拆了,看看內(nèi)部結(jié)構(gòu)的想法。后來在繼續(xù)找資料的過程中,我遇到了一個難題。
題目是這樣的:

突然豁然開朗,忽略了空調(diào)遙控器是紅外遙控器這件事情,這樣就能解釋了,紅外遙控器的頻率是30000GHz,遠遠超過6GHz。所以這就是我為什么沒有找到頻率的原因。

0x02 進入正題
對于電瓶車鑰匙的頻率分析,我們要做些什么呢?
- 查找頻率
- 分析頻率
- 制作頻率
- 發(fā)出頻率
差不多就是這些過程吧。
2#01 查找頻率
使用 osmocom_fft
查找頻率我們使用 osmocom_fft 這個工具,首先查看 443MHz 與315MHz,這兩個頻率附近。

果然在443.7MHz附近有強烈的信號。并且與我們按下按鈕有關(guān)。基本可以確定這個就是我們的信號。
這個基本的意思是說,有可能這個并不是我們的信號,而是我們的信號在這個地方進行了混疊。但是圖中很明顯 BandWidth > sample rate,而且信號非常強烈,所以可以確認沒有混疊。
另外值得說明的是, osmocom_fft 也有錄制信號的功能,但是我們會用 GNURadio 來實際的完成一下。
頻率:
443.75 MHz
帶寬:
0.5 MHz
使用GNURadio
直接上圖,表示誠意:

注意:操作的時候,時間不要太長,時間越短越好。
分析:
上次我們使用的 WX 模式,這次使用的是 QT 模式。
所以有些模塊的名字會不一樣。
osmocom source: 還是不變,只是我們設(shè)置其頻率為433.7MHz
low pass filter:低通濾波器,參數(shù)為保留過濾掉400KHz以上頻率(相對于samp rate而言)。
其他模塊:(輸出模塊)
QT Frequency Sink:類似于 wx模式中的 FFT模塊。(頻域)
QT Time Sink:類似于 wx模式中 Scope 模塊。(時域)
File Sink:將內(nèi)容輸出到文件中,不要忘記點開設(shè)置文件的路徑。(二進制模式,無法直接打開)
輸出的內(nèi)容:

2#02. 分析頻率
GNURadio
我們就有了我們的文件,文件不是字符格式,所以我們應該用另一種方式打開。
打開文件方式:
hexdump keys|more

如果發(fā)現(xiàn)有很多的其中有很多的 0000 那就是正常了。
但是文字對于我們沒有什么用。我們可以嘗試在 GNURadio 中顯示出我們的波段,然后進行分析。
直接上圖:

我們就要調(diào)節(jié)顯示的坐標等設(shè)置,條件按住鼠標的滾輪,選擇 control Panel,就會出現(xiàn)與 wx 一樣的菜單界面。
但是我當時為了捕捉一個信號進行截屏,大概花了1分鐘,常常捕捉到空內(nèi)容。
為了紀念一下,近5分鐘的收獲:

信號很明顯的,都是同一個頻率,只是幅度有兩種選擇0或者True,基本可以確定為 ASK/OOK模型。
ASK/OOK wiki
基本類似與寬的內(nèi)容為1,細的內(nèi)容為0,但是中間有一段沒有任何信號的時間段。
先談?wù)撨@么多,我們開始換武器進行研究。
imspectrum
使用命令:
imsprectrum 文件名
圖形如下

網(wǎng)上對 OOK 協(xié)議的解析很少,很多的對于 OOK 協(xié)議進行重放基本都是不講道理的,OOK協(xié)議有幾位這個問題,百度也找不到。但是一些經(jīng)驗總結(jié),和一些與大佬的交談??偨Y(jié)如下:
前8位:
0空空空空空空空:這8位類似于告知客戶端,后面會有信號,請做好準備。(同步碼):
00111110001110010101:這20位每個鑰匙都不一樣,類似與密鑰。(內(nèi)碼)
0001:對于不同的功能,這4位不同。(控制碼)
基本協(xié)議內(nèi)容我們都搞定了。
可以進入下一環(huán)節(jié)。
2#03 制作頻率
我們的想法,用一個向量與cos相乘,就能生成類似的波形,很明顯,途中的信息是只有0與1,我們遇到了第一個問題。
空內(nèi)容與0如何區(qū)分。
很明顯0中并不是全部為0,只是含有振幅的內(nèi)容比較少。我們就轉(zhuǎn)到 GNURadio 中,仔細觀察一下0與1的內(nèi)容。
0與1的真實內(nèi)容如下:

所以可以將我們剛才的內(nèi)容進行編碼
1編碼為1110
空編碼為0000
0編碼為1000
并且一個完整的1持續(xù)1200us,使用我們的4個位(1110),所以我們的每個位持續(xù)300us。
完整的 payload 為:
請自己計算
1,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
1,0,0,0, 1,0,0,0, 1,1,1,0, 1,1,1,0,
1,1,1,0, 1,1,1,0, 1,1,1,0, 1,0,0,0,
1,0,0,0, 1,0,0,0, 1,1,1,0, 1,1,1,0,
1,1,1,0, 1,0,0,0, 1,0,0,0, 1,1,1,0,
1,0,0,0, 1,1,1,0, 1,0,0,0, 1,1,1,0,
1,0,0,0, 1,0,0,0, 1,0,0,0, 1,1,1,0,
payload已經(jīng)準備好了,接下來繼續(xù)搭建電路。
直接上圖:

當然會有一些問題,比如,為什么不將剛才直接錄制的信息,進行直接的重放,而是做了這么多的操作進行直接制作信號呢?
因為當時錄制的時候,在433.7附近的信號,也被我們錄制下來了,可能會存在一些別人的信號,如果直接重放的話,這部分的非正常信號也會被重放,會對別人產(chǎn)生干擾。所以強烈不推薦直接的重放。
我們來看看模擬的數(shù)據(jù)信息:

來看看幾點不同,
第一點是頻率略微為世界設(shè)定的要小,
第二點是300us中的 cos 數(shù)比實際要多。
但是在實際使用中并沒有什么影響。
于是就有一些想法,僅供參考:
因為我們獲取的信號是通過采樣得到的,所以其中的信號是已經(jīng)失真的信號,而我們模擬的信號,則是真實的信號,因為沒有兩臺 HackRF One,所以無法驗證是不是信號采樣的問題。
總之,如果有更加科學的解釋,歡迎私信騷擾。(2249222058#qq.com,把#改為@)
2#04發(fā)出頻率
按照設(shè)定,將 osmocom Sink 進行啟用,然后運行程序,就可以了。
盡量使用小的增益,隨意與對方越近越好。
不出意外,車會開始報警,因為我錄制的是報警的信號。
0x03 圖紙
錄制

重放
