BugkuCTF-MISC题神奇宝贝
壓縮包有兩個文件,但是在解壓的時候報錯
用010editor打開,發現報錯
同時發現文件尾部是504B,說明這是一個zip文件,把文件頭修改為504B0304后可以解壓出壓縮包和一個圖片
后來才知道,這是 《精靈寶可夢》 里的精靈未知圖騰,擁有28類形態
對照上圖得到另一個壓縮包的密碼whereisflag
然后得到加密的壓縮包和層層加密.txt:
00111 1010 00001 0 11110 00011 100 100 11100 00111 11111 1000 1010 01 01 1000 100 00000 00000 00111 0 11000 00001 00000 11000 1000 10000 11110 11111 11100 0010 10000
國王把明文撒了鹽之后交給士兵,士兵在途間經過了兩個交叉的籬笆地才將密文傳交給摩斯偵探。
根據描述可知解密
第一層是摩斯密碼
第二層是欄數為2的柵欄密碼
第三層的加鹽指的是md5算法
解壓得到一張圖
手動把圖里文字摳出來
將兩端文字拼在一起,base64解密得到:
一般地,一長串十進制數可以轉十六進制后再轉ASCII字符,也可以以某類規律轉換為坐標然后畫圖,或者轉為二進制后畫出一張二維碼。
后來發現轉為二進制數后發現長度是625,即25*25,然后試著轉為二維碼
import PIL from PIL import Image MAX = 25 #圖片邊長 img = Image.new("RGB",(MAX,MAX)) str="1111111001110111001111111100000100001101010100000110111010011100101010111011011101010110000101011101101110101010111010101110110000010011001101010000011111111010101010101111111000000000100101000000000011000111011010110000110001000000010100001010111100001011110101100111110011100101101001100101010010111000101011100100101101001111110000110101011110011010000010010001011100001111000010011101010110001100101110101000111011111010100000000110001101000110001111111011001100101010101100000101111001110001100010111010011100011111101111011101001101111011010011101110100010011010010010110000010100011010011110011111111011011100101010001" i = 0 for y in range (0,MAX):for x in range (0,MAX):if(str[i] == '1'):img.putpixel([x,y],(0, 0, 0))else:img.putpixel([x,y],(255,255,255))i = i+1 img.show() img.save("flag.png")生成的圖片尺寸太小,將其拉大
得到flag
總結
以上是生活随笔為你收集整理的BugkuCTF-MISC题神奇宝贝的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 字符串 - Python零
- 下一篇: C语言 memcpy_s 函数 - C语