<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          stm32逆向與安全科普系列第一篇:bin文件逆向小試

          共 1609字,需瀏覽 4分鐘

           ·

          2020-11-13 02:23

          來(lái)源:阿莫論壇,作者:ilovepp
          微信公眾號(hào):芯片之家(ID:chiphome-dy)

          首先你要有一個(gè)bin文件(bin文件的獲取方法不在此展開(kāi)介紹,今后有機(jī)會(huì)可以專(zhuān)門(mén)開(kāi)一個(gè)貼聊一聊)。本次實(shí)驗(yàn)用到的bin文件??stm32_xwrtos.bin.zip?(6 KB)?是用ST官方CMSIS和外設(shè)庫(kù)編譯的跑在stm32f103c8t6上的bin文件,比較具有代表性。

          燒錄文件下載:

          鏈接:https://pan.baidu.com/s/1YiMkyqbdPxGOI_vwGtOlJw ?取碼:yi56

          工具準(zhǔn)備:

          安裝開(kāi)源跨平臺(tái)逆向神器r2 https://github.com/radareorg/radare2 ,r2可運(yùn)行在Windows、Linux、Mac等所有主流操作系統(tǒng)上(r2有多牛逼不在此展開(kāi)介紹,今后有機(jī)會(huì)可以專(zhuān)門(mén)開(kāi)一個(gè)貼聊一聊)。

          實(shí)驗(yàn)步驟:
          1)輸入r2 -a arm -b 16 -m 0x08000000 stm32_xwrtos.bin 進(jìn)入r2的控制臺(tái)后,輸入e asm.cpu=cortex。這一步是告訴r2以0x08000000為基址加載stm32_xwrtos.bin文件,并設(shè)置指令集為cortex系列的thumb。

          2)輸入aaaa,運(yùn)行自動(dòng)化分析。

          3)輸入pxw 268 @0x08000000 以小端四字節(jié)形式打印從0x08000000開(kāi)始的268(268對(duì)應(yīng)中斷向量表大?。﹤€(gè)字節(jié),同時(shí)打開(kāi)ST官方的啟動(dòng)文件startup_stm32f10x_md.s并找到.isr_vector段進(jìn)行對(duì)照。

          4)接著上一步,輸入fs notes,創(chuàng)建并切換到一個(gè)名為notes(可以是任意其他名字)的符號(hào)記事本;按照f(shuō) flag=address的形式,對(duì)照.isr_vector段,向符號(hào)記事本中錄入感興趣的符號(hào)地址對(duì)應(yīng)關(guān)系。注意如果address是函數(shù)地址則需要減1(因?yàn)閠humb指令的要求,具體原因此處不展開(kāi));最后輸入af @flag形式的命令強(qiáng)制進(jìn)行函數(shù)分析。

          5) 輸入pdf @Reset_Handler,對(duì)Reset_Handler函數(shù)進(jìn)行反匯編

          輸入 VV 切換到流程圖視圖

          通過(guò)閱讀匯編代碼,可以得到以下信息:
          1.??data段的地址區(qū)間為0x20000000-0x20000028 bss段的地址區(qū)間為0x20000028-0x2000043C

          2.??Reset_Handler用0x08002cbc開(kāi)始的0x28字節(jié)初始化data段,用0填充bss段

          3. 調(diào)用fcn.08001cc8函數(shù)
          4. 調(diào)用fcn.08001734函數(shù)

          6)輸入pdf @fcn.08001cc8進(jìn)行反匯編

          發(fā)現(xiàn)對(duì)外設(shè)寄存器地址0x40021000的引用

          通過(guò)查詢(xún)數(shù)據(jù)手冊(cè),可判斷fcn.08001cc8函數(shù)應(yīng)為系統(tǒng)初始化化函數(shù)SystemInit(),它初始化了時(shí)鐘

          7)根據(jù)經(jīng)驗(yàn)判斷fcn.0800173函數(shù)即為main函數(shù)

          本篇作為系列第一篇文章,主要作用是帶大家熟悉和習(xí)慣r2的基本使用,以及對(duì)逆向有個(gè)感性認(rèn)識(shí)。下一篇計(jì)劃在逆向的基礎(chǔ)上介紹stm32上的棧溢出漏洞的挖掘與利用。

          再次感謝ilovepp兄分享的精彩文章!

          推薦閱讀

          ???重磅開(kāi)源:帶屏幕LCD脫機(jī)下載器離線(xiàn)下載器!

          ?【開(kāi)源方案】2.4G遙控器,接收器全套詳細(xì)設(shè)計(jì)資料

          ?【全開(kāi)源功放】美國(guó)NS公司的經(jīng)典芯片,LM3886!

          ?分享一個(gè)來(lái)自蘇泊爾的超低成本隔離交流電壓檢測(cè)+掉電檢測(cè)二合一電路

          ??軟件神器TortoiseGit,曉宇姐姐教你使用圖形化方式管理單片機(jī)程序版本!

          請(qǐng)戳右下角,給我一點(diǎn)在看!

          瀏覽 38
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久激情亚洲色 | 综合淫色| 亚洲欧美suv精品8888日 | 欧美成人超碰在线 | 天天搞天天干天天日 |