문제 제목에서 QR 코드라고 힌트를 주고 있는
포렌식 문제이다.
반응형
문제에서 주어지는 것은
secret.csv 파일이다.
해당 파일을 열어보면
row, col 이라고 적혀있고
그 아래 숫자들이 써있다.
row, col 이라는걸 보니 x,y 좌표라고 생각하면 될것 같고,
숫자는 x, y 모두 0부터 28까지 적혀있었다.
위에도 보면 0 ~ 28 범위 내에서 써있는 숫자도 있고,
안써있는 숫자도 있는데
써있는 숫자는 1, 안써있는 숫자는 0 으로 분류해서
해당 좌표에 색을 칠할지 말지 판단하면 되는듯 했다.
이번 문제는 Python PIL 라이브러리를 이용해서 풀었다.
PIL은 Python Imaging Library의 약자로
파이썬으로 이미지 처리를 할 수 있도록 해주는 라이브러리이다.
pip install image
pip install pillow
두 명령어를 이용해서 다운로드 받아주면 된다.
from PIL import Image
xlen = 29
ylen = 29
new = Image.new('RGB',(xlen,ylen),(255,255,255))
f = open('secret.csv', 'r')
for line in range(427):
xy = f.readline().rstrip('\n').rstrip('"').lstrip('"')
x = int(xy.split(',')[0])
y = int(xy.split(',')[1])
new.putpixel((x,y),(0,0,0))
new.save('new.png')
코드는 이렇게 작성한다.
secret.csv 파일을 읽어서
데이터를 불러와 정제한 뒤
x, y 변수에 그 값을 집어넣는다.
그리고 그 x, y 좌표 부분을 검은색으로 칠해서
새로운 이미지를 생성해 저장하면 끝이다.
그럼 이렇게 QR 코드가 하나 생성된다.
온라인 스캐너에 넣으면 플래그를 찾을 수 있다.
반응형
'CTF > 포렌식' 카테고리의 다른 글
[n00bzCTF] LSB - 포렌식 / Stegolsb (66) | 2023.07.01 |
---|---|
[n00bzCTF] Crack & Crack - 포렌식 / John the Ripper (68) | 2023.06.30 |
[DanteCTF] Who Can Haz Flag - 포렌식 / Wireshark / Tshark / awk (81) | 2023.06.15 |
[HeroCTF] PDF-Mess - 포렌식 / PDFStreamDumper (76) | 2023.06.05 |
[HeroCTF] PNG-G - 포렌식 / Stegoveritas (99) | 2023.06.03 |