前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >radare2介绍及简单使用

radare2介绍及简单使用

作者头像
安恒网络空间安全讲武堂
发布2018-03-26 18:32:27
9.6K0
发布2018-03-26 18:32:27
举报

本文作者: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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 恒星EDU 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
代码审计
代码审计(Code Audit,CA)提供通过自动化分析工具和人工审查的组合审计方式,对程序源代码逐条进行检查、分析,发现其中的错误信息、安全隐患和规范性缺陷问题,以及由这些问题引发的安全漏洞,提供代码修订措施和建议。支持脚本类语言源码以及有内存控制类源码。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档