<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    用STM32單片機替換J-LINK

    VSole2021-10-13 16:23:44

    一、 DAP-LINK簡介

    Arm Mbed DAPLink 是一個開源軟件項目。把代碼編譯以后,會生成一個固件(和單片機開發是相同的),把固件寫到單片機里面,單片機就具備了J-LINK的功能。其成本很低,在淘寶上也有現成的產品。本文記錄的是使用一個STM32開發板制作DAP-LINK的過程。

    圖 1 淘寶上的DAP-LINK

    本次實驗的基本流程如下:

    1.使用開源的代碼編譯生成DAP-LINK固件。

    2.使用J-LINK燒寫DAP-LINK的固件到開發板中。

    3.驗證DAP-LINK固件在開發板中的可用性。

    下面先介紹基本的硬件、軟件環境,再介紹實驗步驟。

    二、硬件信息

    實驗主機:筆記本電腦

    開發板:STM32F103C8T6開發板[1](用來承載DAP-LINK)

    開發板:STM32F103VET6開發板[2](用來驗證DAP-LINK可用)

    輔助調試器:J-LINK調試器[3]

    開發板和輔助調試器依次如下圖所示:

    圖 2 J-LINK調試器示意圖

    圖 3 STM32F103C8T6開發板

    三、軟件信息

    源碼:x893 DAP-LINK源碼[4]

    實驗主機:Win10

    編譯環境:ARM MDK 5.14[5]

    四、制作過程

    制作過程部分主要描述編譯環境構建、編譯DAP-LINK源碼、燒寫DAP-LINK程序到小開發板、驗證DAP-LINK的可用性。其中,在驗證可用性的環節,DAP-LINK指示燈和SWD調試連接需要進行原理圖分析后,才能確定芯片的連接關系,進而使用杜邦線建立DAP-LINK和開發板的連接。USB接口的連接,x893和我們的小開發板的連接是一致的,所以這部分不用擔心燒寫DAP-LINK程序后會不兼容。

    4.1 編譯環境構建

    經多次測試,x893 的DAP-LINK源碼適用于本開發板。其代碼在github中開源,事實上,該代碼衍生自官方的github。

    圖 4 x893 DAP-LINK源碼

    該代碼使用ARM MDK[6]編譯,所以需要在筆記本上構建編譯環境,才能完成代碼編譯。

    下載MDK。使用腳注提供的百度云連接安裝即可。安裝和破解過程參考網絡已有教程資源[7]。安裝完成后,需要下載最新的CMSIS包[8],選擇Legacy support for Arm Cortex-M devices下載,下載完成后默認安裝即可。

    4.2 編譯DAP-LINK源碼

    打開\Firmware\STM32目錄下的CMSIS_DAP.uvproj工程文件,即可打開MDK的工程。打開后如下圖所示。選擇CMSIS-DAP-V2-F103。點擊左側箭頭即可進行編譯。

    圖 5 MDK打開工程項目后的界面

    編譯完成后,build output窗口有以下輸出:

    圖 6 編譯完成的日志

    4.3 燒寫DAP-LINK固件到開發板

    將開發板與J-LINK建立連接,并將J-LINK插入到筆記本中,點擊圖5所示的藍色深色箭頭,完成燒寫。期間,需要確保J-LINK連接到開發板后,MDK可以識別到J-LINK插入到開發板,而且在debug->settings中可見J-LINK已經識別到與J-LINK連接的MCU了。

    圖 7 確保J-LINK與開發板連接后識別到開發板的MCU

    圖 8 J-LINK下載固件到開發板中

    4.4 驗證DAP-LINK固件在開發板中的可用性

    重新將C8T6開發板(燒寫DAP-LINK固件的開發板)的USB插入到筆記本中,筆記本中識別了兩個設備,分別是串口設備和USB設備。這樣,我們的C8T6就變成了一個CMSIS DAP調試器,其功能類似J-LINK。

    圖 9 將DAP-LINK重新插入電腦后出現兩個設備

    將C8T6開發板與被測試的VET6開發板相連接。連接關系如下圖所示。需要注意的地方有兩個:SWD連接和DAP-LINK的指示燈。

    圖 10 DAP-LINK和開發板的連接方式

    打開被測試開發板資料中的例程,設置開發板燒寫方式為DAP-LINK。然后以燒寫DAP-LINK的方式進行編譯、燒寫。

    圖 11 設置工程源碼燒寫選項為DAP-LINK

    圖 12燒寫完成后的日志

    4.4.1 恢復指示燈

    指示燈可恢復可不恢復。x893的主板上存在兩個自定義的LED,而我們的C8T6開發板上只有一個,所以只恢復了一個LED,另一個不恢復也不影響整體功能。兩份開發板原理圖位置如下:

    l x893的電路原理圖:HW_STM32/CMSIS-DAP-X893/CMSIS-DAP.V2.pdf。

    l C8T6開發板的原理圖:STM32F103C8T6-48腳-最小系統資料/STM32F103C8T6-48腳-最小系統資料/STM32F103C8T6--原理圖.pdf。

    在C8T6開發板中,PC13與自定義LED相連接,默認不發光。而在x893中,存在兩個LED,分別與PB12和PB13相連。本次實驗恢復了PB13的LED連接,即把C8T6開發板的PB13連接到PC13上,使用杜邦線進行短接即可。

    圖 13 C8T6開發板的自定義LED

    圖 14 x893開發板的自定義LED

    圖 15 C8T6開發板的PB13位置在TFT屏幕接口上

    4.4.2 SWD調試連接

    如果想建立SWD調試連接,需要我們在C8T6開發板和VET6開發板之間連接4根杜邦線。根據SWD接口的規范[9],可以了解到只需要連接VCC、GND、SWDIO、SWCLK這四條杜邦線即可。

    從X893的電路圖中可知,SWDIO和SWCLK由PA13、PA14這兩個IO口模擬產生,所以將這兩個IO口用杜邦線和VET6開發板的SWD接口的SWDIO和SWCLK進行連接即可。使用兩根杜邦線將兩個開發板的VCC和GND對應連接起來,這樣,就實現了SWD接口的連接。

    圖 16 x893開發板上調試目標開發板的SWD接口

    五、DAP-LINK調試方法

    5.1 Linux下調試方法

    pyOCD[10]和J-LINK驅動自帶的工具有些類似。使用pip也可以直接安裝成功。安裝命令如下:

    python3 -m pip install -U pyocd

    使udev下的CMSIS-DAP設備可用:sudo cp udev/50-cmsis-dap.rules /etc/udev/rules.d/

    運行以下命令,即可識別到CMSIS DAP。一般情況下,需要運行sudo才能使用USB設備,具體需要根據自己的Linux環境而定,有的應該不需要,跟系統配置相關,這里不再贅述。Linux下調試STM32,如果需要自動化的測試程序,則需要自己完成腳本編寫。

    圖 17 Linux下識別到CMSIS-DAP設備

    5.2 Windows下調試方法

    Windows下同樣支持pyocd,如果不需要自動化測試,使用J-link驅動來完成gdbserver端口映射是最方便的。

    圖 18 Window下使用J-LINK+DAPLINK調試單片機

    六、總結

    DAP-LINK的開源代碼在STM32F103C8T6的實現比較簡單,需要注意的是,在使用自己的開發板加載適合其他開發板程序的時候,需要自己跳線解決兼容性的問題。解決跳線的方法是,通過分析原理圖,找到開源開發板上所示必要引腳,再找到自己的開發板與必要引腳的對應關系,在自己的開發板上實現開源開發板相同的電氣連接即可。

    本文內容,需要有MDK使用經驗。MDK是編譯單片機代碼的IDE,早期是keil,后被ARM買了。如果文章中有不懂的地方,可以網上搜索使用MDK進行STM32開發的環境搭建過程,做一遍環境搭建,就能完整復現本文的實驗步驟了。

    撰文時間較短,有不足之處,歡迎各位道友指出。歡迎交流。


    七、參考鏈接

    [1] STM32F103C8T6 開發板 STM32最小系統核心板 STM32單片機學習評估-淘寶網 (taobao.com)(https://item.taobao.com/item.htm?spm=a230r.1.14.47.43bf1f92MKZWHC&id=527982658127&ns=1&abbucket=10#detail)

    [2] STM32F103VET6核心板最小系統板STM32 ARM開發板Cortex-m3-淘寶網 (taobao.com)(https://item.taobao.com/item.htm?spm=a230r.1.14.56.25704beeYXlvyZ&id=575401251589&ns=1&abbucket=3#detail)

    [3] 仿真器J-LINK下載器ARM單片機STM開發板燒錄器V10JLINKV9-tmall.com天貓(https://detail.tmall.com/item.htm?spm=a230r.1.14.33.1d9a4269wgn6tN&id=637526274397&ns=1&abbucket=10)

    [4] GitHub - x893/CMSIS-DAP: STM32 port for CMSIS-DAP with additional serial (CDC) support(https://github.com/x893/CMSIS-DAP)

    [5] 鏈接:https://pan.baidu.com/s/1TlvK57Wf4jhK6ixKnAEqug  提取碼:35c1

    [6] MDK Version 5 (keil.com)(https://www2.keil.com/mdk5)

    [7] Keil MDK μVision 5 下載安裝及破解教程 - 吳川斌的博客 (mr-wu.cn)(https://www.mr-wu.cn/keil-mdk-uvision-5-crack/)

    [8] MDK v4 Legacy Support (keil.com)(https://www2.keil.com/mdk5/legacy)

    [9] https://blog.csdn.net/LEON1741/article/details/72846434

    [10] https://github.com/pyocd/pyOCD

    stm32單片機
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    設置工程源碼燒寫選項為DAP-LINK圖 12燒寫完成后的日志4.4.1 恢復指示燈指示燈可恢復可不恢復。而在x893中,存在兩個LED,分別與PB12和PB13相連。本次實驗恢復了PB13的LED連接,即把C8T6開發板的PB13連接到PC13上,使用杜邦線進行短接即可。根據SWD接口的規范[9],可以了解到只需要連接VCC、GND、SWDIO、SWCLK這四條杜邦線即可。
    Detector提供一個完整的測評框架,支持測評人員將待分析的原始波形及分析結果導出到Word文檔中,以快速生成測試報告。測試報告內容包括測試信息、測試波形圖及相應的測試結果。以TVLA測試為例,生成報告對話框界面如圖1所示,生成的測試報告如圖2所示。圖1 生成報告功能界面圖2 生成TVLA測試報告結果02新增標準計時分析功能舊版本Detector支持兩種計時分析功能,分別是計時分析-IO、計時分析-明密文相關性。
    STM32固件逆向
    2022-06-09 17:08:53
    手動設置固件基地址我們的分析將以bin文件為目標。但此時存在很多標紅的地址,這是因為這些地址在IDA中并沒有設置,因此IDA將其解析為非法地址,標紅了,我們現在要做的就是手動添加一些段。我們采用bindiff來恢復符號表。導入之后實際上就能恢復大部分的函數名了
    所有型號不能內置RDDI,有了直接報錯。這個命令也是非公開的,和AddFeature、ChangeSN一樣的流程,執行后會把現有ota的Features區域全部修改為0,發送更新ots信息請求讓設備去更新。但我測試了一下設備上的固件卻無法成功的把GDBFull或者JFlash字樣給修改為00。通過查閱STM32的flash編程手冊PM0059,明確說可以將非0的bit改為0,不需要擦除再改寫。
    stm32逆向入門
    2022-07-15 17:30:00
    這是一個STM32F103C8T6 MCU密碼鎖 它具有4個按鍵,分別為1, 2, 3, 4. 分別對應GPIO_PA1, GPIO_PA2, GPIO_PA3, GPIO_PA4 flag1格式為SCTF{正確的按鍵密碼} 輸入正確的密碼, 它將通過串口(PA9–TX)發送flag2
    Saber中的多項式乘法2、SASCASASCA是2014年提出的一種側信道攻擊方法,它將泄露的側信息以類LDPC編碼的形式表示。SASCA結合了模板匹配和BP算法,能夠有效地利用攻擊中的任何泄露。由于短周期循環十分影響BP算法的性能,因此將與f5add相關的節點與其他節點剝離開,整個環狀BP分為兩個步驟依次執行,以減輕性能下降。同時基于貝葉斯定理將因子圖中的節點歸一化,簡化了SFG;改進BP算法,降低因子圖中短周期對BP算法的性能影響,實現了攻擊優化。
    Azouaoui等人提出了掩碼和混淆的最優組合策略,改進了他們在AISACRYPT 2012中一篇論文的攻擊模型,并在不同噪聲的情況下研究了多種防護對策的安全性和性價比。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类