Fast PDF password cracking utility equipped with commonly encountered password format builders and dictionary attacks.

Overview

PDFRip

Fast PDF password cracking utility equipped with commonly encountered password format builders and dictionary attacks.

📖 Table of Contents

ℹ️ Introduction

pdfrip is a fast multithreaded PDF password cracking utility written in Rust with support for wordlist based dictionary attacks, date and number range bruteforcing, and a custom query builder for password formats.

Features

  • Fast: Performs about 50-100k+ passwords per second utilising full CPU cores.
  • Custom Query Builder: You can write your own queries like STRING{69-420} with the -q option which would generate a wordlist with the full number range.
  • Date Bruteforce: You can pass in an year as the input with the -d option which would bruteforce all 365 days of the year in DDMMYYYY format which is a pretty commonly used password format for PDFs.
  • Number Bruteforce: Just give a number range like 5000-100000 with the -n option and it would bruteforce with the whole range.

Installation

$ curl -L https://github.com/mufeedvh/pdfrip/releases/download/v1.0.0/pdfrip_amd64 -o pdfrip

(Linux AMD x86-64)

OR

Download the executable from Releases for your OS.

OR

Install with cargo:

$ cargo install --git https://github.com/mufeedvh/pdfrip.git

Install Rust/Cargo

Build From Source

Prerequisites:

  • Git
  • Rust
  • Cargo (Automatically installed when installing Rust)
  • A C linker (Only for Linux, generally comes pre-installed)
$ git clone https://github.com/mufeedvh/pdfrip.git
$ cd pdfrip/
$ cargo build --release

The first command clones this repository into your local machine and the last two commands enters the directory and builds the source in release mode.

Usage

Get a list of all the arguments:

$ pdfrip --help

Start a dictionary attack with a wordlist (-w/--wordlist):

$ pdfrip encrypted.pdf -w rockyou.txt

Bruteforce number ranges for the password (-n/--num-bruteforce):

$ pdfrip encrypted.pdf -n 1000-9999

Bruteforce all dates in a year for the password in DDMMYYYY format (-d/--date-bruteforce):

$ pdfrip encrypted.pdf -d 1999

Build a custom query to generate a wordlist (-q/--custom-query): (useful when you know the password format)

$ pdfrip encrypted.pdf -q ALICE{1000-9999}

$ pdfrip encrypted.pdf -q DOC-ID{0-99}-FILE

