介绍
radare2是一款强大的开源命令行逆向工具,它可以反汇编、调试、分析和操作二进制文件。radare2与OD, IDA, Binary Ninja,Ghidra,hopper各有优点。
安装radare2
Radare2的开发非常快,该项目每天都在发展,因此建议在稳定版本上使用当前的git版本。有时稳定版本不如当前git版本稳定!
1 | $ git clone https://github.com/radare/radare2.git$ cd radare2 |
如果您不想安装git版本,或者想要编译好的(Windows,OS X,iOS等)的二进制文件,请查看radare2网站上的 下载页面。
更新radare2
强烈建议始终使用git存储库中的最新版本的r2。从git更新r2版本所需要做的就是执行:
1 | $ ./sys/install.sh |
使用方法
1 | r2 -h |
常用命令:
r2 filename
。然后执行以下命令:aaa
–分析二进制文件afl
–列出功能,确保可以识别main或sym.mainaf @ sym.main
–分析main函数pdf @ sym.main
–打印main函数V
–进入可视模式space
–在可视模式和图形模式之间切换
获取程序基本信息
rabin2允许从二进制文件中提取信息,包括节,标题(headers)、导入表、字符串、入口点等,并支持几种格式结果导出。rabin2能够解析许多文件格式,例如ELF,PE,Mach-O,Java CLASS。使用-I
参数,显示二进制信息,例如操作系统,语言,字节序,体系结构,缓解措施(canary,pic,nx)等。
1 | $ rabin2 -I filename |
如果在radare2的交互式调试模式下,只需要输入i
即可查看这些信息。
调试程序
使用如下命令启动并调试程序,会打印一些Tips信息,并且显示当前所在地址。
1 | $ r2 ./megabeets_0x1 |
执行fo
命令,你将得到一些彩蛋。
查看帮助命令
在终端输入?
可获得功能命令的帮助。
1 | [0x08048370]> ? |
在某个命令后添加?
,可以获得其所有的子命令和相关命令。如i命令可查看程序信息,其实它是rabin2
提供的功能,我们查看其所有字命令参数:
1 | [0x08048370]> i? |
查看程序调试信息
入口点
1 | [0x08048370]> ie |
命令行模式下,可以直接使用 查看
1 | $ rabin2 -e filename |
分析程序
a命令是一个分析程序的命令,它实际是r2 -A filename
命令提供的功能。如
1 | [0x08048370]> aaa (aaaa) |
查看字符串
iz
:在数据节中列出字符串izz
:在整个二进制文件中搜索字符串
1 | [0x08048370]> iz |
命令行模式下,可以直接使用 查看
1 | $ rabin2 -z filename |
Reference
- Post title:radare2入门
- Post author:ssooking
- Create time:2020-01-03 17:54:00
- Post link:https://ssooking.github.io/2020/01/radare2入门/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.