首页
社区
课程
招聘
[翻译]radare2高阶
发表于: 2018-7-2 10:21 4927

[翻译]radare2高阶

2018-7-2 10:21
4927

radare2高阶

预备知识

关于Radare2:

radare2是一个开源的逆向工程和二进制分析框架,包括反汇编、分析数据、打补丁、比较数据、搜索、替换、虚拟化等等,同时具备超强的脚本加载能力,它可以运行在几乎所有主流的平台(GNU/Linux, .Windows *BSD, iOS, OSX, Solaris…)并且支持很多的cpu架构以及文件格式。 radare2工程是由一系列的组件构成,这些组件可以在 radare2 界面或者单独被使用–比如我们将要在接下来实验中使用到的rahash2, rabin2, ragg2三个组件,所有这些组件赋予了 radare2 强大的静态以及动态分析、十六进制编辑以及溢出漏洞挖掘的能力。

通过radare2来解决GameBoy ROM挑战的一个项目:simple.gb

任务描述:模拟器中运行,熟悉二进制文件。

Kali:

首先我们在radare2打开二进制文件,检查它的架构、格式


(i命令给出关于二进制文件的信息,~是r2内部的grep命令)

由上图可以看出这是一个GameBoy的ROM,那么在阅读了它的一些指令集之后我们该去完成这次挑战了

Win:

第一件事情就是在GameBoy模拟器中打开这个ROM

首先需要安装模拟器










这是一个简单的游戏,通过使用箭头键,可以分别增加/减少5位数。我们只需要找到正确的密码就可以了

随机选择数字,然后按回车键,会发现提示fail


接下来我们开始分析代码并搜索检查输入的函数

任务描述:分析二进制文件

切换到kali


(izzq会打印出存在于整个二进制文件中的字符串)


现在我们知道了fail的地址,接下来我们找到引用它的地方。我们使用grep搜索查找


(pd代表打印出反汇编代码print disassembly)

我们可以看到在0x2e4引用,所以我们搜索这个地址,并打印该函数:



[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2019-1-24 13:35 被admin编辑 ,原因:
上传的附件:
收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 47147
活跃值: (20445)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
图片没有了,建议直接在论坛本地帖一份。
2018-7-2 11:32
0
游客
登录 | 注册 方可回帖
返回
//