栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

[网鼎杯 2020 青龙组]虚幻2 详解 (python脚本)

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[网鼎杯 2020 青龙组]虚幻2 详解 (python脚本)

参考文章:

汉信码识读技术研究

2020网鼎AreUSerialz、虚幻2 | BTIS’s blog

图片很小,没有隐藏信息,PS打开:

每个像素点的RGB的三个通道都是255/0:

红R色通道:

绿G通道:

蓝B通道:

像二维码,但拼接之后啥都没有。处理思路:

  1. 分通道按行拼接,读的时候是 B-G-R,拼接的时候是 R-G-B,图像且大小为36*36

    • 注意看G通道,上下沿的两边都是长黑线,一般是二维码的边沿

    • 而我们还观察到到一般二维码的四角都会有空白的一行,但最两边是黑色:


    • 观察到R通道对应像素行是白色的:

    • 而B通道符合二维码的特征,所以把它放在G后面

    • 结合经验,那么就可以发现R-G-B 可以拼出二维码

    import cv2
    import numpy as np
    from PIL import Image
    img=cv2.imread('file.png')
    image1=np.hstack((img[:,:,2],img[:,:,1],img[:,:,0])).reshape(36,36) #RGB
    Image.fromarray(image1).save('res.png')
    
    • cv2.imread读文件,读出来是个三维数组(numpy.ndarray) :3(B:G:R)*36(列数)*12(行数)

    • img[:,:,0] 抽出B通道:(B)*36(列数)*12(行数)

    • np.hstack 依次读取每个通道数组的行,连在一起:(36+36+36)*12

    • reshape(36,36) 分割最低位维,分割后的数组规格为:36*36

      • 分割过程大致就是砍断长的一维向量,把截出来的向量直接紧挨着放到下面(不理解的话可以自己尝试或者上网查询)
    • Image.fromarray 实现ndarray到image的转换

  2. 这时候我们确认这是个汉信码,但是发现校正折线位置不对,正常的:

  3. 加上图像反转

    import cv2
    import numpy as np
    from PIL import Image
    img=cv2.imread('file.png')
    image1=np.hstack((img[:,:,2],img[:,:,1],img[:,:,0])).reshape(36,36) #RGB
    image1=np.flipud(image1)
    Image.fromarray(image1).save('res.png')
    

  4. 左下定位码也反了,将左下定位码反转180度

     import cv2
     import numpy as np
     from PIL import Image
     img=cv2.imread('file.png')
     image1=np.hstack((img[:,:,2],img[:,:,1],img[:,:,0])).reshape(36,36)
     image1=np.flipud(image1)
     image1[24:33,3:10]=np.rot90(image1[24:33,3:10],2)
     Image.fromarray(image1).save('res.png')
    
    • rot90(array,2)将数组旋转180度
  5. 放进http://www.efittech.com/hxdec.html或用中国编码APP都读不出来,题目中提示暴力修补,而汉信码设计是有纠错能力的,一般使用要选择L2及以上的纠错等级:

  6. L2的纠错容量可达到15%,足够用了我们随便在那块空白的地方划两下哈哈:

  1. 也可以专业一点:补全辅助矫正位,并另填一个像素点辅助汉信码识别系统识别辅助矫正位:

image1[17,33],image1[15,31]=0,0

  1. 都可以扫得到flag
flag{eed70c7d-e530-49ba-ad45-80fdb7872e0a}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/901708.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号