Enable preceding zeros for custom queries (-z/--add-preceding-zeros): (which would make {10-5000} to {0010-5000} matching the end range's digits)

$ pdfrip encrypted.pdf -q ALICE{10-9999} --add-preceding-zeros

Contribution

Ways to contribute:

  • Suggest a feature
  • Report a bug
  • Fix something and open a pull request
  • Help me document the code
  • Spread the word

License

Licensed under the MIT License, see LICENSE for more information.

You might also like...
Vaporetto: a fast and lightweight pointwise prediction based tokenizer

🛥 VAporetto: POintwise pREdicTion based TOkenizer Vaporetto is a fast and lightweight pointwise prediction based tokenizer. Overview This repository

Composable n-gram combinators that are ergonomic and bare-metal fast
Composable n-gram combinators that are ergonomic and bare-metal fast

CREATURE FEATUR(ization) A crate for polymorphic ML & NLP featurization that leverages zero-cost abstraction. It provides composable n-gram combinator

🛥 Vaporetto is a fast and lightweight pointwise prediction based tokenizer. This is a Python wrapper for Vaporetto.

🐍 python-vaporetto 🛥 Vaporetto is a fast and lightweight pointwise prediction based tokenizer. This is a Python wrapper for Vaporetto. Installation

Find files (ff) by name, fast!
Find files (ff) by name, fast!

Find Files (ff) Find Files (ff) utility recursively searches the files whose names match the specified RegExp pattern in the provided directory (defau

Fast suffix arrays for Rust (with Unicode support).
Fast suffix arrays for Rust (with Unicode support).

suffix Fast linear time & space suffix arrays for Rust. Supports Unicode! Dual-licensed under MIT or the UNLICENSE. Documentation https://docs.rs/suff

A fast implementation of Aho-Corasick in Rust.

aho-corasick A library for finding occurrences of many patterns at once with SIMD acceleration in some cases. This library provides multiple pattern s

Blazingly fast framework for in-process microservices on top of Tower ecosystem
Blazingly fast framework for in-process microservices on top of Tower ecosystem

norpc = not remote procedure call Motivation Developing an async application is often a very difficult task but building an async application as a set

Ultra-fast, spookily accurate text summarizer that works on any language
Ultra-fast, spookily accurate text summarizer that works on any language

pithy 0.1.0 - an absurdly fast, strangely accurate, summariser Quick example: pithy -f your_file_here.txt --sentences 4 --help: Print this help messa

A lightning-fast Sanskrit toolkit. For Python bindings, see `vidyut-py`.

Vidyut मा भूदेवं क्षणमपि च ते विद्युता विप्रयोगः ॥ Vidyut is a lightning-fast toolkit for processing Sanskrit text. Vidyut aims to provide standard co

Comments
  • performance across PDF versions

    performance across PDF versions

    What's the expected performance across PDF versions / types? (Edit: maybe have a table added to the README?)

    For comparison, GPU performance under hashcat on a single GTX 1080, across supported PDF versions, is as follows:

    $ for hashtype in 10400 10420 10500 25400 10600 10700; do \
        hashcat -b -w 4 -O -m $hashtype --quiet; done
    
    -------------------------------------------------
    * Hash-Mode 10400 (PDF 1.1 - 1.3 (Acrobat 2 - 4))
    -------------------------------------------------
    
    Speed.#1.........:   414.1 MH/s (403.66ms) @ Accel:1024 Loops:256 Thr:32 Vec:1
    
    --------------------------------------------------------------
    * Hash-Mode 10420 (PDF 1.1 - 1.3 (Acrobat 2 - 4), collider #2)
    --------------------------------------------------------------
    
    Speed.#1.........:  6510.0 MH/s (102.36ms) @ Accel:1024 Loops:1024 Thr:32 Vec:1
    
    ------------------------------------------------------------------
    * Hash-Mode 10500 (PDF 1.4 - 1.6 (Acrobat 5 - 8)) [Iterations: 70]
    ------------------------------------------------------------------
    
    Speed.#1.........: 14044.6 kH/s (30.67ms) @ Accel:1024 Loops:70 Thr:32 Vec:1
    
    ----------------------------------------------------------------------------------------
    * Hash-Mode 25400 (PDF 1.4 - 1.6 (Acrobat 5 - 8) - user and owner pass) [Iterations: 70]
    ----------------------------------------------------------------------------------------
    
    Speed.#1.........: 14294.5 kH/s (30.56ms) @ Accel:1024 Loops:70 Thr:32 Vec:1
    
    -----------------------------------------------
    * Hash-Mode 10600 (PDF 1.7 Level 3 (Acrobat 9))
    -----------------------------------------------
    
    Speed.#1.........:  3128.5 MH/s (423.99ms) @ Accel:128 Loops:512 Thr:1024 Vec:1
    
    ----------------------------------------------------------------------
    * Hash-Mode 10700 (PDF 1.7 Level 8 (Acrobat 10 - 11)) [Iterations: 64]
    ----------------------------------------------------------------------
    
    Speed.#1.........:    34875 H/s (586.47ms) @ Accel:32 Loops:8 Thr:256 Vec:1
    
    documentation 
    opened by roycewilliams 2
  • Colors not working on Windows 10

    Colors not working on Windows 10

    Some colors works, others doesn't, here a screenshot of it:

    image

    I've tested both with powershell and cmd on Windows 10 Pro 21H1.

    User name hidden due of privacy reasons.

    opened by princessmortix 0
Owner
Mufeed VH
19. flippin' bits. poppin' calcs.
Mufeed VH
Front-coding string dictionary in Rust

Front-coding string dictionary in Rust This is a Rust library of the (plain) front-coding string dictionary described in Martínez-Prieto et al., Pract

Shunsuke Kanda 6 Jul 14, 2022
A backend for mdBook written in Rust for generating PDF based on headless chrome and Chrome DevTools Protocol.

A backend for mdBook written in Rust for generating PDF based on headless chrome and Chrome DevTools Protocol.

Hollow Man 52 Jan 7, 2023
Sorta Text Format in UTF-8

STFU-8: Sorta Text Format in UTF-8 STFU-8 is a hacky text encoding/decoding protocol for data that might be not quite UTF-8 but is still mostly UTF-8.

Rett Berg 18 Sep 4, 2022
SEFF - Simple Embeddable Font Format

SEFF - Simple Embeddable Font Format This crate is designed to allow decent text rendering in resource-constrained environments like microcontrollers.

Cliff L. Biffle 3 May 2, 2022
A small CLI utility for helping you learn japanese words made in rust 🦀

Memofante (Clique aqui ver em português) Memofante is here, a biiiig help: Do you often forget japanese words you really didn't want to forget? Do you

Tiaguinho 3 Nov 4, 2023
A simple and fast linear algebra library for games and graphics

glam A simple and fast 3D math library for games and graphics. Development status glam is in beta stage. Base functionality has been implemented and t

Cameron Hart 953 Jan 3, 2023
Rust edit distance routines accelerated using SIMD. Supports fast Hamming, Levenshtein, restricted Damerau-Levenshtein, etc. distance calculations and string search.

triple_accel Rust edit distance routines accelerated using SIMD. Supports fast Hamming, Levenshtein, restricted Damerau-Levenshtein, etc. distance cal

Daniel Liu 75 Jan 8, 2023
💥 Fast State-of-the-Art Tokenizers optimized for Research and Production

Provides an implementation of today's most used tokenizers, with a focus on performance and versatility. Main features: Train new vocabularies and tok

Hugging Face 6.2k Jan 5, 2023
A fast, low-resource Natural Language Processing and Text Correction library written in Rust.

nlprule A fast, low-resource Natural Language Processing and Error Correction library written in Rust. nlprule implements a rule- and lookup-based app

Benjamin Minixhofer 496 Jan 8, 2023
Fast and easy random number generation.

alea A zero-dependency crate for fast number generation, with a focus on ease of use (no more passing &mut rng everywhere!). The implementation is bas

Jeff Shen 26 Dec 13, 2022