我正在尝试做一个挑战,我试图定位的函数的内存地址位于
0x400abd
中,当我在 python 中使用 "\xbd\x0a\x40"
进行缓冲区溢出时,0x0a
被解释为 0x00
,使地址0x4000bd
。
我试图找出它是什么,我知道这是因为
0x0a
是\n
,但我不知道如何解决它。我一直在寻找,但所有的问题是 \x0a
不被解释为 \n
但我想要相反的。抱歉,如果答案已经得到解答,我只是找不到它,我已经寻找了几个小时。
这可能是字节字符串和 Unicode 字符串之间的问题。
字节字符串,如
b'hello\ngoodbye'
将每个字符解释为 ascii 字节。 'h' 是 ord(b'h')
或 104。\n
是 10。请注意,r"\n"
是 \
、n
的两个字符序列。
一旦接触到 Unicode 字符串,您就会遇到许多技巧,包括处理真实操作系统行尾(字符 10)和其他字符(字符 10 然后字符 13)之间的转换。翻译可能是造成问题的原因。