Jarvis oj 文件数据修复 writeup

感觉这题把逆向玩成了misc。。。。

首先用mfc工具找到处理解密的函数

看了下代码,是把输入的密码一顿操作之后生成16位的key

然后用这个key异或一波文件的内容,异或完一次之后+1

但是关键是我们不知道密码是什么。。。虽然提示了8位纯数字,但是爆破依然很浪费时间

于是就发呆看着屏幕。。。结果看到有几列东西是每一列+1。。。于是大胆猜测全部都是0,这些就是key加了n异或后的结果

这里写图片描述

于是写个脚本,解出文件,binwalk一波就能拿到一个thumbnail.jpeg 里面就有flag,脚本如下

w=[68, 225, 182, 139, 213, 101, 249, 158, 210, 71, 76, 51, 255, 17, 128, 252]

f=open('CTF_300_1.ctf','rb')
da=f.read()
p=[]
for i in range(len(da)):
    p.append(da[i]^w[i%16])
    w[i%16]+=1
    w[i%16]%=256
f.close()
f=open('dec','wb')
f.write(bytes(p))
f.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值