最近我从 VxWorks 文件系统中解压了一个 LZMA 文件,该文件系统被 LZMA SDK 识别并解压,参数lc = lp = 0, pb = 2和字典大小为 8MB。当我重新压缩它(没有修改,使用相同的工具和参数)输出的前 332 个字节与原始压缩数据的输出相同,但从第 333 个字节开始我没有找到任何重要的匹配。
我可以使用有关前 332 个字节可能代表什么的任何信息,为什么它们在两个文件中相同而其余文件不同,在这种情况下哪些参数最有可能是罪魁祸首,或者为什么我的 LZMA SDK 会在以下情况下重新创建更改的文件我使用相同的参数进行压缩和解压缩。我想要的是完全按原样重新创建原始 LZMA,因为我担心我从中获得原始 LZMA 的固件在我闪回时可能无法识别重新创建的 LZMA。
一些可能有帮助的信息:
- 我能够解压缩新的输出以获得从原始文件解压缩的相同文件
- 重新创建的 LZMA 比原始 LZMA 小 1 个字节
- 解压后的文件(称之为
decomp)包含一些宽字符,vim 将其文件格式识别为dos. 我为 linux 编译了 LZMA 工具。file decomp输出:decomp: C source, ISO-8859 text, with CRLF line terminators
让我知道我应该包括的任何其他相关信息。
谢谢。