NSSCTF [SWPUCTF 2021 新生赛]crypto8

开启环境,什么东西?只有一个文件???那就先下载下来看看

73E-30U1&>V-H965S95]I<U]P;W=E<GT`

这样一串字符,没有网页,只有文件,那肯定是用某种加密方式加密之后的结果。但是这个形式的加密是真没见过,才疏学浅,只能先上网取经了。

看了这篇大佬的文章

大佬说是UUencode编码,先去找个解码器试试。

 成功拿到flag,大佬诚不欺我,那就去先学习学习UUencode编码是什么。

UU编码是乱码算法之一,他会将三字节的BIN数据转换成四字节可打印的ascll字符。

uuencode 编码方式用于将任意的二进制文件转换为文本文件,比如email.转换后的文件中仅包含可打印字符.
uuencode 运算法则将连续的 3字节编码转换成 4字节(8-bit 到 6-bit)的可打印字符.

下面是我看的几篇文章

一.windows四种编码方式

二.乱码算法大全(一)UUencode

三.乱码算法大全

四.UU编码简介

五.UUencode编码

这里再放一个大佬给的UUencode的python脚本

复制代码
def uuencode():
    str = input("请输入需要编码的字符:")
    data = ""
    # 将字符串中的每个字母以二进制的形式变成ASCALL码
    for c in str:
        a = format(ord(c), 'b')
        for i in range(8 - len(a)):  # 如果a的长度不够8,就会一直循环,补0
            a = "0" + a
        data = data + a    # 然后将a加到data
 
    if len(data) % 24 != 0:
        length = len(data)
        for i in range(24 - length % 24):
            data = data + "0"
 
    print(chr(32 + int(len(data) / 8)), end="")
 
    for i in range(0, len(data), 24):
        data_1 = data[i:i + 24]
        for j in range(0, len(data_1), 6):
            if int(data_1[j:j + 6], 2) == 0:
                print(chr(int(0x60)))
            else:
                print(chr(int(data_1[j:j + 6], 2) + 32), end="")
 
 
def uudecode():
    str = input("请输入需要解码的字符:")
    data = ""
 
    for c in str[1:]:  # 不需要第一个字符
        a = format(ord(c) - 32, 'b')   # ASCALL码先减去32再转换为二进制
        for i in range(6 - len(a)):  # 如果二进制不到六位,用“0”在字符串前面补齐
            a = "0" + a
        data = data + a
 
    for i in range(0, len(data), 24):
        data_1 = data[i:i + 24]  # 每24位截取一次
        for j in range(0, len(data_1), 8):  # 二十四个中每八个截取
            print(chr(int(data_1[j:j + 8], 2)), end="")
 
 
if __name__ == "__main__":
    uudecode()
    print()
    uuencode()
复制代码

 

posted @   karasbai  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示