본문 바로가기
[DigitalForensic] with CTF

[DigitalForensic] with CTF - 와우! 저는 이 이미지에…

by skyepodium 2022. 8. 14.

1. 개요

pillow, RGB 문제

 

2. 분석

1) 이미지

다음과 같이 난해한 이미지를 받습니다.

 

2) RGB

RGB를 까보면

영어 대소문자에 맞게 깔끔하게 아스키코드가 적힌것 같습니다.

 

3) pillow

from PIL import Image
import re

# 1. 이미지 불러오기
# 1) 이미지 열기
image = Image.open("curses_and_hexes.png")
# 2) 픽셀 데이터 로드
data = image.load()
# 3) 이미지 닫기
image.close()

# 2. 이미지 정보
width, height = image.size
print('width', width, 'height', height) # width 300 height 300

# 4. 반복문 조회하면서 200줄을 하나씩 이진법 문자열로 만듬
result = ""
for y in range(height):
    binary_str = ""

    for x in range(width):
        # 2차원 배열의 x,y와 순서가 다릅니다.
        red, green, blue = data[x, y]
        result += f"{chr(red)}{chr(green)}{chr(blue)}"

# 5. 점공백을 new line으로 변경
result = re.sub("\\. ", "\n", result)

# 6. 파일 생성
with open('flag.txt', 'w') as f:
    f.write(result)