Radare2- 如何在可视模式下查看标准输出

逆向工程 雷达2
2021-06-19 07:13:03

如何以可视模式显示任何标准写入。

例如,如果我运行dc命令,它会正常运行程序并正常显示所有文本。但是如果我进入可视模式V< enter >并使用它S来运行程序,它显示的输出可能是 1/10 秒: 我在视觉模式下看到的

我可以让它显示更长时间,或者输入一个命令并查看到目前为止已打印到 stdout 的内容吗?

1个回答

恐怕没有直接的方法可以做到这一点。您需要使用rarun2或radare 的dd命令。

我更喜欢 rarun2 方式,它更灵活和简单。

man rarun2输出:

  Debugging a program redirecting io to another terminal

   ## open a new terminal and type 'tty' to get
   $ tty ; clear ; sleep 999999
   /dev/ttyS010

   ## in another terminal run r2
   $ r2 -e dbg.profile=foo.rr2 -d ls

   ## or you can use -R option
   $ r2 -R foo.rr2 -d ls
   $ cat foo.rr2
   #!/usr/bin/rarun2
   stdio=/dev/ttys010

有关分步指南和更详细的答案,请在此处查看我对类似问题的回答

dd 可用于在运行时更改文件描述符:

[0x00000000]> dd?
|Usage: dd Descriptors commands
| dd                   List file descriptors
| dd <file>            Open and map that file into the UI
| dd-<fd>              Close stdout fd
| dd*                  List file descriptors (in radare commands)
| dds <fd> <off>       Seek given fd)
| ddd <fd1> <fd2>      Dup2 from fd1 to fd2
| ddr <fd> <size>      Read N bytes from fd
| ddw <fd> <hexpairs>  Write N bytes to fd