-
-
[翻译]radare2高阶
-
发表于:
2018-7-2 10:21
4928
-
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编辑
,原因: