• Jarvis OJ


    Jarvis OJ - class10 -Writeup

    转载请注明出处:http://www.cnblogs.com/WangAoBo/p/7552266.html

    题目:

    Jarivs OJ的一道misc,记录这道题的Writeup主要是想记录解题的脚本

    分析:

    文件下载后是纯数据,binwalk发现为两段zlib压缩后的数据,其中第2段为default compression,这是信息1;strings查看字符串,发现IHDR, RGB, IDAT等和图像相关的字符,这是信息2

    步骤:

    • 分理出class10中的压缩数据

      binwalk -e class10

    • 查看分离后的数据

      由信息1,F4289.zlib为default compression的zlib数据,对其进行解压缩(当然binwalk厉害得很,binwalk -e分离后的F4289已经是解压缩过得数据了)

    • 如上,解压后为29 × 29位的01字符串,再结合信息2,设想生成一张29*29的方形图片,像素点与字符串对应,始0和1对应的像素点分别为不同黑白两种颜色,代码如下

       1 #!/usr/bin/env python
       2 # -*- coding: utf-8 -*-
       3 __Auther__ = 'M4x'
       4 
       5 from PIL import Image
       6 
       7 SIZE = 29
       8 img = Image.new("RGB", (SIZE, SIZE))
       9 with open("./F4289") as f:
      10     str = f.read()
      11     #  print str
      12 
      13 i = 0
      14 for y in xrange(SIZE):
      15     for x in xrange(SIZE):
      16         if str[i] == '0':
      17             img.putpixel([x, y], (0, 0, 0))
      18         else:
      19             img.putpixel([x, y], (255, 255, 255))
      20         i = i + 1
      21 #  img.show()
      22 img.save("img.png")
    • 生成了一个二维码,扫码即可拿到flag

  • 相关阅读:
    前端html+css标签简介(可能就我自己看的懂-。-)
    python-day43(正式学习)
    python-day42(正式学习)
    python-day40(正式学习)
    python-day39(正式学习)
    python-day38(正式学习)
    python-day37(正式学习)
    python-day31(正式学习)
    python-day30(正式学习)
    python-day29(正式学习)
  • 原文地址:https://www.cnblogs.com/WangAoBo/p/7552266.html
Copyright © 2020-2023  润新知