国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

嵌入式設(shè)備逆向所需的工具鏈

這篇具有很好參考價值的文章主要介紹了嵌入式設(shè)備逆向所需的工具鏈。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

導語:本文介紹了嵌入式設(shè)備逆向所需的工具鏈。

相關(guān)的應用程序或工具有:

UART(Universal Asynchronous Receiver Transmitter,通用異步收發(fā)器):

UBoot;

Depthcharge;

SPI (Serial Peripheral Interface,串行外設(shè)接口):

Flashrom;

I2C(Inter-Integrated Circuit,集成電路總線):

i2cdetect;

i2cdump;

JTAG (Joint Test Access Group,聯(lián)合測試接入組)

OpenOCD;

UrJTAG;

除了使用上述協(xié)議提取固件外,我們還將使用 Ghidra 分析二進制文件,其中我們將涵蓋以下內(nèi)容:

將二進制塊加載到 Ghidra;

了解 Ghidra 的 FlatProgramAPI:Java / Python;

增強 Ghidra 的自動分析;

理解Ghidra中的內(nèi)存映射;

PCode仿真;

本文回顧了在建立嵌入式系統(tǒng)逆向工程實驗室時所需要的一些工具。有兩個部分,一個是硬件工具,一個是軟件工具。閱讀完本文后,你應該知道為逆向工程嵌入式系統(tǒng)和固件映像建立一實驗環(huán)境需要什么。

讓我們介紹一下將要使用的一些工具。

硬件

為了連接和分析本文中的逆向目標,我們將使用以下工具:

樹莓派模型4;

FX2LA邏輯分析儀;

萬用表;

RD6006電源;

Breadboard Wire 跳線;

烙鐵;

Raspberry Pi

Raspberry Pi是一款基于linux的SBC(單板計算機),擁有多種外設(shè)。直到最近,對于許多嵌入式系統(tǒng)項目來說,Raspberry Pi 還是一種易于獲取的低成本解決方案。

它利用Broadcom BCM2711,四核Cortex-A72 (ARM v8) 64位SoC @ 1.5GHz,并且有多種型號可供選擇,可用外設(shè),當然還有成本! Pi 最初是一個教育平臺,但制造商和黑客都喜歡這個平臺,并找到了很多方法來利用這個基于 Linux 的低成本 SBC。我發(fā)現(xiàn) Raspberry Pi 在過去幾年中已成為我的首選多功能工具,這主要是由于它支持的接口數(shù)量,如下圖所示。
嵌入式設(shè)備逆向所需的工具鏈
我們將使用這個平臺來插入和連接各種嵌入式系統(tǒng)總線和外設(shè)。除了包含許多嵌入式系統(tǒng)上的標準外設(shè)外,它還運行 Linux!這使我們能夠利用許多開源工具,甚至編寫我們的程序來與這些外設(shè)進行交互。我們可以這樣做,因為這些接口是通過 /dev/ 中的文件系統(tǒng)公開的。我們將是基于 Debian 的標準 Raspbian 映像,每一篇文章都將介紹如何配置Pi的相關(guān)接口。

電源:RD6006

在完成我們的目標時,我們需要從外部為它們提供動力。因此,無論我們是要為閃存芯片或微控制器等單個組件還是我們的整個平臺供電,我們都需要一個可調(diào)節(jié)的電源。

Riden 6006 是一款可變臺式電源,可根據(jù)你要使用的電源處理 6-70v 的輸入電壓。此電源要求你連接電源;對于我的臺式設(shè)置,我使用連接到 RIDEN 6006 背面的 12V / 3A 交流適配器,如下所示:
嵌入式設(shè)備逆向所需的工具鏈
該電源具有十個可編程預設(shè)(電壓/電流設(shè)置),可通過 USB 或 WiFi 遠程控制。

以下 python 片段顯示了控制此電源是多么簡單。
嵌入式設(shè)備逆向所需的工具鏈
使用連接WiFi的版本,移動應用程序可以遠程控制電源。需要以編程方式控制我們的電源,以防我們需要運行重復測試,我們循環(huán)電源到目標。第一部分中有一個示例:

Riden Link: Amazon

Riden Link: AliExpress

萬用表

