查看: 379|回复: 0

[Misc] 【2019年7月第二周打卡】漂亮的小姐姐 wp

[复制链接]
发表于 2019-7-10 10:52:10 | 显示全部楼层 |阅读模式
挺折腾的二维码题,记录一下~
类似题目参考:https://yous.be/2014/12/07/seccon-ctf-2014-qr-easy-write-up/

压缩包:一张jpg图


1. binwalk一下,分离出一张png图,是半张二维码

2. 首先想到宽度爆破,用脚本跑过之后发现CRC码是正确的,实际宽度就是半宽(??)

3. 陷入沉思,一阵google学习到二维码的组成,看来要从二维码本身入手:

二维码的结构分析参考:二维码的生成细节和原理

那么这半张二维码的信息有:
29*29,根据公式(V-1)*4 + 21,V=3,结构为
853355d254e78352d4.png
D为数据区,E为纠错区,红色为格式化信息

425645d2550e39b44a.png
右上角那段红色格式化信息是15位类型信息的后8位,对比表:
https://www.thonky.com/qr-code-tutorial/format-version-tables#list-of-all-format-information-strings
得到:纠错水平为H水平,掩码模式采用模式2

继续查询
https://www.thonky.com/qr-code-tutorial/mask-patterns
模式2的掩码满足条件:(column) mod 3 == 0
即下图的第一行左数第三个
455575d255026e38b2.png

3. 将数据区的数据(对应的红色框)按顺序写出,得到的是掩码操作后的值,再对满足条件的列对应的数字做反掩码变换:
896155d25511c58d5e.png
93955d255108882b2.png

134175d255155d893c.png

4. 按照D1~D26顺序写出01串,注意前四位代表数据编码:
442505d2551c7e8455.png

当前值是0100,所以是字节编码,去掉开头的0100,剩下的01串按8个一组分割,转化成对应字符,可得到
259565d25528dce6f3.png






温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的最好奖励,还可以获得学币奖励,请尊重作者的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
:(){:|:&};:
关闭

论坛公告上一条 /2 下一条

快速回复 返回顶部 返回列表