ls
我可以运行,radare -d /bin/ls
但是,如何为
ls
提供参数?就像我想运行radare -d /bin/ls -1
一样。我已经尝试过不加引号的操作,它会返回radare2:无效的选项-'1'
我也尝试过引用整个内容
radare2 -d "/bin/ls -1"
Could not execvp: No such file or directory
[w] Cannot open 'dbg:///bin/ls\ -1' for writing.
Radare2book的“基本调试器会话”说,“或者您可以通过指定其名称和参数来启动新程序”,但目前尚不清楚如何指定参数。
#1 楼
好像radare在传递以破折号(“-”)开头的参数时遇到问题。请考虑解决问题。无论如何,您可以通过多种方式将参数传递给radare2调试程序。
最简单的方法是:
r2 -d program arg1 arg2 arg3
r2是radare2的别名。
-d告诉radare2调试可执行程序。
arg1 ..3是radare2传递给可执行文件的参数。
例如:
$ r2 -d echo Hello, World!
Process with PID 4755 started...
= attach 4755 4755
bin.baddr 0x00400000
Using 0x400000
asm.bits 64
-- You haxor! Me jane?
[0x7f9b1b000c30]> dc
Hello, World!
另一种方法是在radare2内使用
ood
命令shell:执行
radare2 ./program
,然后键入ood arg1 arg2 arg3
。 ood
命令用于“在调试器模式下重新打开(带有args)”。$ r2 /bin/ls
-- Use V! to enter into the visual panels mode (dwm style)
[0x004049a0]> doo -la
Process with PID 4757 started...
File dbg:///bin/ls -la reopened in read-write mode
= attach 4757 4757
4757
[0x7f5f36600c30]> dc
total 206
drwxrwxrwx 0 root root 512 Feb 13 04:25 .
drwxrwxrwx 0 root root 512 Jan 16 05:30 ..
还可以使用反引号调用带有动态参数的
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配置文件。
#2 楼
rarun2
这属于
rarun2
的权限,此内容未在radare2书中进行记录,而是在radare2探索中进行了记录。从man rarun2
开始rr2
(rarun2
)配置文件接受以下指令,描述为键=值条目,并以以'#'开头的行定义注释。arg[0-N]
传递给程序的参数N的设置值,因此您可以简单地通过创建配置文件或执行此配置来运行它
r2 -R arg0="-1" -d /bin/ls