欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

攻防世界-glance-50-WriteUp附Python解題腳本

系統 3889 0

題目分析

拿到題目以后題目是一個長條狀gif

攻防世界-glance-50-WriteUp附Python解題腳本_第1張圖片
那么這個題大概率就是分離gif的每一幀然后拼接形成圖片得到flag

解題步驟

有了思路以后,步驟也很清晰。就是兩步。第一步,分離gif,第二步,拼接gif

  • 步驟

1.分離gif
好多方法都可以分離gif,這里使用python分離一下,上代碼:

            
              
                #分離gif.py
              
              
                from
              
               PIL 
              
                import
              
               Image

savepath 
              
                =
              
              
                "F:\ctf文件\\D-R0s1\\"
              
              
                #保存路徑
              
              

im 
              
                =
              
               Image
              
                .
              
              
                open
              
              
                (
              
              
                'F:\ctf文件\\1.gif'
              
              
                )
              
              
                #從文件加載圖像
              
              
                try
              
              
                :
              
              
    im
              
                .
              
              save
              
                (
              
              savepath
              
                +
              
              
                '{:d}.png'
              
              
                .
              
              
                format
              
              
                (
              
              im
              
                .
              
              tell
              
                (
              
              
                )
              
              
                )
              
              
                )
              
              
                #讀取每一幀
              
              
                while
              
              
                True
              
              
                :
              
              
        im
              
                .
              
              seek
              
                (
              
              im
              
                .
              
              tell
              
                (
              
              
                )
              
              
                +
              
              
                1
              
              
                )
              
              
                #在不同幀之間移動
              
              
        im
              
                .
              
              save
              
                (
              
              savepath
              
                +
              
              
                '{:d}.png'
              
              
                .
              
              
                format
              
              
                (
              
              im
              
                .
              
              tell
              
                (
              
              
                )
              
              
                )
              
              
                )
              
              
                #保存文件
              
              
                except
              
              
                :
              
              
                pass
              
            
          

分離出來發現有兩百多個圖像
攻防世界-glance-50-WriteUp附Python解題腳本_第2張圖片 2.使用python將這兩百多個圖像拼接起來,上代碼:

            
              
                #拼接圖像.py
              
              
                from
              
               PIL 
              
                import
              
               Image
path 
              
                =
              
              
                "F:\\ctf文件\\D-R0s1\\"
              
              
save_path 
              
                =
              
              
                'F:\\ctf文件\\'
              
              

im 
              
                =
              
               Image
              
                .
              
              new
              
                (
              
              
                'RGBA'
              
              
                ,
              
              
                (
              
              
                2
              
              
                *
              
              
                201
              
              
                ,
              
              
                600
              
              
                )
              
              
                )
              
              
                #創建新照片
              
              

    imagefile 
              
                =
              
              
                [
              
              
                ]
              
              
                #存儲所有的圖像的名稱
              
              
    width 
              
                =
              
              
                0
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                0
              
              
                ,
              
              
                201
              
              
                )
              
              
                :
              
              
        imagefile
              
                .
              
              append
              
                (
              
              Image
              
                .
              
              
                open
              
              
                (
              
              path
              
                +
              
              
                str
              
              
                (
              
              i
              
                )
              
              
                +
              
              
                '.png'
              
              
                )
              
              
                )
              
              
                #遍歷,將圖像名稱存入imagfile
              
              
                for
              
               image 
              
                in
              
               imagefile
              
                :
              
              
    im
              
                .
              
              paste
              
                (
              
              image
              
                ,
              
              
                (
              
              width
              
                ,
              
              
                0
              
              
                ,
              
              
                2
              
              
                +
              
              width
              
                ,
              
              
                600
              
              
                )
              
              
                )
              
              
                #將圖片張貼到另一張圖片上
              
              
    width 
              
                =
              
               width 
              
                +
              
              
                2
              
              
im
              
                .
              
              save
              
                (
              
              save_path
              
                +
              
              
                'D-R0s1.png'
              
              
                )
              
              
