Wargame/CTF-d

[CTF-d](Multimedia) 브리타니아의 원더랜드… (100)

광팔2 2021. 1. 13. 22:28
반응형

문제

color.png 파일을 다운로드하여 보자

 

붉은색 픽셀과 검은색 픽셀로 구성된 이미지 파일을 받았다...(확대해서 보면 딱딱 끊어져서 픽셀 단위다)

 

 

가로 7픽셀에 세로 200픽셀이다. 색이 두 개라는 게 힌트인 것 같은데....

 

느낌으로는 색이 두 가지니까 컴퓨터 전공자로서 0과 1이 생각이 났다. 그럼 바이너리 코드 즉 이진 코드로 바꿔서 풀면 뭔가 보이지 않을까 생각했다. 파이썬을 열고 pillow를 사용하자.

 

오랜만에 pillow 사용해서 이미지 코딩하려 하니 감을 못 잡겠다... 어쩔 수 없이 write up을 봤다.

 

from PIL import Image

img = Image.open("color.png")
data = img.load()
red = (255, 0, 0)

text = ""

binary_lines = []
width, height = img.size

for x in range(height):
    binary_line = []
    for y in range(width):
        pixel = data[y,x]
        if pixel == red:
            binary_line.append('1')
        else:
            binary_line.append('0')
    binary_lines.append(binary_line)

for x in binary_lines:
    text += ''.join([chr(int(''.join(x),2))])

print(text)

그래도 감 잡았다. 코드를 이해하니 생각보다 간단한 코드이다. 다음에는 꼭 풀겠다.

3xXKkFstTUpsG2IFDirE6xDrcAF8DSx4iWxd5f9IQ9T205izN8lS2MQUlsF11gT4TFXHHlLHVHprNTtrh6lURfdUW7Lpuzgu1VKzwb1bg1oq6Ae3GnykkLZZsnze3HVLxHlfCYtzyrcV2Oxp0Gb0Z2ELphR4Oxo7TyvHCuWKWlN8t8KIfHysZK7jBNPu6wRVEUPIwVra

플래그가 나왔다.

 

플래그 값 : 3xXKkFstTUpsG2IFDirE6xDrcAF8DSx4iWxd5f9IQ9T205izN8lS2MQUlsF11gT4TFXHHlLHVHprNTtrh6lURfdUW7Lpuzgu1VKzwb1bg1oq6Ae3GnykkLZZsnze3HVLxHlfCYtzyrcV2Oxp0Gb0Z2ELphR4Oxo7TyvHCuWKWlN8t8KIfHysZK7jBNPu6wRVEUPIwVra

 

 

write up을 봐서 뭔가 찝찝한 문제였다...

반응형