萬用表是任何硬件實驗室的必備品,萬用表執(zhí)行電子測量,例如:

電壓(交流和直流);

當前的;

電阻;

連續(xù)性;

不同的萬用表的成本和功能差異很大,選擇萬用表時需要注意的一些因素包括:

用于什么目的?

手動還是自動?

可用的測量方法是什么?

就我們的目的而言,我們不需要一個非常昂貴的萬用表,因為我們將主要測量連續(xù)性、電壓和電阻。需要注意的是,一些便宜的萬用表比其他萬用表需要更多的時間來測量,從而導致一些滯后。

邏輯分析儀

硬件黑客工具箱中另一個常用的工具是邏輯分析儀。邏輯分析儀捕獲并顯示數(shù)字電路中的電子信號。邏輯分析儀還可以解碼和分析這些信號,將數(shù)字數(shù)據(jù)流轉(zhuǎn)換為更易讀的格式。
嵌入式設(shè)備逆向所需的工具鏈
雖然我是 Salaea 邏輯分析儀的忠實粉絲,但對于大多數(shù)愛好者來說,這些都是相對昂貴的。因此,我將為此系列使用低成本的 fxXXX 系列邏輯分析儀。人們可以以相當?shù)偷膬r格從 eBay 或亞馬遜購買這些分析儀。我們將與這些分析儀一起使用的軟件將是 PulseView 軟件套件。

在選擇邏輯分析儀時,有幾個因素需要考慮,我在下表中列出了這些因素。
嵌入式設(shè)備逆向所需的工具鏈
對于我們將要研究的目標,24MHz的采樣率就足夠了。然而,對于專業(yè)使用,我建議使用Saleae或其他至少能夠達到100MHz的邏輯分析儀。

Saleae Logic Analyzer

FX2LA Logic Analyzer

這些邏輯分析儀由 PulseView / Sigrok 軟件支持,我們將在本文的示例中使用該軟件。

面包板或跳線

我們需要一種方法將我們的 Raspberry Pi 連接到我們的各種目標,這必然會用到面包板。面包板使我們無需焊接即可制作電子電路原型。在使用 Raspberry Pi 時,我非常喜歡下圖所示的機箱/面包板組合:
嵌入式設(shè)備逆向所需的工具鏈

焊臺

在某些示例中,可能需要焊接到我們的目標上。例如,有時我們需要直接焊接到組件上以對其進行測量/接口,而其他時候我們需要將所有部件都移除。

適合你烙鐵需要滿足以下條件:

你要焊接什么?

電路板;

汽車零部件;

布線;

你有多少可用的辦公桌/工作臺空間?

你需要返修臺嗎?

你會移除/添加 SMD/SMT 組件嗎?

如果你正在尋找一個低成本的焊臺,我推薦這個。它的溫度范圍可以從 392 到 896,并且可以通過操作臺控制。如果你要進行 SMD 返修和移除 BGA 設(shè)備,你將需要選擇具有熱風返修臺。

該視頻可以提供有關(guān)選擇合適工作站的更多信息。

其他硬件工具

到目前為止,我只列出了必需的工具。但是,許多其他工具和組件在你的硬件實驗室中可能會有所幫助,比如:

硅膠墊:

為探測設(shè)備/焊接提供安全的表面平臺;

顯微鏡:

印刷電路板;

FTDI越獄:

廣泛支持各種編程語言的硬件多功能工具;

示波器:

用于查看模擬信號,適用于調(diào)查無法按預期工作的神秘/麻煩的數(shù)據(jù)線,也用于收集功率跟蹤差分功率分析和電壓故障;

選擇示波器指南;

ChipWhisperer 平臺

用于電壓閃變和側(cè)通道分析,NewAE還提供了一系列優(yōu)秀的教程和示例。

隨著你繼續(xù)研究和分析更多目標,你的硬件需求將會增長。本文介紹了遵循此特定示例所需的基本組件。

軟件工具

請記住,在逆向工程過程中,硬件通常只是第一個障礙。通常情況下,我們在硬件級別進行逆向工程,以增加對軟件級別組件的訪問。在本文中,我們將使用幾個軟件工具,并在下面重點介紹核心工具。

Ghidra

