Divide and Conquer - Writeup by AI 题目信息题目来源BugKu CTF题目类别Crypto密码学/ Steganography隐写术题目名称Divide and Conquer分治 考点分析核心知识点知识点权重说明图片隐写术40%LSB 隐写、XOR 隐藏技术PIL/Pillow 库30%图像处理与差异计算分治思想20%将问题分解后合并解决二值图像编码10%布尔矩阵与信息提取题目特点典型隐写题信息隐藏在两张看似相同的图片中视觉不可见单独查看每张图片无法发现异常需要对比必须通过特定操作才能显现隐藏内容 解题思路1. 题目分析**“Divide and Conquer”分治法**的含义Divide分Flag 被分成两部分分别隐藏在img1.png和img2.png中Conquer治通过对比两张图片提取出隐藏的 Flag2. 技术路线img1.pngDifference/XORimg2.pngfinal.png可视化 Flag3. 突破口两张图片尺寸相同1366×768两张图片模式相同‘1’ - 二值图像97.56% 的像素完全相同关键2.44% 的差异区域隐藏了 Flag 详细解题步骤步骤 1检查文件结构发现文件img1.png- 第一张图片二值图像img2.png- 第二张图片二值图像步骤 2初步分析图片使用 Python 查看图片基本信息fromPILimportImage im1Image.open(img1.png)im2Image.open(img2.png)print(fImage 1: 模式{im1.mode}, 尺寸{im1.size})print(fImage 2: 模式{im2.mode}, 尺寸{im2.size})输出结果Image 1: 模式1, 尺寸(1366, 768) Image 2: 模式1, 尺寸(1366, 768)分析模式1表示二值图像只有黑白两色尺寸完全相同可以进行像素级对比步骤 3计算图片差异核心步骤使用ImageChops.difference()方法fromPILimportImage,ImageChops# 打开图片im1Image.open(img1.png)im2Image.open(img2.png)# 计算差异im3ImageChops.difference(im1,im2)# 保存并查看im3.save(final.png)im3.show()步骤 4查看结果打开生成的final.png可以看到清晰的 Flag 文字