0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【原創(chuàng)】硬件破解之固件分析

jf_31521785 ? 2023-02-16 18:21 ? 次閱讀

注1:本文為湖南底網(wǎng)安全信息技術(shù)有限公司安全團隊原創(chuàng)文章,轉(zhuǎn)發(fā)請注明出處

注2:該文已同步在今日頭條"湖南底網(wǎng)安全"主頁發(fā)布(原"電子技術(shù)論"主頁),鏈接如下:https://www.toutiao.com/article/6789945669256741387/?log_from=a59c9ca98c949_1675651265539

前言

固件分析,一種深入硬件底層(芯片級)的技術(shù)破解方法,經(jīng)常被用于系統(tǒng)攻防對抗、硬件破解、逆向分析等實際工作中,相對其它技術(shù)破解攻擊方法,科學(xué)有效的固件分析因其扒開了破解攻擊對象的“外衣”,直接深入“骨髓”對其邏輯代碼、數(shù)據(jù)存儲、數(shù)據(jù)類別、數(shù)據(jù)屬性等全方面分析,可找出其它攻擊方法無法找出的嚴重漏洞,可對破解攻擊對象形成“致命級殺傷力”。

固件分析,由“固件”和“分析”2個詞組成,看似簡單的4個字,要想有效充分發(fā)揮出其“殺傷力”,其背后人員需要龐大的技術(shù)體系支撐,這些技術(shù)體系并非孤立自成一體,而是環(huán)環(huán)相扣、相輔相成;每項技術(shù)體系、每個技術(shù)點都力求達到熟練甚至精通的標準。除此之外,還需要有超強的心理素質(zhì),在未知二進制“數(shù)據(jù)海洋”里“黑盒”探索,需要耐心、細心、信心,同時還要面對固件分析里的高失敗率,因為很多時候即便你能獲取到固件,由于固件本身的防護(如加殼、私有指令集、差分固件包)或固件分析實力不夠等因素仍然無法找出有效漏洞,你可能會不知所措、迷茫無助甚至焦慮不安,你得到的僅僅是固件文件、一堆冰冷的二進制數(shù)據(jù)而已,除此之外毫無其他用處,這時還得及時調(diào)整心態(tài)和思路繼續(xù)“戰(zhàn)斗”,以上內(nèi)容通俗的講就是對固件分析技術(shù)人員要求很廣的技術(shù)面、很深的技術(shù)點、很強的心里素質(zhì)。

固件分析技術(shù)淺談

上面已提到過,固件分析由“固件”+“分析”兩部分組成,不了解固件,何談分析?“固件分析”--固件之所以在前面想必原因也在此??紤]到篇幅原因,這里對固件只做概要說明,不深究。

什么是固件?

什么是固件(firmware)?怎么理解固件?不同的人有不同的回答,但每種回答都會反映出回答者理解固件分析的思維層次。

固件是什么?固件是軟件的一種,也是一種程序。

固件是什么?固件(Firmware)就是寫入EPROM(可擦寫可編程只讀存儲器)或EEPROM(電可擦可編程只讀存儲器)中的程序(百度百科)。

固件是什么?固件是指設(shè)備內(nèi)部保存的設(shè)備“驅(qū)動程序”,通過固件,操作系統(tǒng)才能按照標準的設(shè)備驅(qū)動實現(xiàn)特定機器的運行動作,比如光驅(qū)、刻錄機等都有內(nèi)部固件(百度百科)。

以上回答都沒錯,我個人的回答是:固件是存儲在可由CPU直接或間接讀取指令/數(shù)據(jù)并可運行的FLASH/ROM芯片里的二進制數(shù)據(jù)集合,這些指令/數(shù)據(jù)集合是根據(jù)CPU內(nèi)核架構(gòu)及型號,將高級編程語言(如C、C++等)由對應(yīng)的編譯器、鏈接器、裝載器生成并通過對應(yīng)的燒寫器將指令/數(shù)據(jù)集合燒寫到對應(yīng)設(shè)備里的存儲芯片中。固件之所以和軟件程序區(qū)分開來,是為了強調(diào)固件側(cè)重于智能設(shè)備、嵌入式設(shè)備、工控設(shè)備里運行的程序,而非PC電腦、服務(wù)器、手機內(nèi)部的程序(只是側(cè)重并非絕對,很多場合手機里的程序也被稱為固件)。

固件的位置是存儲在設(shè)備的FLASH/ROM芯片里,但展現(xiàn)在固件分析人員面前是提取出來后以文件的形式呈現(xiàn)。固件文件的格式并非固定不變,因廠家、設(shè)備不同而不同,目前常見的固件文件格式有:hex、bin、elf、axf、txt、ulmage等,對于固件分析人員,熟悉這些固件文件的內(nèi)部編碼規(guī)則、數(shù)據(jù)塊定義等細節(jié)尤為重要,否則拿到固件你也不認識它,更無從分析它。

固件的由來--編譯、鏈接、裝載

