学习r2
逆向 学习r2
https://www.megabeets.net/a-journey-into-radare-2-part-1/
RABIN2 — Binary program info extractor
$ rabin2 -I megabeets_0x1
stripped false
没有剥离符号表static false
//所以是动态链接
r2 //radare2
ie
[0x08048370]> ie
ie 命令可以打印出程序的入口点
?
在任何一个命令后面添加 ? 来获得更多的子命令信息:
[0x08048370]> i?
aa
使用 ‘aa’ 命令来分析文件
[0x08048370]> a?
aa?
aaa[?] autoname functions after aa (see afna)
flag
flag 是所有类似特征的集合,展示所有的 flag ,用 ‘fs’ 命令
[0x08048370]> fs
f
f list flags (will only list flags from selected flagspaces
[0x08048370]> fs imports; f
iz
iz – 列出数据段里的字符串
axt
[0x08048370]> axt @@ str.*
axt [addr] find data/code references to this address
@@ # foreach iterator command:
x
| x @@ sym.* run ‘x’ over all flags matching ‘sym.’ in current flagspace
s
s # Help for the seek commands. See ?$? to see all variables
afl
af?
用 ‘afl’ 指令,这个指令代表着分析函数列表(Analyze Functions List).
s main
用 ‘pdf’(输出反汇编代码)
m
m
V
V 视图模式
p进入下一个模式,q退出视图模式
shell 里输入 VV来进入图形模式
Left/Down/Up/Right = h/j/k/l
视图帮助 ?
视图模式直接跳转到 beet 函数
上面说过的方框中的数字吗?这里直接按 3 就可以了
图形模式,使用 g 命令跳转到一个函数
gd 命令,d 就是每一个跳转或者调用代码旁边的 字母
快速跳转命令 o
返回命令q
- 图形模式执行命令
- ? 0x88
寻找函数
f sym.
s sym.beet
pdf @ sym.beet 命令,‘@’ 表示临时查找
ahi
:> ahi s @@=0x080485a3 0x080485ad 0x080485b7
ahi s set base to string (1)
ahi s 是用来设置字符串特定的偏移地址
@@是一个迭代器,可以用来接受后面输入的多个参数,执行完这条命令后
r
r 图形模式刷新
rahash2
rahash2 包含很多种算法来求证一个文件或者字符串的校验值,具体的用法请使用 ‘man rahash2 ‘.
在r2里执行命令:!rahash2 -E rot -S s:13 -s “Megabeets\n”
00
oo reopen current file
ood [args] # reopen in debug mode (with args)
dc
dc Execution continuation commands
| dc Continue execution of all children