
Decodificar todas las bases - Base Scheme Decoder
BaseCrack es una herramienta escrita en Python que puede decodificar todos los esquemas de codificación base alfanuméricos. Esta herramienta puede aceptar entrada de un solo usuario, múltiples entradas desde un archivo, entrada desde argumento, bases multi-codificadas, bases en datos EXIF de imágenes, bases en imágenes con OCR y decodificarlas increíblemente rápido.
Para una demostración básica, prueba la Interfaz Web que usa la API de BaseCrack.
$ git clone https://github.com/mufeedvh/basecrack.git
$ cd basecrack
$ pip3 install -r requirements.txt
$ python3 basecrack.py -h
NOTA: ¡Se recomienda usar Python3!
Linux:
$ sudo apt-get update
$ sudo apt-get install tesseract-ocr libtesseract-dev
MacOS:
$ brew install tesseract
Windows:
La detección OCR está implementada con Tesseract y Windows requiere la instalación del ejecutable de Tesseract. Instalar las dependencias desde requirements.txt que incluye pytesseract debería instalarlo. Si en caso no lo hace, así es como puedes configurarlo:
Program Files/Program Files (x86) bajo el directorio Tesseract-OCR.config.json y ¡ya está! Si no lo tienes, instálalo desde aquí y establece la ruta en config.json.Documentación de Tesseract: https://tesseract-ocr.github.io/
NOTA: No he probado completamente esta herramienta en Windows, así que si te encuentras con algún problema, por favor abre un issue.
Obtén una lista de todos los argumentos:
python3 basecrack.py -h
Para decodificar una sola codificación base desde la entrada del usuario:
python3 basecrack.py
Para decodificar una sola codificación base desde argumento (-b/--base):
python3 basecrack.py -b SGVsbG8gV29ybGQh
Para decodificar múltiples codificaciones base desde un archivo (-f/--file):
python3 basecrack.py -f file.txt
Modo Mágico: Para decodificar bases multi-codificadas de cualquier patrón (-m/--magic):
python3 basecrack.py --magic
Para ingresar una imagen para el modo de detección EXIF/OCR (-i/--image):
python3 basecrack.py -i image.jpg (--exif/--ocr)
Datos EXIF: Para decodificar bases en datos EXIF de imagen (-e/--exif):
python basecrack.py -i image.jpg --exif
Detección OCR de Base: Para decodificar bases en imagen con detección OCR (-c/--ocr):
python basecrack.py -i image.jpg --ocr
Para generar una lista de palabras/salida con las bases decodificadas (-o/--output):
python basecrack.py -f file.txt -o output-wordlist.txt
Ahora puedes decodificar bases multi-codificadas de cualquier patrón de una sola vez.
¿Alguna vez te has topado con ese aburrido desafío CTF que te da una cadena codificada que está simplemente codificada una y otra vez con Base64, Base91, Base85 y así sucesivamente? ¡Solo dale eso a BaseCrack y ya está! ;)
¿Quieres probarlo? Solo dale esta entrada:
IX(Fp@nNG6ef<,*TFE]IT^zdINAb9EVbp,e<u=O6nN)/u+MTnU;Fo#VvQ&cK;mLZI#Jbdook<O{W#+gY%ooe#6pTkTa.9YPU8Uc=pl9BhSM9%kISw2k:8..u/6F2BwNndPZ2o#7NHNP3g,HlZu><*[Nv+T8
¡y compruébalo tú mismo! :)
¡BaseCrack ahora se puede usar como biblioteca! Solo importa la clase BaseCrack() y llama a la función decode().
Consulta API.
¿Quieres usar BaseCrack como biblioteca? ¡Te tenemos cubierto!
¡Solo coloca basecrack en el directorio de tu proyecto y ya estás listo!
Ejemplo:
# importa la clase BaseCrack de basecrack.py
from basecrack import BaseCrack
# llama a la función api decode() con la base codificada
result = BaseCrack().decode('c3BhZ2hldHRp')
# imprimiendo la salida
"""
result es una tupla donde:
result[0] = CADENA DECODIFICADA
result[1] = ESQUEMA DE CODIFICACIÓN
"""
print('Cadena Decodificada: {}'.format(result[0]))
print('Esquema de Codificación: {}'.format(result[1]))
Salida:
Cadena Decodificada: spaghetti
Esquema de Codificación: Base64
Formas de contribuir
Antes de abrir un PR, asegúrate de que todo esté bien ejecutando las pruebas:
Pruebas Unitarias: (Gracias @FavasM)
python3 -m unittest discover -v -s tests
Bajo la Licencia MIT, consulta LICENCIA para más información.