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

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

最佳答案

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

最简单的方法是:

r2 -d program arg1 arg2 arg3
  • r2 是radare2的别名。
  • -d 告诉radare2调试可执行文件。
  • arg1..3 是radare2传递给可执行文件的参数。

  • 另一种方法是在radare2 shell中使用ood命令:

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

    您还可以使用反引号调用带有动态参数的ood。例如,我们要使用系统文件中的内容作为参数来调试程序:
    ood `!cat file.txt`
    

    假设file.txt的内容是'foo bar',所以这等同于执行ood foo bar
  • 反引号用于传递radare2命令的输出。
  • ! 正在像system(3)一样运行给定命令。

  • 将参数传递给radare2调试程序的另一种方法是使用rarun2概要文件:
    $ r2 -R profile.rr2 -d program
    $ cat profile.rr2
    #!/usr/bin/rarun2
    arg1=foo
    arg2=bar
    
  • -R [rarun2]指定要加载的rarun2配置文件。
  • 08-05 12:12