mufeedvh / pdfrip

A multi-threaded PDF password cracking utility equipped with commonly encountered password format builders and dictionary attacks.
MIT License
589 stars 67 forks source link

Overhauled project #4

Closed Pommaq closed 1 year ago

Pommaq commented 1 year ago

I was bored.

The original project had multiple issues, most importantly being it's massive RAM consumption.

I tested this project when cracking a PDF file where the password was some colombian/whatever SSN. My math indicates that would've used about 80 terabytes of RAM since the list of password was generated first. This overhaul ensures all passwords are produced on the fly for all of the previously existing password generators, i.e. what used to be called "parsers".

Additionally the code could be cleaned up for some major gains in readability, maintainability and modularity.

Pommaq commented 1 year ago

Oh and I replaced the DIY logging library with the log crate along with pretty_env_logger as a backend.

mufeedvh commented 1 year ago

Thank you, this is exactly how I wanted this project to be structured. I wrote this for my own need, also when I was bored so didn’t necessarily care much about constraints.

The DIY logging implementation wasn’t exactly for logging, it was just status indicators and I wanted it to look cool so I made my own format but proper logging fits better so that’s fine.

I am merging this and I want to rewrite the parser part to utilize Regex when I get some time. And the code comments as well, which are funny so I will keep them in the meantime.