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

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

系統 1862 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條評論
主站蜘蛛池模板: 深夜福利久久久 | 亚洲午夜精品视频 | 天堂资源在线观看 | 毛片免费软件 | 欧美一区二区三区四区视频 | 五月天色网址 | 男生插女生视频免费 | 欧美第一区 | 国产精品国产精品国产专区不卡 | 国产福利网 | 成人性生活视频在线播放 | 天天干天天操天天爽 | 国产91影院 | 国产美女www | 日本在线国产 | 久久中文字幕一区二区三区 | 日韩不卡一区二区 | av资源中文在线 | 天天干天天操天天射 | 免费在线国产视频 | 欧美国产视频 | 日日骚| 五月色播影音在线观看 | 久久精品小视频 | 老色鬼久久AV综合亚洲健身 | 深夜你懂的在线网址入口 | 欧美另类亚洲 | 久久成人福利 | 插插插91| 91高清国产经典在线观看 | 国产福利小视频在线 | 日韩在线视频精品 | 国产一三区A片在线播放 | 四虎最新免费网址 | 91久久夜色精品国产九色 | 美女福利视频国产免费观看 | 成人高清在线观看 | 激情六月色 | 免费高清seyeye在线视频观看 | 欧美极品欧美精品欧美视频 | 精品久久一区二区 |