学逆向论坛

找回密码
立即注册

只需一步,快速开始

发新帖

2544

积分

2

好友

13

主题
发表于 2019-7-10 10:52:10 | 查看: 10198| 回复: 0

相关题目:

♦ 漂亮的小姐姐

挺折腾的二维码题,记录一下~
类似题目参考: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.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
https://lazzzaro.github.io

小黑屋|手机版|站务邮箱|学逆向论坛 ( 粤ICP备2021023307号 )|网站地图

GMT+8, 2024-12-23 20:58 , Processed in 0.177908 second(s), 43 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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