對于固件,不僅知其然,知其所以然也很重要,雖說不同的固件,格式、編碼不同,但其由來大體相同,都是由高級編程語言經(jīng)編譯、鏈接、裝載生成而成,編譯、鏈接、裝載這3步6個字至關(guān)重要,是有效提升固件分析成功率的重點、難點,對固件文件的形成機制、固件文件內(nèi)部函數(shù)構(gòu)造、內(nèi)部指令/RAM/數(shù)據(jù)分配機制、固件啟動運行機制等核心概念的深入理解非常有益。然而也只有深入理解了這些固件相關(guān)知識,才能充分發(fā)揮固件分析的破解攻擊價值。

固件運行機制

熟悉了什么是固件、固件的由來之后,在此,需要熟悉固件的運行機制。不同種類的設(shè)備,其內(nèi)部固件運行的細節(jié)都不一樣,但其運行機制大體類似,一般比較常見的運行機制是:上電boot->uboot->cos->applet,針對不帶操作系統(tǒng)的運行機制一般是:上電-> boot-> applet或上電-> applet。這里僅作簡要說明,實際固件分析過程中,最好是對每一步里每個函數(shù)、每行代碼的功能都做到了如指掌,這樣才能充分發(fā)揮固件分析的破解攻擊價值。

固件分析其它必要技術(shù)

固件分析,離不開電路/器件分析,因此需要具備必要的數(shù)電、模電知識;典型固件分析里,牽涉到固件提取、IO控制查詢、數(shù)字接口驅(qū)動、中斷喚醒、工作模式切換、外圍器件的驅(qū)動等方面,這些都離不開電路/器件分析。

固件分析,需要熟悉常用數(shù)據(jù)通信規(guī)約/協(xié)議簇(如TCP/IP協(xié)議簇、CAN總線),在你分析有關(guān)數(shù)據(jù)通信功能部分的固件時,熟練掌握各類常用數(shù)據(jù)通信協(xié)議和底層對應(yīng)接口,會讓你在固件分析時如虎添翼,得心應(yīng)手。

固件分析,需要熟悉主流CPU/MCU處理器內(nèi)部體系架構(gòu)、內(nèi)部各硬件模塊工作原理DMA、虛擬內(nèi)存管理、中斷處理、工作模式管理、外圍模塊等)、內(nèi)部存儲及運行機制等,還有熟悉/能看懂并理解主流CPU/MCU匯編語言(寄存器級別操作)也很重要,在分析固件時,對每個函數(shù)的初始化、數(shù)據(jù)處理、代碼跳轉(zhuǎn)、函數(shù)執(zhí)行等方面會讓你臨危不亂、思路清晰。

固件分析,熟悉相關(guān)加解密算法及安全通信、認證機制架構(gòu)/原理,會讓你少走很多彎路,知道如何權(quán)衡利弊得失,避開暗坑,提升固件分析效率。

固件分析,學(xué)會使用對自己有用的相關(guān)工具(包括但不限于:IDAPro、binwalk等)會讓你事半功倍,這些工具會快速提升你的工作效率,讓你進入狀態(tài),花更多的時間精力在固件分析上,而不是在固件分析的準備路上。

固件分析,熟悉主流嵌入式操作系統(tǒng)工作原理及內(nèi)核工作原理(如linuxandroid等)也至關(guān)重要,然而這個也是最難的,因為要深入了解操作系統(tǒng)內(nèi)核的具體工作流程、任務(wù)調(diào)度機制、數(shù)據(jù)存儲分配細節(jié)、權(quán)限管理、進程隔離保護/運行機制等非常難,非一朝一夕能學(xué)成,需要時間、需要毅力、更需要智商,但是一旦掌握了這些知識,在分析類似的固件時,則很容易找出漏洞,而且是高危漏洞。當然一旦達到此級別,個人認為已是大牛級別、黑客級別了。

編后語

