ctfshow MISC入门图片篇(信息附加):misc41解题思路

下载解压得 jpg 文件

先看题目:

H4ppy Apr1l F001's D4y!

愚人节到了,一群笨蛋往南飞,一会儿排成S字,一会儿排成B字。

这是谐音梗,题目提示 "H4ppy Apr1l F001's D4y!" 直接点明核心是 F001(愚人节 April Fool's Day 的变体谐音梗)。文件中存在大量重复的 F001 十六进制模式。

编码规则

将整个文件的十六进制数据按每 4 个十六进制字符(即 2 字节)为一组:

如果这组是 F001 → 记为 0(黑色像素)

如果这组不是 F001 → 记为 1(白色像素)

这样就得到了一串二进制比特序列。

使用 py 脚本就能够出来

读取文件 -> 转16进制 -> 按4字符分组 -> F001=0, 其他=1 -> 生成8像素宽图像

from PIL import Image

hex_data = open('misc41.jpg', 'rb').hex()

chunks = hex_data\[i:i+4 for i in range(0, len(hex_data), 4)]

bits = ''.join('0' if c == 'f001' else '1' for c in chunks)

width = 8

height = len(bits) // width

img = Image.new('1', (width, height))

for y in range(height):

for x in range(width):

img.putpixel((x, y), 0 if bitsy\*width + x == '0' else 255)

img.save('result.png')

脚本运行后得到这个,放大看即可

相关推荐
catchadmin2 小时前
PHP 8.7 协程新提案 让跨协程代码共享请求身份
开发语言·php
念何架构之路3 小时前
go-grpc设计思想
开发语言·后端·golang
酷炫码神3 小时前
Day 10|Pinia 状态管理:把散落在各组件的数据,收进一个全局仓库
android·开发语言·javascript
Elastic 中国社区官方博客4 小时前
我们如何通过 70 多个拉取请求,将 OpenTelemetry Java agent 迁移到 invokedynamic
java·大数据·开发语言·elasticsearch·搜索引擎·全文检索·es
tyn1884 小时前
记录本地安装nacos服务的方法及异常
java·开发语言
步行cgn5 小时前
Spring MVC 视图机制的核心接口与类
java·开发语言·后端·spring·mvc
传奇开心果编程5 小时前
【Rust入门练中学】第5课:引用与借用
开发语言·rust·引用·编程语言理论·通用编程语言·借用
qetfw6 小时前
Bash 变量:export、位置参数与默认值展开验证
linux·开发语言·chrome·bash
爱上纯净的蓝天6 小时前
不用云做 RAG:一个本地笔记问答工具的取舍与坑
python·开源·大模型·rag·本地部署