scanner怎样回到文件开头_Radare2逆向分析dex/so/二进制等文件的使用方法
git clone https://github.com/radareorg/radare2.git
git pull
r2pm init
r2pm update
sys/install.sh
radare2 -h
rabin2是radare2套件中的一個(gè)工具,主要用來提取二進(jìn)制文件中的信息
rabin2 -qi classes.dex | grep -i -e sms -e bluetooth -e install -e PackageManager -e Datagram -e Telephony -e nfc -e exec
rabin2 -qi ~/gyp/SecurityAnalysis/apk/classes.dex | grep -i -e sms -e bluetooth -e install -e PackageManager -e Datagram -e Telephony -e nfc -e exec
readelf -d libcoser.so?
i開頭的命令主要用來獲取各種信息
i??
a開頭的命令用于分析文件
a??
VV/vv命令進(jìn)入圖形化界面
大寫的VV進(jìn)入圖形化模式(鍵盤h、j、k、l按鍵移動(dòng)圖像)使用p/P切換圖形模式,空格切換文本圖形模式,文本下可以用p切換模式,小寫的vv用來粗略瀏覽函數(shù)信息?
按鍵盤q可以退出圖形化界面,回到shell
首先rabin2加上-I參數(shù)來讓rabin2打印出二進(jìn)制文件的系統(tǒng)屬性、語言、字節(jié)序、框架、以及使用了哪些加固技術(shù)
rabin2 -I 文件名
r2 filename加載文件
r2 文件名
直接使用r2 filename進(jìn)入程序。使用-d選項(xiàng)進(jìn)入調(diào)試模式,輸入!在調(diào)試的時(shí)候可以看到歷史操作記錄
使用ie命令手動(dòng)打印出入口點(diǎn)
aaa分析程序中所有函數(shù),分析前radare2識(shí)別不了函數(shù),分析后就可以正常打印函數(shù)代碼了(pdf打印函數(shù)代碼),aa命令只分析主函數(shù)
aa或者aaa進(jìn)行細(xì)致的分析
分析完成之后,r2會(huì)將所有有用的信息和特定的名字綁定在一起,比如區(qū)段、函數(shù)、符號(hào)、字符串,這些都被稱作'flags',flags被整合進(jìn),一個(gè)flag 是所有類似特征的集合
fs查看所有的flag
fs imports; f
打印出imports下面的信息
為了獲取更多的信息,iz命令可以再列出數(shù)據(jù)段里的字符串?
axt @@ str.*
'axt'命令用來在data/code段里找尋某個(gè)地址相關(guān)的引用
'@@'就像一個(gè)迭代器,用來在地址空間里不斷地匹配后面一系列相關(guān)的命令
'str.*' 是一個(gè)通配符,用來標(biāo)記所有以 'str.'開頭的信息,不光會(huì)列出字符串標(biāo)志,同時(shí)也包括函數(shù)名,找到它們到底在哪里以及何處被調(diào)用。
radare2分析出來哪些函數(shù)
通過afl命令列出所有的函數(shù)。通過v命令進(jìn)入可視化界面。包括流程圖、匯編代碼、函數(shù)、符號(hào)等信息
afl顯示主函數(shù),有時(shí)候不需要分析整個(gè)二進(jìn)制文件,或者有個(gè)函數(shù)radare2沒有識(shí)別出來可以af來分析該函數(shù)
s function跳轉(zhuǎn)到想跳轉(zhuǎn)的位置
s?entry0
指令定位到entry0函數(shù)入口處
pdf查看函數(shù)匯編代碼
pdf輸出反匯編代碼,分析函數(shù)的執(zhí)行流程
pd x打印匯編信息x條
pdf@sym.JNI_OnLoad進(jìn)行跳轉(zhuǎn),自動(dòng)跳轉(zhuǎn)到JNI_OnLoad函數(shù)的反匯編部分
ahi s 是用來設(shè)置字符串特定的偏移地址,@@是一個(gè)迭代器,可以用來接受后面輸入的多個(gè)參數(shù),執(zhí)行完這條命令后,圖形視圖會(huì)自動(dòng)刷新
ood?進(jìn)入調(diào)試模式
VV/vv進(jìn)入圖形化界面
大寫的VV進(jìn)入圖形化模式(鍵盤h、j、k、l按鍵移動(dòng)圖像)使用p/P切換圖形模式,空格切換文本圖形模式,文本下可以用p切換模式,小寫的vv用來粗略瀏覽函數(shù)信息?
"wa xxx"修改匯編指令為xxx
"wa nop;nop;nop;nop;"
px表示打印16進(jìn)制數(shù),默認(rèn)從當(dāng)前位置開始,參數(shù)控制打印的字節(jié)數(shù)
px 10?
pdc反匯編函數(shù)?
afx查看調(diào)用函數(shù)?
?可以查看幫助,這個(gè)工具非常強(qiáng)大,需要多實(shí)踐學(xué)習(xí)?
afl-+jni
s 0x00001d30
pdf?
afl
s 0x000019b8
pdg?
VV @ sym.Java_com_ogaclejapan_smarttablayout_utils_Entry_handleNativeConfig?
pdf @ sym.Java_com_ogaclejapan_smarttablayout_utils_Entry_handleNativeConfig?
afv表示a(分析)f(函數(shù))v(變量), 可以看到局部變量
PEDA是GDB插件
PEDA是為GDB設(shè)計(jì)的一個(gè)強(qiáng)大的插件,全稱是Python Exploit Development Assistance for GDB。它提供了很多人性化的功能,比如高亮顯示反匯編代碼、寄存器、內(nèi)存信息,提高了debug的效率。同時(shí),PEDA還為GDB添加了一些實(shí)用的命令,比如checksec可以查看程序開啟了哪些安全機(jī)制等等
pip install peda
git clone https://github.com/longld/peda.git ~/peda
echo "source ~/peda/peda.py" >> ~/.gdbinit
aslr顯示/設(shè)定GDB的ASLR(地址空間配置隨機(jī)加載)設(shè)置?
file libploader.so附加文件
checksec檢查二進(jìn)制文件的各種安全選項(xiàng)
dumpargs函數(shù)將要被調(diào)用時(shí),顯示將要被傳入函數(shù)的所有參數(shù)(默認(rèn)會(huì)在反匯編代碼下方自動(dòng)顯示)
dumprop在給定內(nèi)存范圍中Dump出所有ROP gadgets
PEDA用法總結(jié)
https://blog.csdn.net/SmalOSnail/article/details/53149426
peda的使用
https://www.jianshu.com/p/283b5466684b
總結(jié)
以上是生活随笔為你收集整理的scanner怎样回到文件开头_Radare2逆向分析dex/so/二进制等文件的使用方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python封装的好处_Python之浅
- 下一篇: uml识别事件表格_LOPA分析:使能条