CTF | wargame

volgactf 2017 / VC (이미지 xor)

nopdata 2017. 3. 30. 08:56


A,B 두장의 사진이 주어진다. 사진은 다음과 같다.

    

[ A.png, B.png ]

'hackcenter / Two Time Pad (동일한 key를 사용한 이미지 OTP)' 문제와 동일하다. 두 사진을 xor 연산을 해주면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from PIL import Image
import os
 
 
def tup_xor(val1, val2):
    res = list()
    for i in range(len(val1)):
        res.append(val1[i] ^ val2[i])
    return tuple(res)
 
 
img1 = Image.open('A.png')
img2 = Image.open('B.png')
 
try:
    img1 = img1.convert("RGB")
except:
    pass
 
 
try:
    img2 = img2.convert("RGB")
except:
    pass
 
res = Image.new("RGB",(370,370),(200,200,200))
 
for y in range(img1.size[1]):
    for x in range(img1.size[0]):
        res.putpixel((x,y),tup_xor(img1.getpixel((x,y)),img2.getpixel((x,y))))
 
 
f=open('result.png','wb')
res.save(f)
f.close()
os.system('result.png')
 



flag : VolgaCTF{Classic_secret_sharing_scheme}