im
              
                .
              
              show
              
                (
              
              
                )
              
            
          

拼接后結果
攻防世界-glance-50-WriteUp附Python解題腳本_第3張圖片
得到flag

題目解題腳本分析

拼接圖像.py

  • 第一部分
            
              im 
              
                =
              
               Image
              
                .
              
              new
              
                (
              
              
                'RGBA'
              
              
                ,
              
              
                (
              
              
                2
              
              
                *
              
              
                201
              
              
                ,
              
              
                600
              
              
                )
              
              
                )
              
              
                #創建新照片
              
            
          

根據圖像原來的寬度高度創建一個新圖像
攻防世界-glance-50-WriteUp附Python解題腳本_第4張圖片

  • 第二部分
            
              imagefile 
              
                =
              
              
                [
              
              
                ]
              
              
                #存儲所有的圖像的名稱
              
              
width 
              
                =
              
              
                0
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                0
              
              
                ,
              
              
                201
              
              
                )
              
              
                :
              
              
    imagefile
              
                .
              
              append
              
                (
              
              Image
              
                .
              
              
                open
              
              
                (
              
              path
              
                +
              
              
                str
              
              
                (
              
              i
              
                )
              
              
                +
              
              
                '.png'
              
              
                )
              
              
                )
              
              
                #遍歷,將圖像名稱存入imagfile
              
            
          

在文件目錄下遍歷圖像并將圖像名稱存入inagefile中

  • 第三部分
            
              
                for
              
               image 
              
                in
              
               imagefile
              
                :
              
              
    im
              
                .
              
              paste
              
                (
              
              image
              
                ,
              
              
                (
              
              width
              
                ,
              
              
                0
              
              
                ,
              
              
                2
              
              
                +
              
              width
              
                ,
              
              
                600
              
              
                )
              
              
                )
              
              
                #將圖片張貼到另一張圖片上
              
              
    width 
              
                =
              
               width 
              
                +
              
              
                2
              
            
          

此處需要特別重要的是im.paste()中的值,(width,0,2+width,600)這是圖像的一組坐標值。相當于(x1,y1,x2,y2),對應坐標圖為:
攻防世界-glance-50-WriteUp附Python解題腳本_第5張圖片 這樣一來這個坐標值就很容易理解了(width,0,2+width,600)
寬度就是2每次加2這樣疊加起來,高度就是0-600。圖片原始屬性的高度。
這樣就實現了循環粘貼的目的。

總結

切實提高自己的編碼能力,讓程序代替搬磚。
關于python腳本處理圖片隱寫可以參考一下yanzm師傅在i春秋的文章。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 五月婷婷深深爱 | 性xxxxx视频| 五月婷婷 六月丁香 | 不卡一区在线观看 | 黄色av电影在线播放 | 2021国产精品视频一区 | 一区二区三区视频免费观看 | 亚洲国产欧美久久香综合 | 国产精品成人观看视频国产 | 99久久自偷自偷国产精品不卡 | 日韩三区 | 精品伊人久久久 | 91精品国产综合久久久久久 | 欧美日韩免费观看视频 | 成人在线观看免费视频 | 欧美成人精品一区二区三区 | 李旭个人资料及简介 | 免费国产成人午夜在线观看 | 一级做a视频 | 91免费影片 | 日本九九视频 | 欧美精品久久一区 | 亚洲产国偷V产偷V自拍A片 | 日本高清不卡一区久久精品 | 天天干天天干天天干天天干天天干 | 日韩avav| 亚洲视频 欧美视频 | 久久久久久久久久免观看 | 欧美专区在线 | 欧美18—19sex性hd按摩 | 亚洲综人网 | 久久av一区二区三区 | av一区二区三区四区 | 久久99国产综合精品 | 伊人成人在线观看 | 九九色网站 | 爱爱视频在线观看 | 国产羞羞视频免费在线观看 | 久久综合色婷婷 | 欧美无乱码久久久免费午夜一区 | 欧美在线综合 |