Code Monkey home page Code Monkey logo

comprec's Introduction

CompreC

Dependencies

BASH

  • cmake
  • make

C

  • stdlib.h
  • stdio.h
  • string.h
  • ncurses.h
  • zip.h
  • getopt.h
  • locale.h

Install

./install.sh

This script will automatically compile and assemble the c files

Clean

./clean.sh

This script will remove build files and executable

How to use

This tool can be used with in command line. To use it, please launch install.sh script, then:

./compreC [-h] -f <file.zip> [-p <password>]

A ncurses session will be launched. Dependending on if the file is protected or not, you will have a different prompt. If the file is protected, you will have the choice to enter the password of the file or bruteforce it.

In not protected mode, you can choose among 4 options:

  1. Explore: feature in WIP. Currently, it does nothing.
  2. Exit: Quit the application. Please, use this option instead of Ctrl-C to keep your memory.

In protected mode, you can choose among 4 options:

  1. BruteForce: Try to find the password of the file.
  2. Password: Enter the password of the file.
  3. Explore: feature in WIP. Currently, it does nothing. A protected zip file doesn't prevent to explore it.
  4. Exit: Quit the application. Please, use this option instead of Ctrl-C to keep your memory.

You can navigate through on-screen options using arrow keys and select one by pressing Enter key.

Architecture

in src directory, you can find:

  • CMakeLists.txt: the file used by install.sh to compile the project. Do not remove it please.

  • interface_internal.h: declare the libraries used in interface.c and internal functions implemented in internal.c.

  • interface.h: declare functions to be used by the other files.

  • interface.c: implements ncurses session management.

  • zipUtils_internal.h: declare the libraries used in zipUtils.c and internal functions implemented in zipUtils.c.

  • zipUtils.h: declare functions to be used by the other files.

  • zipUtils.c: implements zip tools to manage zip files.

  • main_internal.h: declare the libraries used in main.c and internal functions implemented in main.c.

  • main.h: declare libraries to be used by the all files.

  • main.c: implements options management and main function.

Functioning

Structure

The project is divided in 3 parts:

  • interface: manage the ncurses session
  • zipUtils: manage zip files
  • main: manage options and main function

each part is divided in 3 files:

  • .c file: implements the functions
  • _internal.h file: declare the libraries and internal functions to be used in the .c file
  • .h file: declare the functions to be used by other files

The details of the functions are mentionned as a "JavaDoc" style documentation in the files.

Unlock a zip file

BruteForce a zip file

If you don't provide password, you will have the choice to bruteforce the zip file. The program will try all the combinations of passwords. It will take a long time, but it will find the password.

Provide a password

To unlock a zip file, you can provide it at the launch of the program with the -p option. Else, you can use the "Password" option in the ncurses session.

Disclamer

There are not a complete error management, so you could encounter some bugs but in the traditional way to use our tool, it could be ok.

comprec's People

Contributors

mathislec avatar

Watchers

 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.