BMZCTF Reverse5

我们首先用winrar打开压缩包,发现了如下提示,估计是要自己创建一个破解压缩包的字典,通过对字母或数字进行base64加密,base85加密,base91加密,然后连接三种加密后的字符串,写在字典里,然后利用ARCHPR选择字典模式破解。

我们写了如下脚本:

import base64
import base91
a=''
b=''
c=''
d=''
with open('zidian.txt', 'w') as f:
    for i in range(0,9999):
        a=base64.b64encode(str(i).encode('utf-8'))
        a=str(a)
        a=a[2:-1]
        b=base64.b85encode(str(i).encode("utf-8"))
        b=str(b)
        b=b[2:-1]
        c=base91.encode(str(i).encode("utf-8"))
        d=str(a)+str(b)+str(c)
        f.write(d+"\r\n")
        #print(d)

我们猜测它是数字不超过四位,所以形成如上脚本,但是需要注意的是,似乎python2.X是没有base85加密解密方法的,所以需要升级到python3以上,但是还需要base91,于是我们上GitHub下载了别人的base91.py来导入使用。如下为生成的爆破字典。

接下来使用ARCHPR字典模式来爆破,将压缩包拖入软件,字典文件选择自己生成的txt。

我们得到了口令,很明显如果直接暴力破解不知道得多久。

NjAwOA==HZU+a3tVEO

我们得到一个名为题目.bin的文件,直接用记事本打开发现了它是010edit以16进制导出的base64形式的文件,所以我们可以直接用010导入。

我们导入之后可以看出是正常的exe文件,但是我们需要将它导出为exe,最后少了四个0也要补上。

得到一个vb程序,如下:

我们根据提示知道只要计算出一道3位数+3位数就可以得到flag,然而我们实际操作之后,发现速度根本来不及,它有计时,超过时间就失败,而且更坑的是只让你输入两位数,这样永远对不了。所以我们直接上IDA.

但是对于VB,ida看不到伪代码,所以我们直接看汇编,找到出flag处。

很明显这题跟异或加密有关。写得解FLAG的python代码,如下:

a='fpceyvb3qgcq;sus'
k=0
y=''
for i in a:
    
    y=y+chr((((ord(i)-1)^5))^6)
print(y)

得到flag为:flag{vb1seas9qwq}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白帽子社区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值