Skip to content

Multithreaded C# and c++ application that computes hashes to create your own rainbow tables in MD5 or SHA256

License

Notifications You must be signed in to change notification settings

jonathan2266/MD5reborn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MD5reborn

Multithreaded application to create your own rainbow tables in any hashing algorithm. It has two version one written in c# and the other in c++. It is recommended to use the c++ version since it is much faster.

What it does

This program will create a rainbow table from scratch and can pick up where you left it. Should be compatible with any hashing algorithm. Currently MD5, SHA256, SHA512

Current state

  • When given a blank folder the program can start creating files from scratch. These files contain 12Million lines a word starting from "a" and its hash.
  • When the program is restarted it can pick up at the word it last hashed.
  • Different hashing algorithms
  • Currently this program works in linux mono. Be carefull that line endings are different so windows created files are not compatible.
  • Load balancing: Give up multiple destinations for your data. Writing from 16 Threads to one Hardrive might be a problem.
  • A speedy c++ port.
  • Linux support for c# and c++ (c++ line endings are currently always "\n")

Future features

  • Add options to choose line ending.
  • More command line options: So you can choose ToDisk format (example: instead of writing to a file you write directly to a database).
  • Performance tweaks: In the ToDisk section
  • Better Debug data
  • Console info and possibly commands
  • Load balancing with master slave -> so a master sends out jobs to slaves over tcp. Working example is another project of mine MD5_V4.0. You might want to pull a older verion newest one does not work.
  • Crazy When there is nothing left why not add gpu acceleration :) if we ever get there.

How to use

Clone the repo -> compile binary -> create an empty folder on a drive -> run the program with arguments. C++ requires extra binaries. openSSL (1.1.0c) and boost (1.63.0)

current arguments

  • arg0: [Path] : D:\test\
  • argN: [Path] : E:\extra\drive\ You can add as many drives as you like.
  • argN+1: [HashAlgoritm] : MD5 : SHA256 : SHA512

Why

I like multithreading.