被一个python -c 打印命令搞糊涂了 "\xef\xbe\xad\xde" 是什么意思?
Confused by a python -c printing command "\xef\xbe\xad\xde" what does it mean?
我正在阅读 "Hacker's Playbook 2" 并阅读了一些关于二进制利用的内容,并尝试使用一些 C 代码进行 ssh 游戏,如果你利用这些,你将获得更高级别的密码。但是我对这本书的所有者使用的python打印命令感到非常困惑,希望你们能解释一下。看看:
the C code and requirements of the game
the confusing python printing statement
我试图通过添加两张图片来尽可能地解释它,你可以看到让我感到困惑的部分是:"\xef\xbe\xad\xde"
我希望我说清楚了,谢谢 return :)
在 Python 字符串中,您可以通过以十六进制 (base-16) 表示法给出 ASCII、ISO Latin-1 或 Unicode 序号值来指定字符。为此,您在字符串中包含 "\xHH"
形式的子字符串,其中 HH
是十六进制数。例如,要在字符串中包含回车 return (CR) 和换行 (LF) 字符,您可以编写 "My string\x0D\x0A"
。 16进制的0D对应十进制的13,是回车的ASCII码return,0A对应的是10,是换行
在这种情况下,本书作者指定了 Latin-1 代码点 "\xEF"
(十六进制 EF = 十进制 239)、"\xBE"
(190)、"\xAD"
(173)和 "\xDE"
(222)。选择它们显然是为了具有喜剧价值,因此他的恶作剧结果可以显示为 "DEADBEEF"
.
我正在阅读 "Hacker's Playbook 2" 并阅读了一些关于二进制利用的内容,并尝试使用一些 C 代码进行 ssh 游戏,如果你利用这些,你将获得更高级别的密码。但是我对这本书的所有者使用的python打印命令感到非常困惑,希望你们能解释一下。看看:
the C code and requirements of the game
the confusing python printing statement
我试图通过添加两张图片来尽可能地解释它,你可以看到让我感到困惑的部分是:"\xef\xbe\xad\xde"
我希望我说清楚了,谢谢 return :)
在 Python 字符串中,您可以通过以十六进制 (base-16) 表示法给出 ASCII、ISO Latin-1 或 Unicode 序号值来指定字符。为此,您在字符串中包含 "\xHH"
形式的子字符串,其中 HH
是十六进制数。例如,要在字符串中包含回车 return (CR) 和换行 (LF) 字符,您可以编写 "My string\x0D\x0A"
。 16进制的0D对应十进制的13,是回车的ASCII码return,0A对应的是10,是换行
在这种情况下,本书作者指定了 Latin-1 代码点 "\xEF"
(十六进制 EF = 十进制 239)、"\xBE"
(190)、"\xAD"
(173)和 "\xDE"
(222)。选择它们显然是为了具有喜剧价值,因此他的恶作剧结果可以显示为 "DEADBEEF"
.