通过实例学习radare2

通过调试一个crackme来学习radare

拿到一个crackme,首先查看二进制信息。
我们首先使用-i标识调用rabin2,打印出二进制信息,如操作系统,语言,体系结构
通过实例学习radare2_第1张图片

运行起来看看
在这里插入图片描述

假设crackme需要参数才能运行

在这里插入图片描述
还是运行失败

接下来使用radare2
在这里插入图片描述
默认显示了入口点
在这里插入图片描述

以i开头的相关命令可以用i?进行查看
通过实例学习radare2_第2张图片
I命令的目的是从打开的文件中获取操作信息

接下来我们进行分析。输入a?来看看分析选项
通过实例学习radare2_第3张图片

我们选择aaa进行分析

在这里插入图片描述

运行fs列出标识
在这里插入图片描述

我们可以使用flag ;f来进行查看标记空间

在这里插入图片描述

数据部分中的iz-列表字符串
Izz-在整个二进制文件中搜索字符串

通过实例学习radare2_第4张图片通过实例学习radare2_第5张图片

Afl:分析函数列表
通过实例学习radare2_第6张图片

接下里看看反汇编
通过实例学习radare2_第7张图片

V可以进入视图模式,使用p\P在两个模式之间进行切换
通过实例学习radare2_第8张图片
Hjkl可以进行上下左右切换
在这里插入图片描述

通过实例学习radare2_第9张图片

在这里插入图片描述通过实例学习radare2_第10张图片在这里插入图片描述
通过实例学习radare2_第11张图片

最后几张图的逻辑:
关注beet rot13函数
在图形化界面时可以看到地址是‘ebp – local_88h’ 。 ‘local_88h’ 就是十进制的 136,我们可以输入 :之后再输入 ? 0x88 来执行 r2 内置的命令.
二进制文件将我们传入的参数来和经过 rot13 处理后的 ‘Megabeets’ 作比较

因此在调试模式下输入Zrtnorrgf时会反馈success

你可能感兴趣的:(通过实例学习radare2)