首页 文章

如何解析ASN.1二进制数据

提问于
浏览
0

我有一个“固定长度”的二进制ASN.1编码文件,其中包含用于映射数据元素的单独文档 . 例如,二进制文件的格式如下:

0070 00A0 1700 35e7 0100 0010 0299 1a11
bc10 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0001 0001
0256 1c41 aa09 0000 0000 0000 0000 0000
.....

这里每条记录的长度为559个字节 . 文档将记录结构作为长度(以字节为单位) . 这种格式非常特定于此数据,因此我需要制作转换器 . 例如

No.     Field Name     Data Length (Bytes)   Description
1         Field1             2                 Binary
2         Field2             4                 BCD
3         Field3             1                 BCD (Right Aligned)
.....

如果这是标准的ASN.1编码,我没有任何信息 . 描述比这里显示的更详细,因为它们说出解码数字的含义 . 有些是二进制的,有些是BCD,有些是BCD(右对齐) .

我没有试图避免重新发明轮子 . 是否有任何工具(最好在python中)可以调整以将此二进制文件转换为文本CSV文件?除了this之外,我无法找到符合我需要的东西 . 但它是一种专有工具,对我来说不是一个选择 .

1 回答

  • 1

    ASN.1有一个模块:pyasn1 .

    另一种可能性是使用内置的struct模块来分隔字段 . 并且this question的答案是读取二进制编码的小数 .

相关问题