【2019年7月第二周打卡】漂亮的小姐姐 wp
挺折腾的二维码题,记录一下~类似题目参考: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,结构为
D为数据区,E为纠错区,红色为格式化信息
右上角那段红色格式化信息是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
即下图的第一行左数第三个
3. 将数据区的数据(对应的红色框)按顺序写出,得到的是掩码操作后的值,再对满足条件的列对应的数字做反掩码变换:
4. 按照D1~D26顺序写出01串,注意前四位代表数据编码:
当前值是0100,所以是字节编码,去掉开头的0100,剩下的01串按8个一组分割,转化成对应字符,可得到
页:
[1]