Giter Site home page Giter Site logo

dhondta / recursive-compression Goto Github PK

View Code? Open in Web Editor NEW
12.0 3.0 4.0 67 KB

Tinyscript tool for recursively (de)compressing nested archives using multiple algorithms (bzip2, rar, lzma, ...)

License: GNU General Public License v3.0

Python 100.00%
python tool decompression bzip2 tar rar xz arj lzma gzip

recursive-compression's Introduction

PyPi Python Versions Platform Known Vulnerabilities License

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)

recursive-compression's People

Contributors

dhondta avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.