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