hascar: Decompress SAPCAR archives

[ codec, gpl, library, program ] [ Propose Tags ]

Decompress SAPCAR archives


[Skip to Readme]
Versions [faq] 0.1.0.0, 0.1.0.1, 0.1.1.0, 0.2.0.0, 0.2.0.1, 0.2.0.2, 0.2.1.0, 0.2.1.1, 0.2.1.2, 0.2.2.0, 0.2.2.1
Dependencies ansi-wl-pprint (>=0.6.7.3 && <0.7), array (>=0.5.1.0 && <0.6), base (>=4.7 && <5), binary (>=0.7.5.0 && <0.9), bytestring (>=0.10.6.0 && <0.11), conduit (>=1.2.6.6 && <1.3), containers (>=0.5.6.2 && <0.6), directory (>=1.2.2.0 && <1.3), exceptions (>=0.8.2.1 && <0.9), filepath (>=1.4.0.0 && <1.5), gitrev (>=1.2.0 && <1.3), hascar, mtl (>=2.2.1 && <2.3), optparse-applicative (>=0.12.1.0 && <0.13), path (>=0.5.7 && <0.6), text (>=1.2.2.1 && <1.3), time (>=1.5.0.1 && <1.7), transformers (>=0.4.2.0 && <0.6), unix (>=2.7.1.0 && <2.8) [details]
License GPL-2.0-only
Copyright 2016, Virtual Forge GmbH
Author Hans-Christian Esperer <hc@hcesperer.org>
Maintainer Hans-Christian Esperer <hc@hcesperer.org>
Category Codec
Home page https://github.com/VirtualForgeGmbH/hascar
Source repo head: git clone https://github.com/VirtualForgeGmbH/hascar.git
Uploaded by hc at 2016-06-18T13:23:30Z
Distributions NixOS:0.2.2.1
Executables hascar
Downloads 6042 total (10 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2016-06-18 [all 1 reports]

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for hascar-0.1.1.0

[back to package description]

Build Status

What is hascar?

HASCAR is a free unzip utility for SAP's SAPCAR format.

It is implemented 100% in haskell, including the lzh decompression routine.

This is not yet in a stable state. It should successfully unpack lzh compressed files and uncompressed files.

The SAPCAR container format decoder is based on research done by Martin Gallo (https://github.com/CoreSecurity/pysap) with further investigation by Hans-Christian Esperer hc@hcesperer.org, who also did the LZH decompressor reimplementation.

What is supported:

  • Reading SAPCAR archives version 2.01 only
  • Unpacking files that are LZH compressed
  • Unpacking files that are not compressed

TODO:

  • Implement LZC
  • Implement packing functionality
  • Maybe implement signature checking
  • Make the LZH algorithm more efficient (the author just about started to learn haskell when he embarked on implementing that algorithm :-)

Installing hascar

To compile and install, first get stack ( http://docs.haskellstack.org/en/stable/README/), then issue:

stack build && stack install

hascar will be installed to ~/.local/bin

Usage

Run hascar with the -h flag to get help. Basically, the usage should be the same as with SAP(R)'s sapcar tool.

Example run:

hc@espererh-pc ~/I/hascar λ hascar -xtvf /home/hc/test.sar 
┌────────────────────────────────────────────────────────────────────┐
│          hascar, Copyright (C) 2016, Virtual Forge GmbH.           │
│                                                                    │
│                   Maint.: Hans-Christian Esperer                   │
│             <hans-christian.esperer@virtualforge.com>              │
│                                                                    │
│             hascar comes with ABSOLUTELY NO WARRANTY;              │
│                 for details read the LICENSE file.                 │
│     This is free software, and you are welcome to redistribute     │
│   it under certain conditions; see the LICENSE file for details.   │
└────────────────────────────────────────────────────────────────────┘

5 entrie(s) in the archive.

All entries:
-rw-r--r-- 0 root root 9302     Jun 10 00:00 sapcar-usage
-rw-r--r-- 0 root root 267468   Jun 10 00:00 pg244.txt
-rw-r--r-- 0 root root 34857    Jun 10 00:00 man.txt
-rw-r--r-- 0 root root 10485764 Jun 10 00:00 foo
-rw-r--r-- 0 root root 30       Jun 10 00:00 date

Extracting "sapcar-usage"
Extracting "pg244.txt"
Extracting "man.txt"
Extracting "foo"
Extracting "date"

hc@espererh-pc ~/I/hascar λ