radare2 常用操作总结
radare2 簡(jiǎn)介
radare2是一個(gè)用C語(yǔ)言編寫(xiě)的跨平臺(tái)的二進(jìn)制分析工具,支持ARM、MIPS、X86等平臺(tái),支持分析多種格式的二進(jìn)制文件如ELF、Mach-O、Fatmach-O, PE、PE+、 MZ、 COFF等,同時(shí)也支持多種操作系統(tǒng)如Windows (since XP)、GNU/Linux、GNU/Darwin、GNU/Hurd、Apple’s 等等,總之就是巨屌。
核心功能:
- 16進(jìn)制編輯器
- 調(diào)試器,可對(duì)源來(lái)自于磁盤(pán)、網(wǎng)絡(luò)連接、內(nèi)核驅(qū)動(dòng)程序、正在運(yùn)行的進(jìn)程進(jìn)行調(diào)試
- 匯編、反匯編
- 程序模擬
- 二進(jìn)制修補(bǔ)
- 數(shù)據(jù)分析比較、搜索、替換和可視化
結(jié)構(gòu)圖
常用命令總結(jié)
本文總結(jié)的常用命令只是對(duì)我我在實(shí)際使用過(guò)程中常用操作的總結(jié),僅供參考
官方手冊(cè)見(jiàn):https://book.rada.re/index.html
在radare2總獲取幫助的命令是"?",在命令模式下輸入一個(gè)命令并緊跟一個(gè)“?”就可以獲取這個(gè)命令的幫助信息
基礎(chǔ)命令
- 移動(dòng) :s
| s 0x10 | 移動(dòng)到當(dāng)前文件 0x10出 | |
| s +4 | 以當(dāng)前位置為基地址向前移動(dòng)4字節(jié) | |
| s - | 移動(dòng)到上一次在的位置 | |
| sf function | 移動(dòng)到function函數(shù)處 | |
| s? | 查看s命令幫助信息 |
-
sections 相關(guān)的
iS 打印二進(jìn)制文件中所有的段 om 打印二進(jìn)制文件中段的映射 -
打印: p
| px 0x10 | 以16進(jìn)制格式從當(dāng)前位置打印0x10個(gè)字節(jié),并以byte為單位顯示 | |
| pxw 0x10 | 以16進(jìn)制格式從當(dāng)前位置打印0x10個(gè)字節(jié),并以word為單位顯示 | |
| pd | 把當(dāng)前位置開(kāi)始的數(shù)據(jù)看做指令編碼反匯編并顯示 | |
| ps | 把當(dāng)前位置開(kāi)始的數(shù)據(jù)看做字符串并打印 | |
| pd @ 0x12006c874 | 臨時(shí)跳轉(zhuǎn)到0x12006c874執(zhí)行打印,并返回 | |
| p? | 查看p命令幫助信息 |
-
搜索: /
/w test 在當(dāng)前文件中搜索”test“字符串 /a move fp, sp 匯編move fp, sp,并在當(dāng)前文件中搜索 /m 在當(dāng)前文件中搜索magic,可以找出當(dāng)前二進(jìn)制文件中包含的其他文件 在搜索命中時(shí)自動(dòng)打印例子:
[0x12006c874]> e cmd.hit = pd 1 [0x12006c874]> /a lui gp, 0x5f Searching 4 bytes in [0x120658830-0x120a83ce0] hits: 0 Searching 4 bytes in [0x1206254a8-0x120658830] hits: 0 Searching 4 bytes in [0x120000000-0x1206154a4] hits: 105 0x120060d28 hit3_0 5f001c3c;-- hit1_0:;-- hit3_0:0x120060d28 5f001c3c lui gp, 0x5f ; '_' 0x120060d80 hit3_1 5f001c3c;-- hit1_1:;-- hit3_1:0x120060d80 5f001c3c lui gp, 0x5f ; '_' 0x120060dc8 hit3_2 5f001c3c;-- hit1_2:;-- hit3_2:0x120060dc8 5f001c3c lui gp, 0x5f ; '_' -
分析: a
radare2在打開(kāi)一個(gè)二進(jìn)制文件時(shí)處于效率考慮,不會(huì)默認(rèn)對(duì)二進(jìn)制文件進(jìn)行分析,需要用戶手動(dòng)分析
aaa 對(duì)打開(kāi)的二進(jìn)制文件進(jìn)行全面分析 af sym.main 對(duì)main函數(shù)進(jìn)行分析 -
二進(jìn)制信息:i
ie 顯示目標(biāo)文件entry的信息 ih 顯示目標(biāo)文件的Headers信息 iI 顯示目標(biāo)文件二進(jìn)制相關(guān)信息 is 顯示目標(biāo)文件的所有符號(hào) iS. 顯示當(dāng)前所在的Sention信息 it 計(jì)算目標(biāo)文件的hashes iM 顯示main函數(shù)的地址
可視化模式
radare2支持可視化模式,在可視化模式下很多操作和VIM相同。輸入V進(jìn)入可視化模式,輸入q退出可視化模式
| p | 切換顯示模式 | |
| Tab | 在當(dāng)前模式下,切換顯示的信息 | |
| j | 向下滾屏 | |
| k | 向上滾屏 | |
| : | 在可視化模式下使用命令(與VIM類(lèi)似) | |
| bF | 顯示函數(shù)列表 | |
| b1 | 進(jìn)入bit編輯模式 | |
| 1-9 | 跳轉(zhuǎn)到調(diào)用的函數(shù) | |
| 空格 | 打印函數(shù)的調(diào)用圖(需要先執(zhí)行aaa) |
可視化編輯
按c進(jìn)入cursor mode ,選中要修改的數(shù)據(jù),按i進(jìn)入編輯模式進(jìn)行修改
總結(jié)
以上是生活随笔為你收集整理的radare2 常用操作总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python图片添加好看的中文字体并根据
- 下一篇: bullet HashMap 内存紧密的