熟悉我背景的人都知道,Ghidra 已迅速成為我在軟件逆向領(lǐng)域的首選工具。

Ghidra 是 NSA 開發(fā)的 SRE(軟件逆向工程)工具套件。如果你熟悉 IDA-Pro、r2 或 Binary Ninja,那么你可能就熟悉 Ghidra。我們可以使用上面提到的任何工具對這個固件鏡像進行逆向工程。盡管如此,我還是選擇了 Ghidra,因為它是開源的,并且具有用于腳本和分析二進制文件的相對完整且記錄良好的 API。

使用 Ghidra 的好處有很多:

它是完全開源和免費的;

支持架構(gòu)的大型庫;

適用于所有受支持架構(gòu)的反匯編和反編譯工具;

用于擴展分析/插件開發(fā)的 Java/Python API;

當我們在整個系列中查看固件映像時,我們將使用 Ghidra。此外,在本文中,我們將學到以下知識:

將內(nèi)存區(qū)域添加到固件映像;

使用自定義 ghidra 擴展增強自動分析;

模擬 Ghidra 的 PCode 以更好地了解固件行為;

我在寫了一篇關(guān)于設(shè)置開發(fā)環(huán)境來開發(fā) Ghidra 模塊和腳本的文章。當我們查看從目標中提取的固件映像時,我們將使用此環(huán)境。

Binwalk

在我們將二進制或固件映像加載到 Ghidra 之前,我們需要回答幾個問題:

這個軟件是為什么架構(gòu)編寫的?

此映像是壓縮的還是加密的?

此固件映像中是否嵌入了其他文件或文件系統(tǒng)?

Binwalk 可以幫助我們避開幾乎所有這些問題。Binwalk 是一種檢查二進制文件并搜索預定義文件格式的工具。其中一些格式包括:

適用于多個操作系統(tǒng)的可執(zhí)行格式;

文件系統(tǒng)映像;

多媒體文件;
嵌入式設(shè)備逆向所需的工具鏈
Binwalk 還可以生成熵圖,這在確定固件映像是加密還是壓縮時非常有用。當我們從目標中提取固件映像時,我們將使用 binwalk 執(zhí)行我們的初始分析。 binwalk 的輸出將幫助我們確定提取感興趣數(shù)據(jù)所需的后續(xù)步驟。
嵌入式設(shè)備逆向所需的工具鏈

Kaitai Struct

一旦我們了解了給定二進制文件或固件映像的結(jié)構(gòu),我們可能需要編寫一個解析器來提取感興趣的數(shù)據(jù)。 Kaitai struct 很快成為我編寫自定義二進制解析工具的首選工具。

Kaitai Struct 是一種聲明性語言,用于描述布局在文件或內(nèi)存中的各種二進制數(shù)據(jù)結(jié)構(gòu):即二進制文件格式、網(wǎng)絡(luò)流數(shù)據(jù)包格式等。

其主要思想是,在Kaitai Struct語言中只描述一種特定的格式,然后可以將其編譯成一種受支持的編程語言中的源文件。此外,這些模塊將包含為解析器生成的代碼,該解析器可以從文件/流中讀取所描述的數(shù)據(jù)結(jié)構(gòu),并以易于理解的API訪問它。

我們可以使用 Kaitai struct 為二進制文件編寫模板,使用該模板,Kaitai 將為我們生成一個解析庫。該工具非常節(jié)省時間,并且支持多種輸出語言。下面是我為 ePOS RTOS 實現(xiàn)的自定義文件系統(tǒng)編寫的 Kaitai Struct 的一些示例應用程序。

Kaitai 模板;

自動生成的解析器;

使用自動生成的解析器;

Kaitai 還具有可以在本地運行的基于 Web 的 IDE。

你可以從kaitai.io了解更多關(guān)于Kaitai的信息并下載相關(guān)工具

Pulseview / SigRok

