https://github.com/dhondta/recursive-compression
Tinyscript tool for recursively (de)compressing nested archives using multiple algorithms (bzip2, rar, lzma, ...)
https://github.com/dhondta/recursive-compression
7z arj bzip2 compression ctf-tools decompression gzip lzma python rar tar tinyscript tool xz zip
Last synced: 10 months ago
JSON representation
Tinyscript tool for recursively (de)compressing nested archives using multiple algorithms (bzip2, rar, lzma, ...)
- Host: GitHub
- URL: https://github.com/dhondta/recursive-compression
- Owner: dhondta
- License: gpl-3.0
- Created: 2019-04-15T07:15:26.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-12-03T19:31:40.000Z (about 2 years ago)
- Last Synced: 2025-02-12T09:57:28.428Z (11 months ago)
- Topics: 7z, arj, bzip2, compression, ctf-tools, decompression, gzip, lzma, python, rar, tar, tinyscript, tool, xz, zip
- Language: Python
- Homepage:
- Size: 65.4 KB
- Stars: 12
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://pypi.python.org/pypi/recursive-compression/)
[](https://pypi.python.org/pypi/recursive-compression/)
[](https://pypi.python.org/pypi/recursive-compression/)
[](https://snyk.io/test/github/dhondta/recursive-compression?targetFile=requirements.txt)
[](https://pypi.python.org/pypi/recursive-compression/)
## Introduction
This tool relies on [Tinyscript](https://github.com/dhondta/tinyscript/) and allows to recursively (de)compress nested archives according to various decompression algorithms implemented in [Patool](https://github.com/wummel/patool).
## Installation
```session
$ pip install recursive-compression
```
> **Behind a proxy ?**
>
> Do not forget to add option `--proxy=http://[user]:[pwd]@[host]:[port]` to your pip command.
## Quick Start
### Compression
```session
$ rec-comp -h
usage: rec-comp [-c CHARSET] [-d] [-n NCHARS] [-r ROUNDS] [-h] [-p] [--stats]
[--timings] [-v]
files [files ...]
RecComp v3.0
Author : Alexandre D'Hondt
Copyright: © 2019 A. D'Hondt
License : GNU Affero General Public License v3.0
This tool allows to recursively compress an archive relying on Patool, a Python
library supporting various archive formats.
Note: Password-protected compression is not supported.
positional arguments:
files files to be archived
optional arguments:
-c CHARSET character set of random archive name (default: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789)
-d delete input files (default: False)
-f FORMATS compression algorithms (default: all)
-n NCHARS length of random archive name (default: 8)
-r ROUNDS, --rounds ROUNDS
number of compression rounds (default: 10)
--reverse reverse byte order (default: False)
data options:
--data DATA data to be embedded (default: None)
--chunks CHUNKS number of chunks the data should be split in (default: 10)
extra arguments:
-h, --help show this help message and exit
-p, --progress progress mode (default: False)
-v, --verbose verbose mode (default: False)
timing arguments:
--stats display execution time stats at exit (default: False)
--timings display time stats during execution (default: False)
Usage examples:
rec-comp file1 file2 file3 -r 10
rec-comp file -c abcd -n 10
rec-comp -p
```
```session
$ rec-comp file1 file2 file3 -r 10 -p
100%|██████████| 10/10 [00:05<00:00, 1.94it/s]
12:34:56 [INFO] Rounds: 10
12:34:56 [INFO] Archive: Vdpxp8Qy
```
### Decompression
```session
$ rec-decomp -h
usage: rec-decomp [-d] [-p] [-h] [--stats] [--timings] [-v] archive
RecDecomp v3.0
Author : Alexandre D'Hondt
Copyright: © 2019 A. D'Hondt
License : GNU Affero General Public License v3.0
Training : ZSIS CTF - Trivia - Shining (4 points)
This tool allows to recursively decompress an archive relying on Patool, a
Python library supporting various archive formats.
Note: Password-protected compression is not supported yet. If the tool freezes
while decompressing, it may be necessary to press enter to submit a blank
password, which will stop decompression.
positional arguments:
archive input archive
optional arguments:
-d delete input archive (default: False)
-p print resulting file, if possible (default: False)
extra arguments:
-h, --help show this help message and exit
-v, --verbose verbose mode (default: False)
timing arguments:
--stats display execution time stats at exit (default: False)
--timings display time stats during execution (default: False)
Usage examples:
rec-decomp archive.zip
rec-decomp archive.zip -d
```
```session
$ rec-decomp Vdpxp8Qy
12:34:56 [INFO] Rounds: 10
12:34:56 [INFO] Files :
- file1 (8d5e08e1bbc49f59b208e0288e220ac0fc336ac0779852cb823c910ae03b5bc4)
- file2 (9f07ec2f89cbec2696574d26238a2d876cfe1249909cc5de2f171ae9ede3e475)
- file3 (60bf2a298af8b71b7fcc0e726c4f75d78c73949c9562cf0c1a2bbeadeeca8ee4)
```