我目前正在用radee2调试一个名为“ test”的C程序,我想知道是否有任何方式可以通过radee2输入十六进制字符作为输入。我的意思是,当您在radare2之外运行某些内容时,可以轻松地执行以下操作以将十六进制值作为输入发送到可执行文件中:
$ python -c "print('\x42\x97\x53\x8e\x46\x56')" | ./test
但是,当我在radare2中以调试模式打开文件并尝试将十六进制值输入到程序中时,它没有将以“ \ x”开头的字符视为十六进制字符,而是将每个字符视为实际的ascii输入字符。我可以在radare2中复制以上命令吗?
答案 0 :(得分:2)
环境:
解决方案:
示例:
user@host:~$ echo -e "\x54\x65\x73\x74"
Test
user@host:~$ r2 /bin/echo
[0x00001d10]> doo -e "\x54\x65\x73\x74"
Process with PID 13820 started...
= attach 13820 13820
File dbg:///bin/echo -e "\x54\x65\x73\x74" reopened in read-write mode
13820
[0x7ff1924ee090]> dc
x54x65x73x74
[0x7ff1924ee090]>
user@host:~$ r2 /bin/echo
[0x00001d10]> doo -e "\\x54\\x65\\x73\\x74"
Process with PID 17265 started...
= attach 17265 17265
File dbg:///bin/echo -e "\\x54\\x65\\x73\\x74" reopened in read-write mode
17265
[0x7fb080026090]> dc
Test
[0x7fb07fd18e06]>