首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使radare2接受十六进制输入

如何使radare2接受十六进制输入
EN

Stack Overflow用户
提问于 2019-03-02 17:50:12
回答 1查看 1.1K关注 0票数 2

目前,我正在radare2中调试一个名为"test“的C程序,我想知道是否有任何方法可以通过radare2发送十六进制字符作为输入。我的意思是,当您在radare2之外运行某些东西时,您可以很容易地执行这样的操作,将十六进制值作为输入发送到一个可执行文件中:

代码语言:javascript
复制
$ python -c "print('\x42\x97\x53\x8e\x46\x56')" | ./test

但是,当我在radare2中以调试模式打开文件并试图将十六进制值输入我的程序时,它没有将以"\x“开头的字符视为十六进制字符,而是将每个字符视为实际的ascii输入字符。我可以在radare2中复制上面的命令吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-08 15:51:25

环境:

  • radare2 : radare2 4.2.0-git 23519 @ linux-x86-64 git.4.1.1-84-g0c46c3e1e提交: 0c46c3e1e30bb272a5a05fc367d874af32b41fe4构建:2020-01-08_09:49:06
  • 系统:Ubuntu18.04.3 LTS

解决方案:

  • 要在radare2中重新创建所描述的功能,我们可以使用两个radare2命令,并向输入字符串中添加额外的转义字符。
    • 命令一: doo #在调试模式下用提供的参数重新打开二进制文件。
    • 命令二: dc #继续执行
    • 输入中的附加转义字符:"\x54\x65\x73\x74“-> "\x54\x65\x73\x74”

示例:

  • 将十六进制值传递给/bin/echo:
代码语言:javascript
复制
user@host:~$ echo -e "\x54\x65\x73\x74"
Test
  • 在radare2中尝试同样的事情:
代码语言:javascript
复制
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]>
  • 再次使用radare2,但附加转义字符("\x54“-> "\x54"):
代码语言:javascript
复制
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]>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54961321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档