BaseCTF [Week2] 最简单的编码

前言:做题笔记。

下载解压 查壳。

64ida打开。

查找字符串。

跟进。

逆着向前看。

说明是密文。

里面是base64的变异加密。

原base64关键加密:

(看BaseCTF week1 第一周BasePlus 官方WP)

变种后:

在此基础上加上了a4\[\]的值,而a4对应的是 v9(已知)

接着往上看。

sub_14001119A:

大致看着挺复杂的。

不过,没关系,我们可以去动态调试。

跟进。

说明这是对原base64表进行了换位,从而得到了一个新的base64表。

程序整体逻辑就是:

输出的字符串,用新的base64表,以及新的base64算法去进行编码,从而得到了编码后的字符。

可是,佬,思路清晰,动手能力不行怎么办?

没事,我们有豆妈。。。豆妈爱你!!!

注意,豆妈生成的解码脚本需要密文后再加一个 "=" ()

自己写的话。。。我不知道需不需要 "="

脚本:

python 复制代码
newbase64 = 'CDABGHEFKLIJOPMNSTQRWXUVabYZefcdijghmnklqropuvstyzwx23016745+/89'
base64_dict = {v: k for k, v in enumerate(newbase64)}

def custom_base64_decode(encoded):
    padding = encoded.count('=')
    encoded = encoded.rstrip('=')
    a4 = [1, 2, 3, 4]
    decoded = b''
    i = 0
    while i < len(encoded):
        if i + 3 >= len(encoded):
            break
        v1 = base64_dict[encoded[i]]
        v2 = base64_dict[encoded[i + 1]] if i + 1 < len(encoded) else 0
        v3 = base64_dict[encoded[i + 2]] if i + 2 < len(encoded) else 0
        v4 = base64_dict[encoded[i + 3]] if i + 3 < len(encoded) else 0
        v13 = ((v1 - a4[0]) << 18) + ((v2 - a4[1]) << 12) + ((v3 - a4[2]) << 6) + (v4 - a4[3])
        decoded += bytes([(v13 >> 16) & 0xFF])
        if i + 2 < len(encoded):
            decoded += bytes([(v13 >> 8) & 0xFF])
        if i + 3 < len(encoded):
            decoded += bytes([v13 & 0xFF])
        i += 4
    return decoded[:-padding]

encoded_string = "TqK1YUSaQryEMHaLMnWhYU+Fe0WPenqhRXahfkV6WE2fa3iRW197Za62eEaD="
print(custom_base64_decode(encoded_string).decode('utf-8', errors='replace'))

少个" } " O.0? 额,添上就是了。

验证:

BaseCTF{B45E64_eNCoDIn9_I5_rE4LLY_7OO_5implE}

相关推荐
程序边界1 天前
一台数据集成软件的拆解笔记(下):一致性、容错、跑批与迁移,KFS 真正难的地方在这
java·前端·笔记
金色光环1 天前
【DSP学习】C2000_ADC中断_笔记
笔记·学习
zhangrelay1 天前
mrpt杂乱笔记-26-10-31
笔记·学习
熊猫钓鱼>_>1 天前
平行视界兼容模式与魔法变量配置避坑【鸿蒙心迹】
运维·服务器·开发语言·笔记·华为·harmonyos·openharmony
IT19951 天前
Docker 快速部署 DM8 达梦数据库|完整踩坑笔记
笔记·docker·容器
東隅已逝,桑榆非晚1 天前
算法2. 双指针法-复写零
c++·笔记·学习·算法
云析赢指标公式网41 天前
文华财经指标源码笔记:WINNER筹码函数、控盘变量与MACD变体的调试记录
java·笔记·算法
无心水1 天前
22、数学与经济管理(运筹学) 核心考点与学习笔记
人工智能·笔记·学习·架构师·软考·软考架构师·软考系统架构师
xxwl5851 天前
Nginx 基础学习笔记
笔记·学习·nginx
January12071 天前
【AI方法笔记】2026-11-02:模型流式吐 JSON 时,前端会遇到四种崩法
前端·人工智能·笔记·json