radare2介绍及简单使用

2018-03-26 18:32:27 浏览数 (1)

本文作者:binlmmhc

0x01---radare2介绍

最近在看别人的病毒分析报告的时候,看到别人使用了radare2这个开源二进制分析平台,发现这个平台在我们CTF逆向解题中还是很好用的。

radare2刚开始只是一个取证工具,后来逐渐加入了一系列二进制分析和调试工具,就成为了command界面下很好的二进制分析工具了。

0x02---radare2安装以及工具预览

radare2是可移植,在多系统平台上运行,如下

  • Rpi3-arm32
  • macOS-x86-64
  • Termux/Android-arm64
  • VoidLinux-x86-64
  • Windows-x86-64

如果是在windows上的,我们可以在官网取得安装http://www.radare.org/r/,如果是其他平台的可以直接拉取github上面的仓库,然后根据他的安装方法安装即可,推荐使用sys/install.sh安装。

我两个系统平台都安装了,现在在windows下操作,安装完毕后会有一些列工具,如下,安装完成之后将这个目录添加到系统环境变量下,就可以随时调用了。

  • rabin2->查看文件格式的
  • radiff2->比较文件不同的
  • rahash2->各种密码算法,hash算法集成
  • rasm2->汇编和反汇编
  • ragg2->开发shellcode工具(radare2自己编写的编译器)
  • radare2->整合了所有工具

0x03---工具详细介绍

0x0301---rabin2

这个工具是用来获取文件信息的,我们可以获取二进制文件的架构,平 台,区块等各种信息。

我们可以使用rabin2 -I ./Easy_CrackMe.exe来获取进本的二进制文件 信息,和获取入口点等。如下

0x0302---rahash2各种加密算法和hash函数

这个工具可以让我们快速对文件整体,对部分区块,对字符串等执行加密解密和 hash等各种操作。比如我们在下载一些文件时,需要快速比较文件的Hash,我们可以 用这个工具来快速生成各种hash

支持的算法如下,超级多。

我们给我们的exe来生成sha256和md5的hash,可以说相当方便了。

0x0303----rasm2

这个工具我们可以用来反汇编和汇编用,就用例子来说吧

0x0304---ragg2

这个是radare自己实现的编译器,用来快速开发shellcode等,所以学到后面高级的,还需要学习他的语言格式。

0x04---实战来学习radare2

这次从reversing.kr这个逆向网站上下载了第一个程序来进行学习。

我们逆向的时候基本都是IDA一打开,马上F5,就和代码审计差不多了。。。

拿到程序,我们先了解一下文件的基本信息

得到32位的GUI程序。

然后启动看一下

然后我们使用radare2这个集成工具来逆向这个程序

这个程序有很多的命令,所以使用radare2我们要记住很多命令,但是很多命令都是英

文缩写的。并且他的命令都是树级结构的,可以层层递进。

我们要让它分析一下程序,使用a 系列命令,让他自动分析输入aaa

好了分析完毕,现在我们先使用vv命令来粗略浏览一下函数列表

我们看到了0x401080位置这个地方的函数调用了GetDlgItemTextA这个API,我们先标 记一下这个函数。

但是我们还是先从entryo和main来看一下,entry0这个不用说了,是C/C 程序初始 化入口点。我们看一下main, 使用s 命令可以跳转到某个地址或者已经有了符号的函 数中去。然后我们使用pdf这个命令可以打印main这个函数的汇编代码。

除了汇编代码外,radare2还实现了IDA的类似F5功能,我们可以使用pdc命令来实现

还是挺不错的,然后还有图形界面,我们可以使用大写的VV命令来到图形界面

然后可以使用方向键或者HJKL来移动图形,我们在图形界面下输入$可以得到更清晰的 界面。

我们知道这个是一个GUI程序,我们看到了DialogBoxParamA这个函数,windows的GUI 程序,控件都是和相应的消息处理函数绑定一起的,我们看到了0x401020这个函数

s跳转到一个地址或者你认为的函数时,如果解析不了,可以使用af来分析一下函数

接下来我们看调用了GetDlgTemTextA这个关键信息,然后我们可以使用afx来看一下函

函数调用

可以看到0x00401080就是调用了上面API的函数地址,和我们之前标记的那个时一样

的。确定关键函数就是0x401080了

最后分析这个函数,挺简单的,都是字符串对比

先是对比第2位,然后对比34位,然后对比后面的,最后对比第一位

得到flag Ea5yR3versing

0x05---总结

这次主要是为大家介绍一下这个工具,更多的radare2的特性还需要大家下去挖掘,比如radare2还有web界面的视图,相当酷炫,还有脚本接口等来方便我们分析二进制文件。

Xrefs:https://radare.gitbooks.io/radare2book/content/analysis/code_analysis.html

Xrefs:http://reversing.kr

0 人点赞