BaseCrack は、すべての英数字ベースエンコーディングスキームをデコードできる Python 製ツールです。このツールは、単一のユーザー入力、ファイルからの複数入力、引数からの入力、マルチエンコードされたベース、画像 EXIF データ内のベース、OCR による画像上のベース を高速に処理できます。
基本的なデモについては、BaseCrack の API を利用した Web インターフェース をお試しください。
$ git clone https://github.com/mufeedvh/basecrack.git
$ cd basecrack
$ pip3 install -r requirements.txt
$ python3 basecrack.py -h
注: Python3 の使用をお勧めします!
Linux:
$ sudo apt-get update
$ sudo apt-get install tesseract-ocr libtesseract-dev
MacOS:
$ brew install tesseract
Windows:
OCR 検出は Tesseract で実装されており、Windows では Tesseract 実行可能ファイルのインストールが必要です。requirements.txt から依存関係をインストールすると、pytesseract が含まれるはずです。もしインストールされない場合は、以下の手順で設定してください。
Program Files/Program Files (x86) の Tesseract-OCR ディレクトリにインストールされているか確認します。config.json に設定すれば完了です。インストールされていない場合は、こちら からインストールし、config.json にパスを設定してください。Tesseract ドキュメント: https://tesseract-ocr.github.io/
注: このツールは Windows で完全にテストしていません。問題が発生した場合は、issue を開いて ください。
すべての引数のリストを表示:
python3 basecrack.py -h
ユーザー入力から単一のベースエンコーディングをデコード:
python3 basecrack.py
引数 (-b/--base) から単一のベースエンコーディングをデコード:
python3 basecrack.py -b SGVsbG8gV29ybGQh
ファイル (-f/--file) から複数のベースエンコーディングをデコード:
python3 basecrack.py -f file.txt
マジックモード: 任意のパターンのマルチエンコードベースをデコード (-m/--magic):
python3 basecrack.py --magic
EXIF/OCR 検出モード用の画像を入力 (-i/--image):
python3 basecrack.py -i image.jpg (--exif/--ocr)
EXIF データ: 画像の EXIF データ内のベースをデコード (-e/--exif):
python basecrack.py -i image.jpg --exif
OCR ベース検出: OCR 検出による画像上のベースをデコード (-c/--ocr):
python basecrack.py -i image.jpg --ocr
デコードされたベースでワードリスト/出力を生成 (-o/--output):
python basecrack.py -f file.txt -o output-wordlist.txt
マルチエンコードされたベース を任意のパターンで一発デコードできるようになりました。
Base64、Base91、Base85 などで何度もエンコードされた文字列を出す、あのつまらない CTF チャレンジに出くわしたことはありませんか?それを BaseCrack に渡せば完了です! ;)
試してみたいですか?以下の入力を与えてみてください。
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
結果をご覧ください! :)
BaseCrack をライブラリとして使用できるようになりました!BaseCrack() クラスをインポートし、decode() 関数を呼び出してください。
API を参照。
BaseCrack をライブラリとして使いたいですか?対応しています!
プロジェクトのディレクトリに basecrack を配置するだけで準備完了です!
例:
# basecrack.py から BaseCrack クラスをインポート
from basecrack import BaseCrack
# API 関数 decode() をエンコードされたベースで呼び出し
result = BaseCrack().decode('c3BhZ2hldHRp')
# 出力を表示
"""
result はタプルで、以下を保持:
result[0] = デコードされた文字列
result[1] = エンコーディングスキーム
"""
print('Decoded String: {}'.format(result[0]))
print('Encoding Scheme: {}'.format(result[1]))
出力:
Decoded String: spaghetti
Encoding Scheme: Base64
貢献の方法
プルリクエストを送る前に、テストを実行して問題がないか確認してください。
単体テスト: (感謝 @FavasM)
python3 -m unittest discover -v -s tests
MIT ライセンスの下で提供されています。詳細は LICENSE を参照してください。