内存位置包括\x0a,python解释为\x00

问题描述 投票:0回答:1

我正在尝试做一个挑战,我试图定位的函数的内存地址位于

0x400abd
中,当我在 python 中使用
"\xbd\x0a\x40"
进行缓冲区溢出时,
0x0a
被解释为
0x00
,使地址
0x4000bd

我试图找出它是什么,我知道这是因为

0x0a
\n
,但我不知道如何解决它。我一直在寻找,但所有的问题是
\x0a
不被解释为
\n
但我想要相反的。抱歉,如果答案已经得到解答,我只是找不到它,我已经寻找了几个小时。

python memory buffer-overflow exploit
1个回答
0
投票

这可能是字节字符串和 Unicode 字符串之间的问题。

字节字符串,如

b'hello\ngoodbye'
将每个字符解释为 ascii 字节。 'h' 是
ord(b'h')
或 104。
\n
是 10。请注意,
r"\n"
\
n
的两个字符序列。

一旦接触到 Unicode 字符串,您就会遇到许多技巧,包括处理真实操作系统行尾(字符 10)和其他字符(字符 10 然后字符 13)之间的转换。翻译可能是造成问题的原因。

© www.soinside.com 2019 - 2024. All rights reserved.