0#2 電瓶車鑰匙的秘密

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
inspectrum.png

0x01 插曲

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

難題.png

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

CPU.jpg

0x02 進入正題

對于電瓶車鑰匙的頻率分析,我們要做些什么呢?

  1. 查找頻率
  2. 分析頻率
  3. 制作頻率
  4. 發(fā)出頻率

差不多就是這些過程吧。

2#01 查找頻率

使用 osmocom_fft

查找頻率我們使用 osmocom_fft 這個工具,首先查看 443MHz 與315MHz,這兩個頻率附近。


keys_begin.png

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

頻率:
443.75 MHz
帶寬:
0.5 MHz

使用GNURadio

直接上圖,表示誠意:

圖片.png

注意:操作的時候,時間不要太長,時間越短越好。
分析:
上次我們使用的 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)容:


key_ook_amplitude.png

2#02. 分析頻率

GNURadio

我們就有了我們的文件,文件不是字符格式,所以我們應該用另一種方式打開。
打開文件方式:

hexdump keys|more
hex文件.png

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

圖片.png

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

keys_ook_ampli.png

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


imspectrum

使用命令:
imsprectrum 文件名
圖形如下

圖片.png

網(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)容如下:

0和1.png

所以可以將我們剛才的內(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ù)搭建電路。
直接上圖:

全圖.png

當然會有一些問題,比如,為什么不將剛才直接錄制的信息,進行直接的重放,而是做了這么多的操作進行直接制作信號呢?

因為當時錄制的時候,在433.7附近的信號,也被我們錄制下來了,可能會存在一些別人的信號,如果直接重放的話,這部分的非正常信號也會被重放,會對別人產(chǎn)生干擾。所以強烈不推薦直接的重放。

我們來看看模擬的數(shù)據(jù)信息:


模擬的數(shù)據(jù)信息.png

來看看幾點不同,
第一點是頻率略微為世界設(shè)定的要小,
第二點是300us中的 cos 數(shù)比實際要多。

但是在實際使用中并沒有什么影響。
于是就有一些想法,僅供參考:
因為我們獲取的信號是通過采樣得到的,所以其中的信號是已經(jīng)失真的信號,而我們模擬的信號,則是真實的信號,因為沒有兩臺 HackRF One,所以無法驗證是不是信號采樣的問題。
總之,如果有更加科學的解釋,歡迎私信騷擾。(2249222058#qq.com,把#改為@)

2#04發(fā)出頻率

按照設(shè)定,將 osmocom Sink 進行啟用,然后運行程序,就可以了。
盡量使用小的增益,隨意與對方越近越好。
不出意外,車會開始報警,因為我錄制的是報警的信號。

0x03 圖紙

錄制


圖片.png

重放


全圖.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 對HackRF比較熟悉,可以直接調(diào)到最后的最后的最后。 0x00 準備工作 將 HackRF 插上USB連上電腦,...
    dogo_L1L閱讀 3,751評論 0 2
  • 為何顯示不全 對 Recyclerview 的布局的測量不準確 在自己項目中的表現(xiàn) 自己通過 Debug 發(fā)現(xiàn),傳...
    GYLEE閱讀 4,225評論 1 1
  • 授人以漁我們都知道并不是給答案而是給方法,當然不要因為麻煩選擇去給答案時間長了員工會依賴你,所以去訓練員工給思...
    合肥李風麗閱讀 163評論 0 0
  • 咱也應該算是走南闖北的人了,從北京、到深圳再到上海。一線城市的生活基本上都差不多,沒什么需要適應的,但有一件事讓我...
    娜娜vikitter閱讀 820評論 8 7

友情鏈接更多精彩內(nèi)容