Misc01 data文件
差分曼彻斯特算法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 from libnum import * # 读取文件内容 with open("data", "r", encoding="utf-8") as f: all_str = f.read() # 计算输出字符串 out = [] n = (len(all_str) // 2) - 1 # 使用列表推导式构建输出 for i in range(n): out.append('0' if all_str[i*2:i*2+2] == all_str[i*2+2:i*2+4] else '1') # 将列表转换为字符串并转换为十六进制 hex_output = hex(int(''.join(out), 2))[2:] # 将结果写入文件 with open("tmp.txt", "w") as f: f.write(hex_output)
压缩包文件 去掉开头的 100000015
发现zip文件中夹杂多余字节,secret.png被分开,间隔为6个字节,估计是多余了6个字节。至于每取出多少字节后去除尾部6个字节,可以爆破。
因为头部504B03041400没有问题,从504B0304到42020015,长度44,可以从12爆破至44。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # 读取 ZIP 文件 with open("2.zip", "rb") as f: all_b = f.read() n = len(all_b) # 遍历不同的分段大小 for j in range(12, 45): out = bytearray() # 使用 bytearray 来构建输出 for i in range(0, n, j): out.extend(all_b[i:i + (j - 6)]) # 使用 extend 方法追加数据 # 写入输出文件 with open(f"out_{j}.zip", "wb") as f: f.write(out)
多次尝试发现每22个字节去除6个多余字节,可以恢复正常文件
1 [文字隐写术 - PixelJihad](https:// tool.zootu.cn/tools/ fun/pixels/ )
1 wdflag{f3b32f2151a877cad089c25994e5da4a}
Misc02 反编译jar包
找到AbstractHashMap
查看主代码
aes加密, key为
再找到加密后的flag
Li1Li1IlLlll
拿到加密后的数据
1 rCHPM64CJdSUR3ohx2EFokSG/hP11J/yor89iDiwUGhh90tCYXN826R21eMOmFllJz5Lze1tamIcBddqX2svPAmutJk0unniQXXhvV6uFxI=
尝试这段解密得到flag
1 wdflag{499c1ad9-f66f-4fa0-a6ce-b3aa46f8d598}
Misc03
使用kali foremost分离文件
得到的文件都是加密的。但是压缩包中的三个文本文件都是6字节大小,
尝试一下CRC32爆破
选择三段比较合理的字符合并得到
这就是压缩包的密码
解压文件
得到文档,根据文档名很容易就能猜到是verycrypt加密卷
挂载一下密码为
得到key文件
rsa加密
想到还有一个flag.txt
rsa解密一下
得到flag
1 wdflag{31d2e6acab070be105c1a9bbf28d2209}