BUUCTF-[羊城杯 2020]easyre

[羊城杯 2020]easyre

查壳,64位无壳

主函数这一长串给我的感觉就是base64加密,发现下面有三个加密函数,这一串是密文,那我们思路就是倒着一个个解密了image-20250328194607352

第三个加密函数,a3是我们已知的密文,我们需要回推a1。加密一言秒了,偏移量为3的凯撒加密image-20250328194811073

这是第二个函数,将每13个字符替换位置image-20250328195234746

这是第三个函数,本来以为这是魔改了的,没想到就是标准的base64加密image-20250328195337355

为了锻炼自己写脚本的能力,本来这基本都是可以在线解密的,全部用一个脚本写出来了。发现把等于号弄丢了。。。算了能出flag就行,这次考虑欠妥了

import base64
enc='EmBmP5Pmn7QcPU4gLYKv5QcMmB3PWHcP5YkPq3=cT6QckkPckoRG'
enc = list(enc)
for i in range(len(enc)):
    if ord(enc[i]) >=65 and ord(enc[i]) <=90: 
        enc[i] = (ord(enc[i])-65-3)%26 + 65
    elif ord(enc[i]) >=97 and ord(enc[i]) <=122:
        enc[i] = (ord(enc[i])-97-3)%26 + 97
    else:
        enc[i] = (ord(enc[i])-48-3)%10 + 48
    #print(chr(enc[i]),end='')
#BjYjM2Mjk4NzMR1dIVHs2NzJjY0MTEzM2VhMn00zQ3NzhhMzhlOD
tmp=[0]*52
tmp2=''
tmp[26:39]=enc[0:13]
tmp[0:13]=enc[13:26]
tmp[39:52]=enc[26:39]
tmp[13:26]=enc[39:52]
for i in range(len(tmp)):   
    #print(chr(tmp[i]),end='')
    #R1dIVHs2NzJjYzQ3NzhhMzhlODBjYjM2Mjk4NzM0MTEzM2VhMn00
    tmp2+=chr(tmp[i])
print(base64.b64decode(tmp2).decode())
#GWHT{672cc4778a38e80cb362987341133ea2}4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值