通过调试一个crackme来学习radare
拿到一个crackme,首先查看二进制信息。
我们首先使用-i标识调用rabin2,打印出二进制信息,如操作系统,语言,体系结构
运行起来看看
假设crackme需要参数才能运行
还是运行失败
接下来使用radare2
默认显示了入口点
以i开头的相关命令可以用i?进行查看
I命令的目的是从打开的文件中获取操作信息
接下来我们进行分析。输入a?来看看分析选项
我们选择aaa进行分析
运行fs列出标识
我们可以使用flag ;f来进行查看标记空间
数据部分中的iz-列表字符串
Izz-在整个二进制文件中搜索字符串
Afl:分析函数列表
接下里看看反汇编
V可以进入视图模式,使用p\P在两个模式之间进行切换
Hjkl可以进行上下左右切换
最后几张图的逻辑:
关注beet rot13函数
在图形化界面时可以看到地址是‘ebp – local_88h’ 。 ‘local_88h’ 就是十进制的 136,我们可以输入 :之后再输入 ? 0x88 来执行 r2 内置的命令.
二进制文件将我们传入的参数来和经过 rot13 处理后的 ‘Megabeets’ 作比较
因此在调试模式下输入Zrtnorrgf时会反馈success