ASP Project On Data Hiding Additional Files In A Zip Archive
A Zip file comprises of nearby record headers, neighborhood documents, and toward the finish of the Zip document, the focal index. At the point when a compress application like WinZip or Zip File opens a chronicle, it first peruses the catalog. Just when you really extricate a document, it peruses the balance from its index passage, and afterward, the nearby record is perused and uncompressed. Something that isn’t recorded in the focal registry won’t be recorded in the Zip application.
Compress documents can contain bunches of single records, each of them having two sizes: packed size and uncompressed. Have you at any point figured the normal document estimate from the packed record sizes and contrasted it with the measure of the Zip record? No? Indeed, that is the reason a couple of extra bytes – extra compacted content documents – won’t be found by the shot.
There are just three stages while in transit to halfway undetectable Zip documents. We have to:
1. Read and compose compress records as a rule,
2. Compose Zip passages without adding them to the focal index,
3. Discover those Zip passages in the file.
Stage 1: Using SharpZipLib
Stage one has just been understood by ICSharpCode: I’ve added the SharpZipLib undertaking to my answer. It ran consummately fine. For each Zip section, it created a registry passage consequently.
Stage 2: Extending ZipOutputStream
That leads us straightforwardly to stage two: how might we maintain a strategic distance from the index section? SharpZipLib makes the catalog in ZipOutputStream.Finish (). That is the place we need to get the records that should remain covered up.
Stage 3: Extending Zip File
With the little changes above, we can add documents to a Zip file and conceal them from the registry. Presently the genuine test starts: we need to discover our records once more!
SharpZipLib contains the class Zip File for perusing files and decompressing single documents. It totally depends on catalog passages: GetInputStream () takes a Zip Entry or its record and peruses the neighborhood document’s substance from the given counterbalance. Be that as it may, our imperceptible documents don’t have those registry passages. To settle this, I needed to include two techniques and a little change to GetInputStream ().
Before we can begin separating the imperceptible documents, we need to assemble an entire rundown, which contains all compressed records, regardless of whether they are in the focal index or not. I chose to utilize the main record from the registry as the stay point in the chronicle, in light of the fact that each document will contain no less than one unmistakable document (else it would be excessively clear that something isn’t right).
We will bounce into the Zip document toward the start of the principal “official” record and stroll through the accompanying neighborhood records, be discovering everything that is truly in there. The new strategy Has Successor (Zip Entryzip Entry) finds the finish of a given Zip section and checks the stream for whatever comes after it.
Alert: If conceivable, you ought to keep away from encryption, or possibly alter/spare a decoded chronicle and include encryption as the last advance. Once in a while, it works; at times you lose every single shrouded document with the exception of the first.
As a rule, the principal encryption functions admirably, yet re-sparing the as of now encoded file makes the neighborhood record headers untraceable. Particularly when there is more than one imperceptible record in the chronicle, just attempt encryption, if everything else is as of now spared legitimately.
Working SYSTEM: Windows XP Professional
FRONT END: Microsoft Visual Studio.Net 2010
CODING LANGUAGE: C#.Net
Framework: Pentium III 700 MHz
HARD DISK: 40 GB
Screen: 15 VGA shading screen