C语言 这个叫“\x30\xff\xff\x31\xff\xff\xff”的东西是什么?

xxslljrj  于 9个月前  发布在  其他
关注(0)|答案(1)|浏览(104)

各位!我现在正在学习C语言。现在,当我为我的手机访问XDA Developers时,我偶然发现了以下代码:

char next_ptr[8] = "\x30\xff\xff\x31\xff\xff\xff\xff";

字符串
这是像一个十六进制代码数组还是什么?然而,我注意到,当我数有多少这些值是在括号中有相同的值与char next_ptr[8].和beacause我记得这个词“shellcode”,在搜索词shellcode在谷歌与图像,我注意到,这里有一些代码片段的图像,有这些形式.
我试着把它们转换成这样的文本:
将其转换为原始形式:x1c 0d1x
将其转换为原始的十六进制形式:

我不知道这个语法的名字是什么,所以我没有搜索它,请给我一些启发。谢谢!

v1l68za4

v1l68za41#

这些被称为 * 十六进制转义序列 *。它基本上只是一种可选的写法:

char next_ptr[8] = {0x30, 0xff, 0xff, 0x31, 0xff, 0xff, 0xff, 0xff};

字符串
(The字符串文字的空终止符将被丢弃。)
这与shellcode无关。
同样值得注意的是,将0xFF存储在char中是幼稚的,因为它不能保证足够大以存储一个值,因为char具有实现定义的符号性,并且可能只能存储最大为0x7F的正值。

相关问题