誰知道這個是什麼加密?


你好,有緣人,這道題剛巧我偶遇了。這不是什麼加密,是CTF比賽中的MISC題型,屬於一個tricky puzzle。

here is the code to solve it.

&

the final flag is below.

涉及到的「點」:

  1. RGB色彩模式編碼;
  2. 整數分解(由misc100.txt的行數想到去分解合數,猜x,y軸像素個數);
  3. 繪圖(我用的php-gd);
  4. 圖片旋轉;
  5. 照鏡子(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 |