1、Radare2簡介
說起逆向,你想到的可能是IDA Pro
,OllyDBG
等。
而Radare2
是一款開放原始碼的逆向工程平臺,它的強大超越你的想象,包括反彙編、分析資料、打補丁、比較資料、搜尋、替換、虛擬化等等,同時具備超強的指令碼載入能力,並且可以執行在幾乎所有主流的平臺(GNU/Linux, .Windows *BSD, iOS, OSX, Solaris…)
上。可謂是一大神器。
這裡我們使用Kali
系統來學習它,因為Kali
系統自帶了這個神器。
2、Radare2使用
開啟終端,使用radare2 -h
可以檢視其幫助資訊
radare2
裡面有個很牛逼的工具:rabin2
rabin2
可以獲取包括ELF, PE, Mach-O, Java CLASS
檔案的區段、頭資訊、匯入匯出表、字串相關、入口點等等,並且支援幾種格式的輸出檔案。使用man rabin2
可以檢視rabin2
的使用幫助文件。
然後我們通過破解一個crackme
來學習神器radare2
的使用。
首先使用 rabin2
列印出二進位制檔案的系統屬性、語言、位元組序、框架、以及使用了哪些加固技術
可以看到這是一個32位的 elf
檔案,沒有剝離符號表並且是動態連結的
接下來嘗試執行它
可以看到,不論是否加引數都會顯示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
的基本用法。
是不是躍躍欲試了呢?實踐才能學到真本領!戳下面的連結即可進行線上實操,無需自己搭建環境噢!
?????
3、說明
本文由合天網安實驗室原創,轉載請註明來源。
關於合天網安實驗室
合天網安實驗室(www.hetianlab.com)-國內領先的實操型網路安全線上教育平臺 真實環境,線上實操學網路安全 ; 實驗內容涵蓋:系統安全,軟體安全,網路安全,Web安全,移動安全,CTF,取證分析,滲透測試,網安意識教育等。
(本文來源:合天網安實驗室--領先的實操型網路安全線上教育平臺)