[HUBUCTF 2022 新生赛]simple_RE

查壳:

64位,进IDA:

看正确输出:

有要比较的两个字符a5mc58bphliax7j和Buf1,可以知道目的字符串是a5mc58bphliax7j,跟进看看:

再看看Buf1,可以看见它是根据我们输入的字符进行sub_401570方法后得到的,那么我们跟进:

熟悉的配方,base64加密格式,看看是否为标码:

很明显,不是,而且不是替换,而是打乱了,那么我们需要做个映射表

总结一下:

对输入的字符串进行非标码的base64加密

与‘5Mc58bPHLiAx7J8ocJIlaVUxaJvMcoYMaoPMaOfg15c475tscHfM/8==’作比较

上脚本:

Str = "qvEJAfHmUYjBac+u8Ph5n9Od17FrICL/X0gVtM4Qk6T2z3wNSsyoebilxWKGZpRD" # 自定义base64码
model = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" # 标准base64码
enc = "5Mc58bPHLiAx7J8ocJIlaVUxaJvMcoYMaoPMaOfg15c475tscHfM/8==" # 目标
print(base64.b64decode(enc.translate(str.maketrans(Str, model))))

得到NSSCTF{a8d4347722800e72e34e1aba3fe914ae}

posted @   TFOREVERY  阅读(238)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示