【发布时间】:2019-08-29 14:32:51
【问题描述】:
与本题相关:In gdb, how can I write a string to memory?
但是,我的问题是关于如何编写非 ASCII 字符,我遇到了麻烦。
看起来我不仅要指定我想写的字符数
set {char[<number of characters>]},但我似乎无法转义字符串中的字符。
考虑:
set {char [5]} 0x618204 = "ABCD"
这应该是等价的:
set {char [5]} 0x618204 = "ABC\x44"
没有错误,但这会将字符串完全视为其他内容,我什至不确定这是做什么的。
我怎样才能用这样的转义字符写一个字符串,我想要某种方式将任意字节写入内存,最好不需要事先告诉 GDB 我打算写多少字节。
我想要一些简单的东西,比如:
set 0x618204 = \x41\x42\x43\x44\x45
这应该将字节 0x41 0x42 0x43 0x44 0x45 写入内存,从地址 0x618204 开始。
我只是错过了正确的语法,还是不存在? GDB 是否有一些扩展可以做到这一点?全球环境基金,佩达?
【问题讨论】:
-
如果您可以将这些字节放入文件中,restore 命令可能会很有用。