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使用全解