[DigitalForensic] with CTF

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

skyepodium 2022. 8. 14. 17:27

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)