1. 개요
2진수 문제, pillow 문제
2. 분석
1) 2진수
사진에서 저 패턴이 똑같이 반복되고 이진수로 표현할 수 있다고 합니다.
(개인적으로 사진도 작은데 힌트 아니면, 알기 어려운것 같습니다.)
2) 이미지 추출
이부분만 pixel를 선택하고 클립보드에서 신규를 클릭합니다.
PNG 파일이고 배경이 투명합니다. message.png로 저장했습니다.
3) python
검은색 - 1, 흰색 0 이고, 2진수로 만든다음, MD5 해시 까지 생성했습니다.
from PIL import Image
import hashlib
# 1. 이미지 불러오기
# 1) 이미지 열기
image = Image.open("message.png")
# 2) RGBA 데이터 로드
data = image.load()
# 3) 이미지 닫기
image.close()
# 2. 이미지 정보
width, height = image.size
print('width', width, 'height', height) # width 32 height 24
#
# 4. 반복문 조회하면서 한줄씩 이진법 문자열로 만듬
binary_str_list = []
binary_str = ""
for y in range(1, height, 4):
for x in range(1, width, 4):
if data[x, y] == (0, 0, 0, 0):
binary_str += "0"
else:
binary_str += "1"
binary_str_list.append(binary_str)
binary_str = ""
# 5. 이진수를 십진수로 변경하고 아스키 문자로 변경
result = "".join([chr(int(binary_str, 2)) for binary_str in binary_str_list])
print('result', result) #S4NCH0
# 6. 문자열을 md5 해시로 변경
md5_hash = hashlib.md5()
md5_hash.update(result.encode('utf-8'))
flag = md5_hash.hexdigest()
print('flag', flag) #975186cff0a2bfd07862175d40fa36ff
4) 확인
'[DigitalForensic] with CTF' 카테고리의 다른 글
[DigitalForensic] with CTF - 답을 찾고 제출해라! (0) | 2022.08.21 |
---|---|
[DigitalForensic] with CTF - splitted (0) | 2022.08.15 |
[DigitalForensic] with CTF - 저는 이 파일이 내 친구와… (0) | 2022.08.15 |
[corCTF 2022] jsonquiz (0) | 2022.08.14 |
[DigitalForensic] with CTF - DOS 모드에서는… (0) | 2022.08.14 |