誰知道這個是什麼加密?
你好,有緣人,這道題剛巧我偶遇了。這不是什麼加密,是CTF比賽中的MISC題型,屬於一個tricky puzzle。
here is the code to solve it.
the final flag is below.&
涉及到的「點」:
- RGB色彩模式編碼;
- 整數分解(由misc100.txt的行數想到去分解合數,猜x,y軸像素個數);
- 繪圖(我用的php-gd);
- 圖片旋轉;
- 照鏡子(ORZ)
EOF
研究了一下 @Jimmy Zhou 的代碼,理解了。
順便優化一下。
from PIL import Image
import re
if __name__ == "__main__":
x = 503
y = 122
i = 0
j = 0
c = Image.new("RGB", (x,y))
file_object = open("misc100.txt")
for i in range(0, x):
for j in range(0, y):
line = file_object.next()
lst = line.split(",")
c.putpixel((i, j), (int(lst[0]), int(lst[1]), int(lst[2])))
c.show()
c.save("c.png")
不請自來。。。。
我也剛好i做過這個題,上來給我的第一印象就是一堆rgb的點, @黃瑋 的答案不錯,我給一下python的程序
from PIL import Image
import re
import re
if __name__ == "__main__":
x=503
y=122
i = 0
j = 0
c = Image.new("RGB",(x,y))
file_object = open("misc100.txt")
for line in file_object:
line = file_object.next()
txt = line
if(j%y==0):
i=i+1
j=0
re1="(\d+)" # Integer Number 1
re2=".*?" # Non-greedy match on filler
re3="(\d+)" # Integer Number 2
re4=".*?" # Non-greedy match on filler
re5="(\d+)" # Integer Number 3
rg = re.compile(re1+re2+re3+re4+re5,re.IGNORECASE|re.DOTALL)
m = rg.search(txt)
if m:
int1=m.group(1)
int2=m.group(2)
int3=m.group(3)
c.putpixel((int(i),int(j)),(int(int1),int(int2),int(int3)))
j=j+1
c.show()
c.save("c.png")
我用的是PIL的庫,也是樓上的分解整數,不過生成出來就是橫著噠..
順便說下,求大牛提出對代碼的修改意見,小菜不會寫..
一看就是一堆象素值,根據 width * height = 行數 去找整數解。截圖不全,是61367行;如果最後一行是空行,則用61366行計算;如果有多個空行,相應減行數。
61366 = 2*61*503,所以有兩組分解 122 * 503 和 61 * 1006,每組又有哪個是行、哪個是列的排列組俁,所有要看4個圖,看看哪個是有意義的。
而 61367 = 109 * 563 則只有一組分解,只要按 109 行每行 563 像素、563 行每行 109 像素轉成兩張圖,看哪個是有意義的就行了。
怎麼找到這些整數分解?反正數又不大,窮舉就好了。
突然想寫個C版本的
看前兩位一個php一個Python的。。。我突然想寫個ruby的了
推薦閱讀:
※中國黑客界發生過什麼事?
※js 可以跨域得到 cookie?QQ 郵箱被一封郵件黑了?
※為什麼電腦系統會奔潰?
※如何看待順豐快遞推出「豐密面單」來保障用戶信息安全?
※斯諾登的安卓安全工具是怎麼一回事?
TAG:網路安全 | 黑客Hacker | 信息安全 | 密碼加密 | CTFCaptureTheFlag |