Agent Skills
返回列表
🔒

fq 二进制格式检查器与 jq 媒体文件工具

IT 运维与安全 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/fq-binary-format-inspector-jq-media。

技能介绍

为什么要把 jq 用在二进制上

排查二进制文件时,常见的路径是 hexdump、xxd 配合人工翻查。媒体容器、可执行文件、抓包文件的内部结构通常是多层嵌套的:容器里有流和元数据,抓包里有链路层、IP 层、传输层层层包裹。只看原始字节很难回答「这个 MP4 里有哪些轨道、时长多少」这类问题,手工解码又容易出错。fq 的目标就是把 jq 那套声明式查询体验搬到二进制格式上,让检查变成写表达式,而不是翻十六进制。

它如何工作

fq 把各种二进制格式映射成一个可查询的数据模型,格式定义决定了数据如何被切分成层级结构。在这个模型之上,用户可以套用熟悉的 jq 表达式做过滤和变换。核心用法只有几条:

  • fq . file:打印文件的结构视图,用来摸清一个陌生文件有哪些层级
  • fq d file:对文件做解码,输出展开后的字段内容
  • fq 'some query' file ...:用 jq 表达式对结构做筛选、聚合或变换

覆盖的格式包括常见媒体容器、可执行文件、packet capture 文件以及数十种其他二进制格式。对于不习惯一次写完表达式的人,它还提供交互式 REPL,可以逐层探索结构,再组合出最终查询。

适用边界与注意点

fq 的能力边界取决于上游格式支持的广度,不是所有二进制格式都有解码规则;遇到不支持的格式时,表达式无从下手。运行环境需要 Go 1.22 或更高版本,部分二进制处理依赖 hachoir 这个 Python 库。实际使用前建议先查阅上游的 formats.md 确认目标格式在支持列表中,再参考 usage.md 组织查询表达式。

使用场景

  • 拿到一份 MP4 文件播放异常,需要快速确认容器内有哪些音视频轨道、时长与编码格式。
  • 收到一个结构陌生的二进制文件,想先摸清它的内部层级再决定下一步怎么解析。
  • 分析抓包文件时要从大量数据包里筛出特定协议层的内容,手工翻 hexdump 效率太低。
  • 想把二进制里的特定字段批量提取出来交给后续脚本处理,而不是逐段抄录数值。

适合人员

  • 音视频工程师:需要快速确认媒体容器内的轨道、编码与时长等元数据,定位播放异常原因。
  • 运维与安全工程师:经常分析抓包文件,需要按协议层过滤并查看特定字段。
  • 后端或基础库开发者:面对不熟悉的二进制格式,希望用 jq 表达式做结构化查询而非手工解码。
  • 逆向工程师:需要在可执行文件中定位特定结构或提取嵌入的字符串与数据。