Divide and Conquer - Writeup by AI

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.pngimg2.png
  • Conquer(治):通过对比两张图片,提取出隐藏的 Flag

2. 技术路线

img1.png
Difference/XOR
img2.png
final.png
可视化 Flag

3. 突破口

  • 两张图片尺寸相同(1366×768)
  • 两张图片模式相同('1' - 二值图像)
  • 97.56% 的像素完全相同
  • 关键:2.44% 的差异区域隐藏了 Flag

🔧 详细解题步骤

步骤 1:检查文件结构

发现文件:

  • img1.png - 第一张图片(二值图像)
  • img2.png - 第二张图片(二值图像)

步骤 2:初步分析图片

使用 Python 查看图片基本信息:

python 复制代码
from PIL import Image

im1 = Image.open("img1.png")
im2 = Image.open("img2.png")

print(f"Image 1: 模式={im1.mode}, 尺寸={im1.size}")
print(f"Image 2: 模式={im2.mode}, 尺寸={im2.size}")

输出结果:

复制代码
Image 1: 模式=1, 尺寸=(1366, 768)
Image 2: 模式=1, 尺寸=(1366, 768)

分析:

  • 模式 '1' 表示二值图像(只有黑白两色)
  • 尺寸完全相同,可以进行像素级对比

步骤 3:计算图片差异(核心步骤)

使用 ImageChops.difference() 方法:

python 复制代码
from PIL import Image, ImageChops

# 打开图片
im1 = Image.open("img1.png")
im2 = Image.open("img2.png")

# 计算差异
im3 = ImageChops.difference(im1, im2)

# 保存并查看
im3.save("final.png")
im3.show()

步骤 4:查看结果

打开生成的 final.png,可以看到清晰的 Flag 文字!


相关推荐
混凝土拌意大利面2 小时前
量子退相干提升区块链安全新范式
算法·安全·区块链·共识算法
MicroTech20252 小时前
微算法科技(NASDAQ: MLGO)区块链水印方案:守护压缩感知图像的全维度安全
安全·去中心化·区块链
qcx2311 小时前
【AI Agent实战】OpenClaw 安全加固完全指南:安全攻击手段与五步防护实践(2026最新)
人工智能·安全
Chockmans14 小时前
春秋云境CVE-2021-34257
安全·web安全·网络安全·php·网络攻击模型·春秋云境·cve-2021-34257
李白你好15 小时前
一款面向网络安全攻防演练场景的自动化信息收集工具。
安全·web安全·自动化
福大大架构师每日一题15 小时前
lmdeploy v0.12.3:视频输入、Qwen3.5、TurboMind 压缩张量、Ray 安全 API 等重大升级全面解析
安全·lmdeploy
Bruce_Liuxiaowei17 小时前
顺藤摸瓜:一次从防火墙告警到设备实物的溯源实战
运维·网络·网络协议·安全
黎阳之光17 小时前
去标签化无感定位技术突破,黎阳之光重构空间定位技术路径
大数据·人工智能·算法·安全·数字孪生
蒸汽求职18 小时前
北美求职身份过渡:Day 1 CPT 的合规红线与安全入职指南
开发语言·人工智能·安全·pdf·github·开源协议