如何解析 7z 文件的结束头?

How to parse the end header of a 7z file?

提问人:April Summers 提问时间:11/17/2023 更新时间:11/17/2023 访问量:35

问:

我正在研究在不使用任何包的情况下解析 7z 文件 - 只需读取字节并使用我自己的代码处理它们。然而,据我所知,7z 格式的记录非常糟糕。
我设法使用信息页面上有关损坏档案的信息解析了 7z 文件的正面标题。我能找到的关于解析 7z 文件的结束标头的唯一信息是 7zFormat.txt,这是“文档”的相关片段:

Header
~~~~~~
  BYTE NID::kHeader (0x01)

  []
  ArchiveProperties
  []

  []
  BYTE NID::kAdditionalStreamsInfo; (0x03)
  StreamsInfo
  []

  []
  BYTE NID::kMainStreamsInfo;    (0x04)
  StreamsInfo
  []

  []
  FilesInfo
  []

  BYTE NID::kEnd

我还从我正在测试的文件中提取了作为结束标头一部分的字节,如下所示:

[
    '01', '04', '06', '00', '01', '09', 'c1', 'b5',
    '10', '00', '07', '0b', '01', '00', '01', '21',
    '21', '01', '09', '0c', 'c1', 'ae', '10', '00',
    '08', '0a', '01', 'b9', 'e8', 'c3', 'a6', '00',
    '00', '05', '01', '19', '08', '00', '00', '00',
    '00', '00', '00', '00', '00', '11', '0d', '00',
    '61', '00', '2e', '00', '70', '00', '6e', '00',
    '67', '00', '00', '00', '14', '0a', '01', '00',
    '20', 'fb', '01', '59', '7c', '0e', 'da', '01',
    '15', '06', '01', '00', '20', '00', '00', '00',
    '00', '00'
]

我能够解码此标头的哪些部分应该包含什么 - 但绝对不知道如何解释实际字节。我应该如何解释/阅读此标题?(答案是首选的概念,如果有示例代码,如果是 Node.js 或 Python,将最有帮助)

如果我的帖子缺少任何重要信息,请告诉我。感谢您的阅读!

python 节点 .js 字节 7zip 文件头

评论


答: 暂无答案