Debugging 雷达2:如何将参数传递给被调试者?

Debugging 雷达2:如何将参数传递给被调试者?,debugging,parameter-passing,Debugging,Parameter Passing,我想用radare2调试程序“id3v2-c hallo test.mp3”。 如何将参数“-c hallo test.mp3”传递给radare2 我只在rarun2中找到了一些东西,但是当我执行r2-d rarun2程序=/usr/bin/id3v2 arg1=-c arg2=hallo arg3=test.mp3时,调试器在rarun2中,而不是id3v2中。您可以通过多种方式将参数传递给radare2调试过的程序 最简单的方法是: r2 -d program arg1 arg2 arg3

我想用radare2调试程序“id3v2-c hallo test.mp3”。 如何将参数“-c hallo test.mp3”传递给radare2


我只在rarun2中找到了一些东西,但是当我执行r2-d rarun2程序=/usr/bin/id3v2 arg1=-c arg2=hallo arg3=test.mp3时,调试器在rarun2中,而不是id3v2中。

您可以通过多种方式将参数传递给radare2调试过的程序

最简单的方法是:

r2 -d program arg1 arg2 arg3
  • r2是radare2的别名
  • -d告诉雷达2调试可执行程序
  • arg1..3是radare2传递给可执行文件的参数
另一种方法是在雷达2外壳内使用
ood
命令:

执行
radare2./program
,然后键入
ood arg1 arg2 arg3
ood
命令用于“在调试器模式下重新打开(使用args)”

您还可以使用backticks使用动态参数调用
ood
。例如,我们希望使用系统上文件的内容作为参数来调试程序:

ood `!cat file.txt`
假设file.txt内容为“foo-bar”,那么这相当于执行
ood-foo-bar

  • 反勾号用于传递radare2命令的输出
  • 正在运行系统(3)中的给定命令
另一种向radare2调试程序传递参数的方法是使用
rarun2
profile文件:

$ r2 -R profile.rr2 -d program
$ cat profile.rr2
#!/usr/bin/rarun2
arg1=foo
arg2=bar
  • -R[rarun2]指定要加载的rarun2配置文件

这是一个更好的问题,因为如果检查man文件,我认为不再是“-R”,而是“-R”了:“-R rarun2指定生成调试程序时要使用的dbg.profile rarun2 profile”和“-R rarun2指令:指定自定义rarun2指令,而不必创建rarun2配置文件”