各位!我现在正在学习C语言。现在,当我为我的手机访问XDA Developers时,我偶然发现了以下代码:
char next_ptr[8] = "\x30\xff\xff\x31\xff\xff\xff\xff";
字符串
这是像一个十六进制代码数组还是什么?然而,我注意到,当我数有多少这些值是在括号中有相同的值与char next_ptr[8]
.和beacause我记得这个词“shellcode”,在搜索词shellcode在谷歌与图像,我注意到,这里有一些代码片段的图像,有这些形式.
我试着把它们转换成这样的文本:
将其转换为原始形式:x1c 0d1x
将其转换为原始的十六进制形式:
我不知道这个语法的名字是什么,所以我没有搜索它,请给我一些启发。谢谢!
1条答案
按热度按时间v1l68za41#
这些被称为 * 十六进制转义序列 *。它基本上只是一种可选的写法:
字符串
(The字符串文字的空终止符将被丢弃。)
这与shellcode无关。
同样值得注意的是,将
0xFF
存储在char
中是幼稚的,因为它不能保证足够大以存储一个值,因为char
具有实现定义的符号性,并且可能只能存储最大为0x7F
的正值。