Pulseview 是 Sigrok 的前端軟件,我們將使用它來分析和查看我們使用邏輯分析儀捕獲的數(shù)據(jù)。此外,Pulseview 將對我們捕獲的流量應用各種協(xié)議解碼器,使我們能夠從捕獲中獲得更多含義,并使捕獲的輸出更具可讀性。例如,使用UART解碼器,我們可以這樣做:
嵌入式設(shè)備逆向所需的工具鏈
嵌入式設(shè)備逆向所需的工具鏈
我們還可以導出這些數(shù)據(jù)以進行進一步分析,編寫我們的插件,甚至以編程方式編寫如何收集信息的腳本。Pulseview 和 sigrok 也是完全開源的,并且有許多兼容的設(shè)備,包括一些版本的 Saleae Logic 分析儀,你可以在此處下載 Pulseview 軟件。

總結(jié)

本文列出的工具只是對嵌入式系統(tǒng)/固件進行逆向工程所需的一些工具。旨在從硬件和軟件的角度回顧嵌入式系統(tǒng)逆向工程的基礎(chǔ)知識。文章來源地址http://www.zghlxwxcb.cn/news/detail-437648.html

到了這里,關(guān)于嵌入式設(shè)備逆向所需的工具鏈的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 嵌入式Linux(8):字符設(shè)備驅(qū)動--注冊字符類設(shè)備

    雜項設(shè)備 注冊雜項設(shè)備: 注銷雜項設(shè)備: 字符類設(shè)備 文件:include/linux/cdev.h 步驟流程: 定義一個cdev結(jié)構(gòu)體。 使用cdev_init函數(shù)初始化cdev結(jié)構(gòu)體成員變量。 參數(shù): 第一個:要初始化的cdev結(jié)構(gòu)體 第二個:文件操作集: cdev-ops = fops;//實際就是把文件操作集寫ops 使用cdev_add函數(shù)

    2023年04月22日
    瀏覽(24)
  • 嵌入式設(shè)備顯示屏相關(guān)概念匯總

    嵌入式設(shè)備顯示屏相關(guān)概念匯總

    LCD 接口:是一種常見的數(shù)字電路接口,支持多種顯示器件,如字符型液晶顯示器和點陣型液晶顯示器等。 VGA 接口:是一種視頻接口標準,用于連接顯示器和計算機。該接口提供模擬 RGB 信號,支持最高分辨率為 1920x1080。 HDMI 接口:是一種數(shù)字音視頻接口標準,用于連接高清

    2024年02月01日
    瀏覽(86)
  • 嵌入式linux設(shè)備網(wǎng)口帶寬-測試方法

    嵌入式linux設(shè)備網(wǎng)口帶寬-測試方法

    iperf是一個基于Client/Server的網(wǎng)絡(luò)性能測試工具,可以測試TCP、UDP和SCTP帶寬質(zhì)量,能夠提供網(wǎng)絡(luò)吞吐率信息,以及震動、丟包率,最大段和最大傳輸單元大小等統(tǒng)計信息,幫助我們測試網(wǎng)絡(luò)性能,定位網(wǎng)絡(luò)瓶頸。其中抖動和丟包率適應于UDP測試,二帶寬測試適應于TCP和UDP。 一

    2024年02月10日
    瀏覽(23)
  • 【小黑嵌入式系統(tǒng)第二課】嵌入式系統(tǒng)的概述(二)——外圍設(shè)備、處理器、ARM、操作系統(tǒng)

    【小黑嵌入式系統(tǒng)第二課】嵌入式系統(tǒng)的概述(二)——外圍設(shè)備、處理器、ARM、操作系統(tǒng)

    上一課: 【小黑嵌入式系統(tǒng)第一課】嵌入式系統(tǒng)的概述(一)——概念、特點、發(fā)展、應用 下一課: 【小黑嵌入式系統(tǒng)第三課】嵌入式系統(tǒng)硬件平臺(一)——概述、總線、存儲設(shè)備(RAMROMFLASH) 前些天發(fā)現(xiàn)了一個巨牛的人工智能學習網(wǎng)站,通俗易懂,風趣幽默,忍不住分享

    2024年02月08日
    瀏覽(24)
  • 嵌入式linux驅(qū)動開發(fā)篇之設(shè)備樹

    嵌入式linux驅(qū)動開發(fā)篇之設(shè)備樹

    設(shè)備樹(Device Tree)是一種用于描述嵌入式系統(tǒng)硬件組件及其連接關(guān)系的數(shù)據(jù)結(jié)構(gòu)。它被廣泛用于嵌入式 Linux 系統(tǒng),尤其是針對使用多種不同架構(gòu)和平臺的嵌入式系統(tǒng)。它是一種與硬件描述相關(guān)的中間表示形式,將硬件信息抽象成一種可移植的格式,使得操作系統(tǒng)和引導加載

    2024年02月22日
    瀏覽(25)
  • 嵌入式設(shè)備應用開發(fā)(發(fā)現(xiàn)需求和提升價值)

    嵌入式設(shè)備應用開發(fā)(發(fā)現(xiàn)需求和提升價值)

    【 聲明:版權(quán)所有,歡迎轉(zhuǎn)載,請勿用于商業(yè)用途。 聯(lián)系信箱:feixiaoxing @163.com】 ? ? ? ? 很多做技術(shù)的同學,都會陷入到技術(shù)的窠臼之中。對于如何做具體的產(chǎn)品、實現(xiàn)具體的技術(shù),他們可能很感興趣。但是做出來的東西做什么用,或者說是有沒有競爭力,事實上他們不

    2024年02月11日
    瀏覽(29)
  • 【小黑嵌入式系統(tǒng)第三課】嵌入式系統(tǒng)硬件平臺(一)——概述、總線、存儲設(shè)備(RAM&ROM&FLASH)

    【小黑嵌入式系統(tǒng)第三課】嵌入式系統(tǒng)硬件平臺(一)——概述、總線、存儲設(shè)備(RAM&ROM&FLASH)

    上一課: 【小黑嵌入式系統(tǒng)第二課】嵌入式系統(tǒng)的概述(二)——外圍設(shè)備、處理器、ARM、操作系統(tǒng) 下一課: 【小黑嵌入式系統(tǒng)第四課】嵌入式系統(tǒng)硬件平臺(二)——I/O設(shè)備、通信設(shè)備(UARTUSB藍牙)、其他(電源時鐘復位中斷) 嵌入式系統(tǒng)的硬件除了核心部件——嵌入

    2024年02月07日
    瀏覽(25)
  • 實時嵌入式Linux設(shè)備基準測試快速入門1介紹

    實時嵌入式Linux設(shè)備基準測試快速入門1介紹

    工業(yè)4.0已經(jīng)到來,生產(chǎn)線需要新技術(shù)來應對客戶日益增長的新功能需求,使用配備嵌入式 Linux 的單板計算機來處理所需的許多功能是大勢所趨。這樣大多數(shù)工業(yè)控制系統(tǒng)都需要實時性能,開發(fā)人員不得不面對這樣一個事實:Linux原本并不適用于實時環(huán)境。不過多年來很多人都

    2024年02月15日
    瀏覽(16)
  • 嵌入式Linux系統(tǒng)中的設(shè)備驅(qū)動開發(fā):從設(shè)備樹到驅(qū)動實現(xiàn)

    嵌入式Linux系統(tǒng)中的設(shè)備驅(qū)動開發(fā):從設(shè)備樹到驅(qū)動實現(xiàn)

    大家好,今天給大家介紹 嵌入式Linux系統(tǒng)中的設(shè)備驅(qū)動開發(fā):從設(shè)備樹到驅(qū)動實現(xiàn) ,文章末尾附有分享大家一個資料包,差不多150多G。里面學習內(nèi)容、面經(jīng)、項目都比較新也比較全! 可進群免費領(lǐng)取。 在嵌入式Linux系統(tǒng)中,設(shè)備驅(qū)動是連接硬件設(shè)備和操作系統(tǒng)之間的橋梁。

    2024年02月19日
    瀏覽(25)
  • 實時嵌入式Linux設(shè)備基準測試快速入門4測試和測量

    實時嵌入式Linux設(shè)備基準測試快速入門4測試和測量

    本章將介紹主要測試方案及其具體配置和結(jié)果。在介紹實際測量結(jié)果之前,將盡可能總結(jié)被測設(shè)備的特性。最后,將對結(jié)果進行分析,并概述由于高速緩存一致性問題造成的延遲方面的主要瓶頸,提出減少延遲的解決方案,并解釋用于發(fā)現(xiàn)和緩解問題的方法。 用于智能設(shè)備的

    2024年02月15日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包