二进制协议分析器
dump的Python项目详细描述
矮胖
dumpy是一个具有声明性语法的二进制解析器。你所需要的 告诉框架你的数据是什么样子,然后让dumpy 剩下的就做。
dumpy支持python版本>;=3.0。
安装
只需使用PIP或类似工具:
pip install dumpy
用法
要解析预定义的二进制结构,需要定义一个类 对于那个结构。例如,pascal strings:
的类importdumpy.typesasdtclassPString(dict,metaclass=dt.DumpyMeta):__field_specs__=(dt.field('len',dt.UInt8,default=dt.count_of('data')),dt.field('data',dt.UInt8,count=dt.counted_by('len')),)s=PString()s['data']=b'\x01\x02\x03\x04'# The length field is calculated automatically.asserts['len']==4asserts.pack()==b'\x04\x01\x02\x03\x04's2=s.unpack(s.pack())asserts2['len']==4assertbytes(s2['data'])==b'\x01\x02\x03\x04'
请参见demo/png_packer.py以获取真实格式解析器。
已知问题
- dumpy中的类型检查和转换代码有点幼稚, 它不检查序列中的元素类型。
- dumpy在当前阶段是非常慢的。您可能不想使用 它可以解析网络消息或庞大的数据结构。