Decode All Bases - Base Scheme Decoder
BaseCrack is a tool written in Python that can decode all alphanumeric base encoding schemes. This tool can accept single user input, multiple inputs from a file, input from argument, multi-encoded bases, bases in image EXIF data, bases on images with OCR and decode them incredibly fast.
Decode Base16, Base32, Base36, Base58, Base62, Base64, Base64Url, Base85, Ascii85, Base91, Base92 and more with the best base encoding scheme decoding tool in town. It's useful for CTFs, Bug Bounty Hunting, and Cryptography (NOTE: Base Encoding is not an "Encryption" hence it doesn't fall under the Cryptography category, it's useful as base scheme encoding are often used in cryptography tools/projects/challenges).
What's new in v3.0:
What's new in v2.0:
Now you can decode multi-encoded bases of any pattern in a single shot.
Have you ever stumbled upon that one lame CTF challenge that gives you an encoded string which is just encoded over and over with Base64, Base91, Base85 and so on? Just give that to BaseCrack and you're done with it! ;)
Want to test it out? Just give it this input:
IX([email protected]and see for yourself! :)
BaseCrack API
BaseCrack can now be used as a library! Just import the
BaseCrack()class and call thedecode()function.See API.
What's new in v1.1:
I heard your feature requests, now you can generate a wordlist/output with the decoded bases! :)
Supported Encoding Schemes
$ git clone https://github.com/mufeedvh/basecrack.git $ cd basecrack $ pip install -r requirements.txt $ python basecrack.py -h
📝 NOTE: Python3 is recommended to use!
Linux:
$ sudo apt-get update $ sudo apt-get install tesseract-ocr libtesseract-dev
MacOS:
$ brew install tesseract
Windows:
OCR Detection is implemented with Tesseract and Windows requires installation of the Tesseract executable. Installing the dependencies from
requirements.txtwhich includes
pytesseractshould install it. If in case it doesn't, here's how you can set it up:
Program Files/
Program Files (x86)under the
Tesseract-OCRdirectory.
config.jsonand you're all set! If you don't have it, install it from here and set the path in
config.json.
Tesseract Docs: https://tesseract-ocr.github.io/
📝 NOTE: I haven't completely tested this tool on Windows so if you stumble upon any issues, please open an issue.
Get a list of all the arguments:
python basecrack.py -h
To decode a single base encoding from user input:
python basecrack.py
To decode a single base encoding from argument (-b/--base):
python basecrack.py -b SGVsbG8gV29ybGQh
To decode multiple base encodings from a file (-f/--file):
python basecrack.py -f file.txt
Magic Mode: To decode multi-encoded base of any pattern (-m/--magic):
python basecrack.py --magic
To input an image for EXIF/OCR detection mode (-i/--image):
python basecrack.py -i image.jpg (--exif/--ocr)
EXIF Data Detection: To decode bases in image EXIF data (-e/--exif):
python basecrack.py -i image.jpg --exif
OCR Base Detection: To decode bases on image with OCR detection (-c/--ocr):
python basecrack.py -i image.jpg --ocr
To generate a wordlist/output with the decoded bases (-o/--output):
python basecrack.py -f file.txt -o output-wordlist.txt
Want to use BaseCrack as a library? We got you covered!
Just put
basecrackin your project's directory and you're ready to go!
Example:
# import the BaseCrack class from basecrack.py from basecrack import BaseCrackcalling the api function decode() with the encoded base
result = BaseCrack().decode('c3BhZ2hldHRp')
printing the output
""" result is tuple where: result[0] = DECODED STRING result[1] = ENCODING SCHEME """ print('Decoded String: {}'.format(result[0])) print('Encoding Scheme: {}'.format(result[1]))
Output:
Decoded String: spaghetti Encoding Scheme: Base64
Time to integrate this into your automation tools! ;)
Try It Yourself!
python basecrack.py -i examples/exif-example.jpg --exif
Try It Yourself!
python basecrack.py -i examples/ocr-example.jpg --ocr
Ways to contribute - Suggest a feature - Report a bug - Fix something and open a pull request - Help me document the code - Spread the word
Before you open a PR, make sure everything's good with a Unit Test:
Unit Tests: (Thanks @FavasM)
python3 -m unittest discover -v -s tests
Licensed under the MIT License, see LICENSE for more information.
Support the author by buying him a coffee!
Support this project by starring ⭐, sharing 📲, and contributing 👩💻! :heart: