Skip to content

GitHubRulesOK/Zip-SAC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zip-SAC

A collection of ZIP‑related utilities, including Windows‑native Self‑Archiving Containers (SACs).
The concept itself is not new - it’s the continuation of a lineage that goes back more than 40 years. Early 1980's CP/M and early DOS: Developers sometimes shipped COM/EXE files with appended data, and the program unpacked itself. The more public "Grandfather Rights" could be ARC‑SEA (Self‑Extracting ARC). This produced .EXE files that: Contained the ARC archive, contained a tiny decompressor stub and ran on any DOS machine without needing ARC.EXE. Then later Phil Katz introduced PKSFX, a ZIP‑based self‑extracting EXE. This became the dominant SFX format from the 1990s.

CMD‑SAC

Its "relatively" easy to write a fast pure CMD file from Windows ME (Millenium Edition) and XP onwards, to emulate the SEA approach, and that concept became the "First Version" of TAR-SAC. It has "Pro's and Con's" fast light easy to edit (no need to compile). But the issue is like SEA model it often has to carry a compressed copy of the stub in the payload. No example is included here because the original implementation was only a personal PoC (proof‑of‑concept).

TAR‑SAC

Initially TAR‑SAC worked similarly to CMD‑SAC: the stub acted as a controller that repeatedly invoked the system tar.exe helper to unpack or repack the payload. Because TAR is external and not embedded, the early variant followed the SEA‑style pattern and carried a compressed copy of the stub inside the payload.

The newer TAR‑SAC design no longer embeds the stub. Instead, it uses a simple boundary marker between the executable stub and the ZIP/TAR payload. Tar.exe is indifferent to separation, but the C# loader must reliably detect the marker and determine where the stub ends and the archive begins. This makes the structure cleaner and avoids carrying a compressed copy of the stub inside the payload.

Functionally should be similar to both CMD and ZIP based variants.

ZIP‑SAC

Uses a model similar to the classic PKZIP/PKSFX self‑extracting executables. The SAC stub contains its own ZIP‑aware logic: it locates the appended ZIP payload, parses the local headers, unpacks modules, and can rebuild the archive. No external ZIP tool is required.
This makes ZIP‑SAC a true self‑extracting ZIP container in the PKSFX tradition, where the stub is the ZIP engine and the appended ZIP is a standard payload.

From https://github.com/GitHubRulesOK/MyNotes/blob/master/SMOPs.MD#zip-it-add-to-fileextx-or-filezip
This is the one line extension tool for Windows TAR to try to provide the -a (add) or -u (update) missing functions.
Windows 10+ TAR.exe can extract one or more files from zip based containers such as DocX or similar office files. However it cannot add a single file TO a DocX or similar ZIP based file or folder.

Provided as a CMD file which can be edited to provide zip-it.exe in current folder.

ZIP‑IT-2

ZIP‑IT‑2 is a companion ZIP editor for standard ZIP‑based files and SAC executables (ZIP‑SAC or TAR‑SAC).
It does not create new ZIP files — it edits existing ones.
Supports:

  • list (loose match), or slightly more verbose detail such as file entry size
  • delete (strict match)
  • extract (strict match)
  • add/replace (copy local file → entry inside archive)

ZIP‑IT‑2 is intentionally small, simple, and focused, thus in theory could be used as an SAC engine.

A related 7-Zip addin utility "ListArc" can be found at https://github.com/GitHubRulesOK/MyNotes/blob/master/C%23/listarc.cmd . This allows in many cases to see a listing inside standard Zip (or some other) self extracting archive files. Most easily used as a right click "SendTo" as simpler than launch a console command. ListArc.png

About

A collection of Zip related utilities including Windows native code Self Archiving Containers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors