radare2 nb!!!
介绍
radare2是类unix逆向框架和命令行工具箱
- rax2 数值转换
- rasm2 汇编和反汇编
- rabin2 查看文件格式
- radiff2 对文件进行diff
- ragg2/ragg2cc 方便生成shellcode
- rahash2 各种密码hash算法
- radare2 整合上面工具
此外还有radare2其它的套件
使用方法
rax2
1 | rax2 -h |
里面说的很明白了
rasm2
1 | rasm2 -L | grep head # 列出前几项支持的架构 |
rabin2
1 | rabin2 -I a.out # 显示文件信息 |
radiff2
1 | radiff2 -h |
ragg2/ragg2cc
1 | int main(){ |
1 | ragg2 -ax86 -b32 1.c |
还可以编译.r文件(ragg2语言)
rahash2
1 | rahash2 -h |
radare2
1 | r2 bin # 进入程序,-d进入debug模式 |
指令格式
1 | [.][times][cmd][~grep][@[@iter]addr!size][|>pipe] ; |
显示某一个指令的帮助
1 | 命令? |
从当前位置打印十六进制
1 | px |
1 | px @ main # 表示从main开始执行px,main也可以是地址 |
a进行分析,aaa进行完整分析,aaaa添加实验性特性
pdf打印函数代码
1 | pdf @ main # 打印main函数的代码,main也可以是某个地址 |
radare2没识别的函数可以用af来识别
1 | af @ addr |
s用于跳转到指定位置
pd用于打印汇编信息
pdc可以用于查看反编译代码
VV进入图形化模式
?用于显示帮助信息
可以发现键位是类似于vim的
p/P切换图形模式的显示模式
:输入命令,hjkl移动图形
!在调试时很有用,显示了各种信息
空格切换图形/文本模式
文本模式下可以用p来切换视图
r2patch程序
1 | r2 -w bin # 以可写模式载入bin文件,或者r2内使用e io.cache=true |
w系列用于patch文件
- wa可以用于使用汇编指令patch文件,wa?查看帮助
- wx用于十六进制patch
可视化patch
Vp,然后输入A就可以patch了
输入/ 用于搜索
ax用于管理交叉引用,/r 用于搜索
文档说$可以反编译,我没有= =
另外可以使用esil语言模拟执行
参考资料
[1] Radare2使用全解