多层base家族嵌套解密

前言

ctf有考到未知的base加密,如果数据量少用随波逐流或者cyberchef或者各种小工具都还是方便的

但考虑到有些奇奇怪怪的出题,嵌套个几十层的加密,这里写了个简单的小脚本自动识别base加密模式并自动解密

关于工具与库的安装

  • base92的python3库安装可以参考base92解码(python3实现base92加解码)_py3base92 pip_Gu_fcsdn的博客-CSDN博客

    项目地址

    下载地址

    安装方法:

    • 下载完毕后找到 py3base92_setup 文件夹打开
    • windows下直接双击 install.bat 即可安装,或者进入到该目录然后运行 python setup.py install 即可
    • linux下安装直接进入到setup.py存在的目录然后执行python setup.py install 即可
    • 安装完毕后用 import py3base92 语句导入模块测试,若无报错即安装成功
  • base62的库安装使用命令pip install pybase62,但不同网站的base62加密原理都不相同,python自己的base62库解密效果测试后也强差人意,已将对应部分的解密代码注释掉了,如果有需要可以自行取消注释

  • base91在python里解密速度极慢,这里也已将对应部分的解密代码注释掉了,如果有需要可以自行取消注释

    如果有加快解密速度的措施请联系我或评论区留言

  • 代码中使用了ANSI转义序列改变输出的字体颜色,win10下的cmd默认是不支持的,关于ANSI转义序列的安装参考cmd输出彩色字体(win10 cmd控制台支持ANSI转义序列) - naiij - 博客园 (cnblogs.com)

    • 下载地址

    • 进入对应位数文件夹下运行命令
      ansicon.exe -i
      ansicon.exe -l
      
  • 对于工具的宝贵改进意见也请联系我或评论区留言

工具的简单用法

  • -t参数直接输入加密数据
  • -f参数读取文件
  • --process参数输出每一步的解密过程(密文过长慎加)
  • -h获取帮助

可以的话请为toto点个赞与关注叭

测试密文

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

源码

#-*- coding:utf-8 -*-

import base64,base58,base91,py3base92,base62
from collections import Counter
import argparse
import os
import sys
import colorama
colorama.init()

parser = argparse.ArgumentParser()
parser.add_argument('-f', type=str, default=None,
                    help='输入加密数据所在文件名称')
parser.add_argument('-t', type=str, default=None,
                    help='直接输入加密数据')
parser.add_argument('--process',action='store_true',
                    help='输出解密过程(密文过长不建议加上次选项)')
args = parser.parse_args()

print('\033[92m******************** 欢迎使用toto的base解密小工具(测试版)********************\033[0m')
print()
flag=args.process
if args.t:
    s=args.t
elif args.f:
    file_path = os.path.join(args.f)
    with open(file_path, "r") as f:
        s="".join(f.readlines()).encode('utf-8')
else:
    print(f'\033[91m-t或者-f参数不能同时为空!\033[0m输入-h查看帮助')
    sys.exit(1)

src=s
cipheylist=[]
while True:
    #base16
    try:
        src=s
        s=base64.b16decode(s)
        str(s,'ascii')
        cipheylist.append('base16')
        if flag:
            print("base16decode:",s)
        continue
    except:
        s=src
        pass
    
    #base32
    try:
        src=s 
        s=base64.b32decode(s)
        str(s,'ascii')
        cipheylist.append('base32')
        if flag:
            print("base32decode:",s)
        continue
    except:
        s=src
        pass

    #base64
    try:
        src=s 
        s=base64.b64decode(s)
        str(s,'ascii')
        cipheylist.append('base64')
        if flag:
            print("base64decode:",s)
        continue
    except:
        s=src
        pass

    #base58
    try:
        src=s 
        s=base58.b58decode(s)
        str(s,'ascii')
        cipheylist.append('base58')
        if flag:
            print("base58decode:",s)
        continue
    except:
        s=src
        pass
    

    #base85(b)
    try:
        src=s
        s=base64.b85decode(s)
        str(s,'ascii')
        cipheylist.append('base85(b)')
        if flag:
            print("base85(b)decode:",s)
        continue
    except:
        s=src
        pass

    #base85(a)
    try:
        src=s 
        s=base64.a85decode(s)
        str(s,'ascii')
        cipheylist.append('base85(a)')
        if flag:
            print("base85(a)decode:",s)
        continue
    except:
        s=src   
        pass
    
    # #base62
    # try:
    #     src=s 
    #     s=base62.decode(s)
    #     str(s,'ascii')
    #     cipheylist.append('base62')
    #     if flag:
    #         print("base62decode:",s)
    #     continue
    # except:
    #     s=src
    #     pass

    # #base91
    # try:
    #     src=s 
    #     s=base91.decode(s)
    #     str(s,'ascii')
    #     cipheylist.append('base91')
    #     if flag:
    #         print("base91decode:",s)
    #     continue
    # except:
    #     s=src
    #     pass



    #base92
    try:
        src=s
        s=str(s,'ascii').replace('\\\\','\\')
        s=py3base92.b92decode(s).encode()
        if not str(s,'ascii').isprintable():
            s=src
            break
        cipheylist.append('base92')
        if flag:
            print("base92decode:",s)
        continue
    except:
        s=src
        pass

    break


def count_characters(lst):
    counts = Counter(lst)
    for key, value in counts.items():
        print(f"{key} 总共执行了 {value} 次,",end='')
    print()

if cipheylist==[]:
    print(f'没有执行任何解密...')
    print()
else:
    print(f"执行的加密/解密过程为: {cipheylist}")
    print()
    count_characters(cipheylist)
    print()

if isinstance(src, str):
    print(f"\033[91m解密失败!\033[0m当前结果为:\033[91m{src}\033[0m")
else:
    print(f"解密成功!结果为:\033[92m{src.decode('utf-8')}\033[0m")   
input('请按任意键退出...') 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值