下面的格式说明符在做什么?

2023-12-01

         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(使用前将#替换为@)

下面的格式说明符在做什么? 的相关文章

随机推荐

  • Android volley 处理重定向

    我最近开始使用 Google 的 Volley lib 来处理我的网络请求 我的一个请求收到重定向错误 301 所以我的问题是 volley 是否可以自动处理重定向 或者我是否必须手动处理它parseNetworkError或使用某种Ret
  • 将 gprof 与 pthread 结合使用

    gprof 可以用来分析使用 pthread 的多线程程序吗 也就是说 它的输出是否包括所有线程所使用的时间 是的 借助所描述的解决方法是可能的here
  • 如何将类转换为 Dictionary

    我可以将 Class 转换为 Dictionary 吗 在字典中我希望我的类属性为keys以及特定财产的价值value 假设我的班级是 public class Location public string city get set pub
  • JavaScript 减少两个以上项目的抛出错误

    我有这个数组 const arr someProp amount 10 someProp amount 12 然后减少 fn const sum arr reduce prev curr gt prev someProp 0 amount
  • 使用 awk 最长的行

    有人可以展示如何使用 awk 命令来识别文本文件中最长的行 Thanks 要打印最长的行 awk length gt m m length a 0 END print a input file 简单地通过行号来识别最长的行 awk leng
  • JQ:将键替换为另一个文件中的相应值

    我正在尝试将原始 JSON 中的键值替换为另一个文档中具有相应键的对象的值 这是我的两个文件 文件一 KaM0otlgWxXniYiacFe LNxx1IiX6oYTxJ4IXx2 true KlJTvbfonIMI YfS5R LNxx1
  • 替换 Excel 文件页眉和页脚上的文本

    我想检查 Excel 工作表上的页眉和页脚 并将给定字符串的所有出现位置替换为另一个字符串 如何使用 vba 来完成此操作 你需要使用才能使用Sheet PageSetup财产 我假设您正在寻找中心页眉和页脚 以下内容将为您工作 Sub L
  • 使用 UIBezierPath 擦除线条图

    使用 UIBezierPath 做了一个简单的线条绘制应用程序 但现在需要一种方法来擦除用 UIBezierPath 绘制的线条 有没有办法实现橡皮擦功能来删除线条画 如果您使用图像作为背景 那么您可以将相同的图像设置为画笔图案来绘制贝塞尔
  • SQL Presto:不支持相关子查询

    考虑表x id val 1 100 3 300 和表y id 1 2 3 对于每一行y我想要val from x哪里的id从 y 等于或最接近之前id from x像那样 id val 1 100 2 100 3 300 我试图找到与相关子
  • R 中的自举相关

    我正在尝试在 R 中进行引导相关性 我有两个变量 Var1 和 Var2 我想获得 Pearson 相关性的自举 p value my variables look like this x y 1 6080522 1 707642 2 1
  • SQL Group By 和 Order By

    我有一个标签表 想从列表中获取计数最高的标签 示例数据如下所示 id 1 tag night id 2 tag awesome id 3 tag night using SELECT COUNT Tag from images tags G
  • 基于条件的最大值

    我在 Excel 中有一个模拟数据集 我想打印最近的日期 但我希望它是最新的日期 以便类型为 引用 Type Date referral 1 6 2017 classroom 1 7 2017 referral 1 8 2017 class
  • Mac 上的 jshint 和 sublimelinter 设置配置

    我正在尝试在我的 Mac 上配置 sublimelinter 特别是 jshint 在我的 Windows 版本的 SublimeText 上有以下部分SublimeLinter sublime settings jshint option
  • Terraform:通知 SNS 的 CloudWatch 事件

    我正在学习 TF 并尝试应用一个基础设施来创建 一个简单的 lambda 函数 SNS 话题 获取 lambda 来订阅 SNS 主题 以一定时间间隔向主题发布消息的 Cloud Watch Event Cloud Watch Log Gr
  • XDocument.Validate 始终成功

    我有一个架构文件 它没有定义任何目标命名空间 即它的定义如下所示
  • Hive 上的 Spark SQL 查询执行

    我是 Spark SQL 新手 但了解 Hive 查询执行框架 我想了解spark如何执行sql查询 技术说明 如果我按照命令开火 val sqlContext new org apache spark sql hive HiveConte
  • 如何使 setInterval 在一段时间或多次操作后停止?

    我用 jQuery 创建了一个 改变单词 的循环 通过使用此答案中的代码 jQuery 查找单词并每隔几秒更改一次 一段时间后如何停止 是说 60 秒后还是循环结束后 function List your words here var wo
  • 格式化 pandas 中的数字

    对于 pandas DataFrame df min max mean a 0 0 2 300000e 04 6 450098e 02 b 0 0 1 370000e 05 1 651754e 03 c 218 0 1 221550e 10
  • 如何使用 P/Invoke 在 C# 中返回列表?

    我正在开发一个小项目 我使用 P Invoke 并希望在 C 中返回以下内容 public class std list
  • 下面的格式说明符在做什么?

    else printf 3hho data 我无法在网上或通过阅读 C 编程语言书籍找到有关如何破译它的信息 我在下面的代码片段中看到了它 该代码尝试在 telnet 协议中执行密码嗅探 if pktlen sizeof struct ip