I haven't been able to find any documentation or Q&A regarding the scenario where a large file that's being archived by 7-Zip is modified (by other programs) during this process. In my few tests, it seems like 7-Zip always archive the original version, but I can't be sure if it's a consistent behavior. Does 7-Zip consider such scenarios when archiving files? Does it use anything like VSS to ensure consistency?
Adding three more random characters to your password is more than enough to compensate for the reduced brute-force complexity from a 8-digit PIM to a 7-digit PIM.
I think I understand most of the format now. My current understanding: A "Folder" corresponds to a solid block. It may contain one or more encoded streams (due to codecs like BCJ2). After decoding, each decoded stream may be separeated into substreams. Each decoded substream corresponds to a file. What I'm still not sure of: 9) Is there a scenario where a folder can contain more than one OutStream (decoded stream)?
Thanks! Are the "external" (BYTE) and "dataIndex" (UINT64) referring to additional streams? And I guess the actual data of these additional streams are located in [PackedStreamsForHeaders] as mentioned in "Archive structure"? So are you saying the "external" bytes are always zero now?
Thanks. I've figured out how to read method properties for some codecs. Here's another question... 7) In the context of a header, what are the differences and relations among Pack, PackStream, Folder, SubStream, File, and solid blocks? As far as I can see in the examples I studied: Pack = PackStream = Folder = Solid block SubStream = File I'd guess not all equal signs I wrote are valid, because I haven't looked at a "complexCoder" yet. Could you explain the differences among these terms? Which codecs...
Thanks. I've figured out how to read method properties for some codecs. Here's another question... 7) In the context of a header, what are the differences and relations among Pack, PackStream, Folder, SubStream, File, and solid blocks? As far as I can see in the examples I studied: Pack = PackStream = Folder = Solid block SubStream = File I'd guess not all equal signs I wrote are valid, because I haven't looked at a "complexCoder" yet. Could you explain the differences among these terms? Which codecs...
Right... I realized that when I saw this thread. My first example is for 7zAES and apparently the property contains IV. Are formats of these properties documented? If I have to look inside the source code, where should I start?
Sorry I've got another question: 6) Some data blocks have the format: UINT64 PropertiesSize BYTE Properties[PropertiesSize] I can match the format with binary data of actual archives just fine, but I have no idea how to interpret the content of Properties[PropertiesSize]. They don't seem to conform to any described data blocks in 7zFormat.txt. Specifically, I'm looking at HeaderInfo: HeaderInfo { BYTE NID::kEncodedHeader; (0x17) StreamsInfo_for_Encoded_Header { PackInfo {...} CodersInfo { ... Folder[]...