R136A1
[ctf-d] flagception :: else (PIL) 본문
깃발에 플래그를 숨겨놓았다고 해서 일단 대충 이미지 뷰어로 깃발을 자세히 봤다
익숙한 모양이 보인다...
https://r136a1x27.tistory.com/371
포토샵 곡선으로 이렇게 저렇게 잘 조절해주면 더 잘보인다.
크기는 7x20 픽셀이다
1) 파란색은 0, 검은색은 1로 하여 7비트로 구성된 이진수 20줄을 직접 써내고,
이진수 변환 사이트에서 변환한다
https://paulschou.com/tools/xlate/
2) PIL을 활용하여 코드를 짠다
다행히도 이번 문제는 복잡한 그림이 아니었어서 기존 코드를 그대로 재활용하면 된다
■ #0000ff
■ #000000
from PIL import Image
pic = Image.open("logo2.png")
data = pic.load()
black = (0, 0, 0)
binary_lines = []
width, height = pic.size
text = ""
for y in range(height):
binary_line = []
for x in range(width):
pixel = data[x, y]
if pixel == black:
binary_line.append('1')
else:
binary_line.append('0')
binary_lines.append( binary_line )
for i in binary_lines:
text += ''.join([chr(int(''.join(i),2))])
print(text)
'FORENSIC > ctf-d' 카테고리의 다른 글
[ctf-d] google :: else (PIL) (0) | 2022.01.25 |
---|---|
[ctf-d] Emma Watson :: else (PIL) (0) | 2022.01.19 |
[ctf-d] 우리는 grayD의 49개 음영을 가지고 있습니다. :: else (PIL) (0) | 2022.01.18 |
[ctf-d] mystery1 - mystery2 :: else (0) | 2022.01.11 |
[ctf-d] d4rth는 더러운 방법을... :: else(PIL) (0) | 2022.01.04 |
Comments