else
{
printf("\\%.3hho", *data);
}
我无法在网上或通过阅读 C 编程语言书籍找到有关如何破译它的信息。我在下面的代码片段中看到了它。该代码尝试在 telnet 协议中执行密码嗅探。
if ((pktlen - sizeof(struct ipheader)) > dataoffset)
{
printf(" SrcIP: %s,", inet_ntoa(ip->iph_sourceip));
printf(" DstIP: %s,", inet_ntoa(ip->iph_destip));
printf(" Data: ");
u_char* data = (u_char*)tcp + dataoffset;
for (unsigned short s = 0; s < (ntohs(ip->iph_len) - (sizeof(struct ipheader) + dataoffset)); s++)
{
if (isprint(*data) != 0)
{
printf("%c", *data);
}
else
{
printf("\\%.3hho", *data);
}
data++;
}
printf("\n");
}
}
根据Cpp参考:
转换说明符o
转换一个无符号整数转换为八进制表示形式oooo,
精确指定要出现的最小位数。
所以字符串\\%.3hho
表示文字反斜杠(已转义)加上格式说明符%.3hho
:
-
%...o
表示无符号整数的八进制表示。这封信o
也表示该说明符的结束
-
hh
是C99规范,表示unsigned char
代替unsigned int
,始终是一个字节
-
.3
表示精度为 3,因此至少 3 个八进制数字 (000 - 377)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)