Python tool for recursively (de)compressing nested archives using multiple algorithms (bzip2, rar, lzma, ...)
Project description
Introduction
This tool relies on Tinyscript and allows to recursively (de)compress nested archives according to various decompression algorithms implemented in Patool.
Installation
$ 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
$ 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
$ 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
$ 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
$ rec-decomp Vdpxp8Qy
12:34:56 [INFO] Rounds: 10
12:34:56 [INFO] Files :
- file1 (8d5e08e1bbc49f59b208e0288e220ac0fc336ac0779852cb823c910ae03b5bc4)
- file2 (9f07ec2f89cbec2696574d26238a2d876cfe1249909cc5de2f171ae9ede3e475)
- file3 (60bf2a298af8b71b7fcc0e726c4f75d78c73949c9562cf0c1a2bbeadeeca8ee4)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file recursive-compression-3.5.2.tar.gz
.
File metadata
- Download URL: recursive-compression-3.5.2.tar.gz
- Upload date:
- Size: 26.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/57.4.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f47c03399a79e62649a667e35824d867b5aaf75e7a2ee5f8b2e98fb11b43593e |
|
MD5 | f00fc863b2278eceb6c6ce61e1578b57 |
|
BLAKE2b-256 | 17adf214822c0b649fac98fdf02732782b9b393e9e02bd5fb72a843745224282 |