簡體   English   中英

如何解析 ASN.1 二進制數據

[英]How to parse ASN.1 binary data

我有一個“固定長度”二進制 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(右對齊)。

我對 ASN.1 了解不多,所以我試圖避免重新發明輪子。 是否有任何工具(最好在 python 中)可以調整以將此二進制文件轉換為文本 CSV 文件? 除了這個,我還沒有找到滿足我需要的東西。 但它是一個專有工具,對我來說不是一個選擇。

ASN.1 有一個模塊: pyasn1

另一種可能性是使用內置的struct模塊來分隔字段。 這個問題的答案是讀取二進制編碼的小數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM