具體操作步驟是:首先找到這塊存儲芯片的位置,用電熱風(fēng)槍把它吹下來,然后用 eMMC的讀書卡讀取內(nèi)容,此時即找到 eMMC 讀卡器,把 eMMC 插到電腦可以看到一個彈出顯示存儲器里面的空間和內(nèi)容,找到設(shè)置調(diào)試變量的地方,修改后再寫到 eMCP 里面焊回來。
有一個小細節(jié)是,因為存儲器里的內(nèi)容有分區(qū),需要將這些系統(tǒng)分區(qū)用 Ext4 的方式掛載,修改后保存,再剪輯切回 EMCP 的芯片里,后續(xù)我們需要把它焊回去。再運行直接 ADB 打開,就可以得到 root 權(quán)限,成功后可以看到它的系統(tǒng)信息和進程。
這一過程涉及到許多復(fù)雜問題,比如要手工脫焊和焊接的過程,此芯片是 BGA 封裝,引腳多,引腳間距小,且芯片底座里面人為灌入黑膠,對操作過程帶來很大不便,操作不當(dāng)易使芯片廢掉,手工操作難度極高。
飛控系統(tǒng)
飛控系統(tǒng),是無人機里面的核心。因為會搜集到無人機各個傳感器模塊的一系列數(shù)據(jù),通過一些綜合算法來判斷飛控系統(tǒng)應(yīng)該如何操作。
飛控系統(tǒng)核心芯片是 ATSAME70Q21,其不需要外置存儲器存儲它的部件以及算法,與之相關(guān)有兩塊 IMU 陀螺儀以及加速度計,檢測飛機處于什么狀態(tài)。
氣壓計,主要為了檢測飛機的高度,作為一個飛機高度的判斷因素。
Ublox GPS模塊,是一個可編程的模塊,因為飛控和 GPS 通訊有一個協(xié)議交互,并不是說任何一個 GPS模塊都可以替換它,但可以做一些欺騙 GPS 的事情。
指南針模塊,主要用于方向的定位。
智能電源,智能電源是用德州儀器 MSP430G2755 16 位的微控制芯片,它主要是收集電源現(xiàn)在狀態(tài),保持了何時放電,何時通過飛控系統(tǒng)在電量低于某值時返航。
電調(diào)芯片,因為無人機有四個螺旋槳,四個馬達,每一個馬達需要一個電調(diào)的芯片控制轉(zhuǎn)速,控制不同的馬達的轉(zhuǎn)速,來達到控制飛行姿態(tài)以及速度的操作。
視覺系統(tǒng)
視覺系統(tǒng),這是無人機里面非常重要的功能,里面核心處理芯片是英特爾的 MA2155 深度學(xué)習(xí)處理芯片。
飛機搭載攝像頭首先可以進行視頻錄制、拍照,圖像內(nèi)容輸出給視覺處理芯片來完成視覺識別等功能,其中一個功能是飛行跟隨,即在手機屏幕上選點跟隨飛行的目標(biāo),無人機可以跟隨他/它飛行,此時時候就利用芯片強大的深度學(xué)習(xí)能力,對感興趣的區(qū)域進行識別。
還有一個功能是測距,通過 MA2155 這塊深度學(xué)習(xí)芯片來完成視覺測距的功能,飛機前后障礙物的距離通過圖象識別的方式識別出來。
另一個功能是雙目避障,這是觀測傾斜度 70 度是否有障礙物,通過發(fā)射端發(fā)射出去的光反射回來在接收端接受。
超聲波可檢測下方障礙物以及檢測地面。
無線通信系統(tǒng)架構(gòu)
無線通訊,是無人機里面最核心的一塊功能,也是最復(fù)雜的一塊功能,涉及到控制系統(tǒng)和圖象傳輸?;驹砭褪乔岸说氖瞻l(fā)器收到信號,通過基帶系統(tǒng)進行解碼,解碼后通過搖控器的 LPC1549 芯片處理進而通過 Cypress 的 USB 芯片反饋到手機上。
無線通訊是通過 OFDM 方式進行圖傳以及數(shù)控的傳輸,其特點是控制通道數(shù)據(jù)通過遙控器通過 1Mhz 帶寬的跳頻發(fā)送,飛機回傳的圖象和控制通道回傳數(shù)據(jù)通過 10Mhz 帶寬進行定頻傳輸。
為了保證數(shù)控通道及時性,采取定時跳頻的方式。因為有可能信號會被干擾,在某一個特定頻點時會被干擾,如果被干擾的話,飛機可能收不到遙控器的一些數(shù)據(jù),此時我們需要切換不同的頻點,找信噪比高的地方,保證它的可靠性。
它在 FCCID 通信管理局申請的 5G 頻段的頻寬執(zhí)照在 5727-5821Mhz,但實際上,其操作已超過通訊管理局規(guī)定的頻段。在我們研究過程中發(fā)現(xiàn)濫用這個頻段的資源已達 5845Mhz。遙控器與飛機如何進行識別,需要配對及連接過程。
配對的唯一信息來自遙控器,所有信息都是遙控發(fā)給無人機,配對成功后可以在操作過程中識別到哪個是我控制的無人機,且這些控制配對信息皆通過搖控器芯片 LPC1549 的序列號生成。
基本上無線通訊架構(gòu)的過程,首先是搖控器先初始化芯片,然后初始化基站系統(tǒng)各個寄存器,寄存器里存入了唯一可以配對碼的信息。這個配對碼有五個字節(jié),寫入到寄存器里面,真正用到只有三個字節(jié),所以就有可能無線期劫持無人機。
無線通訊傳輸?shù)倪^程其實是非對稱傳輸,無人機遙控器發(fā)的信息跳頻傳輸給飛機,接收端也是跳頻接收,但是圖傳和下行通道是由飛機以定頻的方式發(fā)送,且這些跳頻算法都是通過代碼來實現(xiàn)的。
下圖即遙控器用于檢測飛機是否配對的算法檢測基帶芯片 SPI 地址 0E4、0E5、0E6進行比較。所以劫持一臺無人機,我們可以通過暴力破解的方式,用所有的密鑰空間進行離線的破解,找到配對碼,去控制無人機,在控中時候就可以動態(tài)改掉配對碼,讓這個無人機屬于你。
無人機反調(diào)對抗技術(shù)
我們也發(fā)現(xiàn)了一些硬件的反調(diào)技術(shù)和軟件的反調(diào)技術(shù),比如說用 atmel 芯片的安全位置1,可以阻止外置硬件仿真器的掛載調(diào)試,遙控器的 LPC1549 通過 ADC 的粒度檢測來檢測調(diào)試器,LightBridge 用的 stm32F103 芯片通過 remap SWD IO 來使用 swd 調(diào)試接口失效,通過遙控器的硬件開關(guān)電路來阻止 LPC1549 芯片硬件仿真調(diào)試。
最后還有很多工作還沒有來得及做,未來我們會更加深入的研究各個硬件模塊的功能 hacking 以及進行一些想法的驗證工作。