提及逆向,你想到的多是IDA Pro
,OllyDBG
等。算法
而Radare2
是一款開放源代碼的逆向工程平臺,它的強大超越你的想象,包括反彙編、分析數據、打補丁、比較數據、搜索、替換、虛擬化等等,同時具有超強的腳本加載能力,而且能夠運行在幾乎全部主流的平臺(GNU/Linux, .Windows *BSD, iOS, OSX, Solaris…)
上。可謂是一大神器。緩存
這裏咱們使用Kali
系統來學習它,由於Kali
系統自帶了這個神器。安全
打開終端,使用radare2 -h
能夠查看其幫助信息網絡
radare2
裏面有個很牛逼的工具:rabin2
框架
rabin2
能夠獲取包括ELF, PE, Mach-O, Java CLASS
文件的區段、頭信息、導入導出表、字符串相關、入口點等等,而且支持幾種格式的輸出文件。使用man rabin2
能夠查看rabin2
的使用幫助文檔。函數
而後咱們經過破解一個crackme
來學習神器radare2
的使用。工具
首先使用 rabin2
打印出二進制文件的系統屬性、語言、字節序、框架、以及使用了哪些加固技術學習
能夠看到這是一個32位的 elf
文件,沒有剝離符號表而且是動態連接的測試
接下來嘗試運行它spa
能夠看到,不管是否加參數都會顯示wrong
。 接下來使用radare2
來進行破解
能夠黃色輸出了一個地址(0x08048370)
,這就是它自動識別的程序入口點
或者也可使用ie命令手動打印出入口點
接下來輸入aa
或者aaa
進行細緻的分析
分析完成以後, r2
會將全部有用的信息和特定的名字綁定在一塊兒,好比區段、函數、符號、字符串,這些都被稱做 flags
, flags
被整合進<flag spaces>
,一個 flag
是全部相似特徵的集合
接下來看看全部的flag
咱們打印出imports
下面的信息
爲了獲取更多的信息,咱們能夠再列出數據段裏的字符串
出現了關鍵字,一個是success
,一個是咱們以前運行時的wrong….
那咱們接下來就跟着success
走,看看哪兒進行了調用 輸入命令axt @@ str.*
axt
命令用來在 data/code
段裏找尋某個地址相關的引用(更多的操做,請看 ax?
).
@@
就像一個迭代器,用來在地址空間裏不斷地匹配後面一系列相關的命令(更多操做,請看 @@?
)
str.*
是一個通配符,用來標記全部以 str.
開頭的信息,不光會列出字符串標誌,同時也包括函數名,找到它們到底在哪裏以及何處被調用。
接下來咱們看看radare2
分析出來哪些函數
看到兩個引發咱們注意的sym.beet
和sym.rot13
接下來咱們用 s main
指令定位到main函數入口處,而後用pdf
輸出反彙編代碼
分析函數的執行流程,咱們知道二進制程序是經過獲取 beet函數的返回結果來判斷是否正確
所以咱們去beet函數反彙編的部分看看 所以咱們定位到beet
輸入pdf@sym.beet
進行跳轉
自動跳轉到beet
函數的反彙編部分
咱們看到輸入的參數被拷貝到了一個緩存空間裏,這個空間的地址是 ebp – local_88h
。 local_88h
就是十進制的 136
。因爲4
個字節會被用來保存 ebp
的地址,4
個字節被用來保存返回地址,因此這個緩衝區得大小是 128
個字節.它們加起來恰好是 136
. 咱們輸入的參數被拷貝到緩衝區後被用來和 sym.rot13
的返回結果做對比, Rot-13
是一個著名的替換密碼算法,在ctf
和crackme
中被普遍使用,這個函數接受了9
個十六進制值做爲參數,可是上圖中看起來r2
好像沒有識別出來究竟是什麼字符,這裏咱們須要用 ahi s
來作些處理.輸入
ahi s
是用來設置字符串特定的偏移地址(使用 ahi?
獲取更多用法),@@
是一個迭代器,能夠用來接受後面輸入的多個參數,執行完這條命令後,圖形視圖會自動刷新。
能夠看到
0x080485a3
0x080485ad
0x080485b7
複製代碼
後面的字符都已經顯示出來了
咱們已經看到了以前沒法識別的字符串Megabeets
(根據字節序反向壓棧順序獲得).
這個二進制文件將咱們傳入的參數來和通過 rot13
處理後的 Megabeets
做比較
接下來咱們經過rahash2
求出這個字符串的校驗值
Zrtnorrgf
就是用來和咱們輸入的字符串做比較,成功則返回
success
。咱們驗證一下:接下來輸入
ood?
進入調試模式 將
Zrtnorrgf
做爲參數進行調試,輸入
dc
查看結果
輸出了success
,咱們成功破解了這個小軟件,也藉此掌握了radare2
的基本用法。
是否是躍躍欲試了呢?實踐才能學到真本領!戳下面的連接便可進行在線實操,無需本身搭建環境噢!
👇👇👇👇👇
本文由合天網安實驗室原創,轉載請註明來源。
關於合天網安實驗室
合天網安實驗室(www.hetianlab.com)-國內領先的實操型網絡安全在線教育平臺 真實環境,在線實操學網絡安全 ; 實驗內容涵蓋:系統安全,軟件安全,網絡安全,Web安全,移動安全,CTF,取證分析,滲透測試,網安意識教育等。
(本文來源:合天網安實驗室--領先的實操型網絡安全在線教育平臺)