隨著信息安全的普及,固件分析不僅受到黑客愛好者們的青睞,廠家設(shè)計者也越來也重視固件的防護,這無疑會加大固件分析的難度和降低固件分析的成功率,也正是因為這矛與盾的競爭關(guān)系,促使著網(wǎng)絡(luò)技術(shù)的不斷進步,就看隨的步伐塊,步伐慢的人注定會有被攻擊破解的風險。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3936

    瀏覽量

    127413
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11304

    瀏覽量

    209524
  • 硬件
    +關(guān)注

    關(guān)注

    11

    文章

    3328

    瀏覽量

    66224
  • 固件
    +關(guān)注

    關(guān)注

    10

    文章

    556

    瀏覽量

    23027
  • 硬件安全
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    2462
收藏 人收藏

    評論

    相關(guān)推薦

    [原創(chuàng)]Orcad16.3 破解流程

    本人最近在win7 旗艦版系統(tǒng)內(nèi),安裝上了Orcad16.3,并且成功破解,Pspice功能包括蒙特卡洛分析與參數(shù)掃描分析在內(nèi)完全可用。下面分享一下安裝過程。安裝之前,我參照N個破解
    發(fā)表于 06-07 12:49

    原創(chuàng) :PADS矩形陣列---視頻 【 歡樂1+1 群內(nèi) 原創(chuàng)視頻教...

    原創(chuàng) :PADS矩形陣列---視頻 【 歡樂1+1 群內(nèi) 原創(chuàng)視頻教程 】分享給大家下載,如果覺得資源好,記得給我加分哦[groupid=514]歡樂1+1 QQ群原創(chuàng)精品[/gro
    發(fā)表于 11-30 10:33

    【連載】阿東團隊原創(chuàng)視頻 Verilog和Qsys設(shè)計

    本帖最后由 100dongdong 于 2014-8-14 13:31 編輯 【目的】 阿東推出《阿東團隊原創(chuàng)視頻 Verilog和Qsys設(shè)計》 連載,為了幫助初學(xué)者深入掌握FPGA
    發(fā)表于 07-23 22:19

    固件分析固件如何解壓?

    有沒有大神做過固件分析項目的?對固件分析比較在行的,誠心找大神幫忙解決問題,有償!有償!有償!1、目前能從存儲器讀出固件,確定
    發(fā)表于 05-06 09:38

    MCU的破解技術(shù)分析

    MCU破解技術(shù)分析
    發(fā)表于 02-03 07:17

    果iphone一代,3G,3GS升級3.1.2固件版本破解

    果iphone一代,3G,3GS升級3.1.2固件版本破解解鎖刷機越獄軟解教程iphone 3G/iphone 3GS 3.1/3.1.2破解 可以成功連91手機助手,打電話,連無
    發(fā)表于 02-02 17:27 ?1607次閱讀

    iPhone破解越獄總匯

    iPhone破解越獄總匯 ·黑雨blackra1n RC2越獄教程Win版(3.1.2固件)
    發(fā)表于 02-03 09:56 ?818次閱讀

    iPhone 2.2 升級功能, 固件, 破解

    iPhone 2.2 升級功能, 固件, 破解 2.2升級內(nèi)容iPhone/iPod touch 2.2版新增功能包括:Google Maps功能增強:支持Google街景(iPod touch不支持)步行
    發(fā)表于 03-04 17:34 ?396次閱讀

    對MCU破解技術(shù)做個簡單分析

    大家可能都知道破解51單片機是很容易的,但為什么容易,又是如何來破解的,可能很多人就不大清楚了,我在這里結(jié)合網(wǎng)上一些前輩整理的資料,和自己的經(jīng)驗,對MCU破解技術(shù)做個簡單分析。
    的頭像 發(fā)表于 12-26 09:16 ?6296次閱讀

    彩虹加密狗破解技巧數(shù)據(jù)代碼分析

    彩虹加密狗破解技巧數(shù)據(jù)代碼分析以上是彩虹加密狗破解技巧數(shù)據(jù)代碼分析的簡單介紹,文章由(逆向開發(fā)技術(shù)網(wǎng))編輯整理。
    發(fā)表于 01-24 08:00 ?9次下載
    彩虹加密狗<b class='flag-5'>破解</b>技巧數(shù)據(jù)代碼<b class='flag-5'>分析</b>

    芯片漏洞實戰(zhàn)破解KASLR

    Meltdown和Spectre分析以及CPU芯片漏洞攻擊實戰(zhàn),教你如何破解macOS上的KASLR。 作者:蒸米,白小龍 @ 阿里移動安全 來源: https://paper.seebug.org
    的頭像 發(fā)表于 11-26 13:47 ?3041次閱讀

    固件手冊ACS880基本控制程序

    固件手冊ACS880基本控制程序說明。
    發(fā)表于 05-24 10:10 ?21次下載

    NodeMCU學(xué)習筆記(1)--- 硬件介紹、固件制作、燒錄

    NodeMCU學(xué)習筆記(1)— 硬件介紹、固件制作、燒錄提示:作者使用 ESP8266 進行開發(fā)學(xué)習。文章目錄NodeMCU學(xué)習筆記(1)--- 硬件介紹、固件制作、燒錄前言一、
    發(fā)表于 11-01 16:25 ?18次下載
    NodeMCU學(xué)習筆記(1)--- <b class='flag-5'>硬件</b>介紹、<b class='flag-5'>固件</b>制作、燒錄

    ESP8266應(yīng)用筆記固件下載協(xié)議

    電子發(fā)燒友網(wǎng)站提供《ESP8266應(yīng)用筆記固件下載協(xié)議.pdf》資料免費下載
    發(fā)表于 09-23 10:02 ?0次下載
    ESP8266應(yīng)用筆記<b class='flag-5'>之</b><b class='flag-5'>固件</b>下載協(xié)議

    原創(chuàng)固件分析&amp;固件檢測技術(shù)&amp;安全需求洞察深度詳談

    ://www.toutiao.com/article/7197968863081284133/? 前言 固件分析固件檢測的技術(shù)“深”不可測,其范疇包括但不限于CPU架構(gòu)類型、指令集、應(yīng)用程序、文件系統(tǒng)、操作系統(tǒng)、驅(qū)動、內(nèi)核、b
    的頭像 發(fā)表于 02-16 18:23 ?3091次閱讀