DASCTF2022三月-书鱼的秘密
给出了提示,图片和233,用winhex查看,发现在文件开头就存在不合理的数据,推测要从这块数据得到一张图片,因此要对这块数据进行分析,从第158位开始,每隔9位就会有一个数据,因此需要利用脚本将这些数据导出来,另外前面一部分数据,需要注意说不定就是文件头或者文件尾,6BAB47AD
是这块数据的一段头部,既不是文件头也不是文件尾,这时利用233与这块数据做位运算,发现在做异或运算时,得到了826042AE
这个数据,而这正是png文件的文件尾AE426082
的逆序,那么思路就变得简单了,每10位提取数据并与233做异或运算,然后逆序输出到文件中生成图片
脚本代码如下:
with open("E:\Download\misc\书鱼的秘密\书鱼的多重文件.wav",'rb') as fr: data = fr.read()[158:] fr.close() with open("res.png",'wb') as fw: a = bytearray() #png文件头 b = [137,80,78,71] b1 ,b2 ,b3 ,b4 = 0 ,0 ,0 ,0 for i in range(0,len(data),10): t = data[i]^233 a += t.to_bytes(1,byteorder="little") b1 ,b2 ,b3 ,b4 = t ,b1 ,b2 ,b3 #遇到文件头就退出 if [b1,b2,b3,b4] == b: break fw.write(a[::-1]) fw.close()
成功得到图片
使用StegSolve查看图片,发现在蓝色通道时图片顶部有信息,,
导出。
用winhex查看导出的文件,看到文件头504B0304,是个压缩包
用压缩软件打开,有一个md文本文件
第一列的数字,只能靠猜测,当然如果平时经常用9键的人,应该会发现24462
,在9键中对应着china,那么对照着这个表破译,可以得到
canada 1 afghanistan 1 latvia 3 luxembourg 3 india 2 nigeria 1 greece 2 china 1-2 oman 2 djibouti 3 equatorial guinea 2 bolivia 3 bermuda 0-3 japan 1
第一列都是国家名称,结合电话号码这个信息,那么第二列应该就是国家对应电话号码区号的第几位,重新编排
canada 1 -1 1 afghanistan 1 -93 9 latvia 3 -371 1 luxembourg 3 -352 2 india 2 -91 1 nigeria 1 -234 2 greece 2 -30 0 china 1-2 -86 86 oman 2 -968 6 djibouti 3 -253 3 equatorial guinea 2 -240 4 bolivia 3 -591 1 bermuda 0-3 -440 -440 japan 1 -81 8 最后结果:1912120866341-4408
将电话号码md5散列计算后用DASCTF{}包裹得到答案 DASCTF{4d1a3568b2a81c7d958892bf100b3f15}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix