file命令libmagic、python的cchardet库使用、自定义magic文件的使用
生产多语言测试文件方法
file命令libmagic、python的cchardet库使用、自定义magic文件的使用
✅ 正确流程:使用自定义 magic 的标准做法
编写 sat.magic(纯规则) ↓file -C -m sat.magic → 生成 magic.mgc(二进制数据库)↓
C 程序中 magic_load("magic.mgc") → 成功加载↓
调用 magic_file() → 正确识别
✅ 第一步:创建正确的 sat.magic
(仅规则,无扩展字段)
cd ~/satellite-analysis-asscii/smagic
nano sat.magic
✅ 内容(严格兼容 file -C
):
# Satellite Telemetry Frame
0 belong 0xAA55CCDD
>8 string \x01\x02\x03\x04
>8 string SAT-TELEMETRY
# (Satellite Telemetry Packet)# GBK Chinese Text Detection
0 byte > 0xA0
>&0 byte < 0xFF
>1 byte > 0xA0
>&1 byte < 0xFF
# (Chinese GBK Text)
✅ 关键:
- 不要写
name=
,desc=
,mime=
- 注释用
# (Description)
格式- 使用英文或 ASCII
✅ 第二步:编译生成 magic.mgc
file -C -m sat.magic
✅ 正确输出:
Creating magic.mgc from sat.magic
👉 生成了 magic.mgc
,这是 唯一能被 magic_load()
正确加载的文件
✅ 第三步:修改你的 C 程序,加载 magic.mgc
你的 a.out
是从某个 .c
文件编译来的,假设是 detect_