UNCTF2022-MICS-my picture

下载附件是一个picture,拖入HXD 发现表头 50 4B 03 04 为一个zip压缩包表头,回来为文件添加.Zip后缀

 

 dat 文件微信加密 通过与某一个值进行异或运算的加密方法将图片,压缩包等文件的进行异或运算成新的加密文件百度搜素压缩包文件的16进制开头为50 4B 与dat的开头 DE C5 异或得到密钥8E

将8E 与dat的每个16进制进行异或还原文件添加后缀.zip

zip压缩包解压里面有一个encode.py文件

加密方式为调取flag.jpg 宽高倒转每个for循环从(i,j)坐标取rgb值,在经过异或运算出新的rgb值,再以b,g,r的顺序放到新的地址((i787+j)//1200,(i787+j)%1200)中去最后生成一个新的图片flag.png。

逆着推导从新坐标((i787+j)//1200,(i787+j)%1200)取rgb值在经过r=r^g ,g=g^b,b=b^r

解密出原来的rgb值再放回I,j本来坐标生成flag.jpg

 总结

1,利用16进制编辑器查看未知类型的文件,与常见的png,jpg,zip等文件的16进制文件头,文件尾比较一下,或许添加一下后缀就可以还原

2,dat 是通过异或进行加密的,只需要根据文件头计算出异或值,即可进行解密

3,encode.py对图片的加密方式每次从(I,J)中调取rgb值进行异或运算后在放到新的地址中以bgr的顺序放入生成新的图片的加密方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值