생각보다 자주 보이는 유형의 스테가노그래피 문제
오래전에 블로그에서도 유사한 문제를 다룬적이 있다.
(https://hackingstudypad.tistory.com/125)
반응형
두개의 사진에서 숨겨진 데이터를 찾는것이 문제의 목표이다.
문제에서는 crypted1.png, crypted2.png 파일 두개가 주어진다.
각 이미지는 이렇게 생겼다.
노이즈처럼 지지직 하게 생긴 이미지가 두개 주어진다.
이번 문제는 Python PIL 라이브러리를 이용해서 풀었다.
PIL은 Python Imaging Library의 약자로
파이썬으로 이미지 처리를 할 수 있도록 해주는 라이브러리이다.
pip install image
pip install pillow
두 명령어를 이용해서 다운로드 받아주면 된다.
from PIL import Image
imgA = Image.open('crypt1.png').convert('RGB')
imgB = Image.open('crypt2.png').convert('RGB')
xlength = 713
ylength = 346
img_div = Image.new('RGB', (xlength,ylength), (255, 255, 255))
for y in range(ylength):
for x in range(xlength):
r, g, b = imgA.getpixel((x,y))
r2, g2, b2 = imgB.getpixel((x,y))
img_div.putpixel((x,y),((r^r2),(g^g2),(b^b2)))
filename = 'xor.png'
img_div.save(filename)
문제를 푸는 코드는 이렇게 작성한다.
주어진 두 이미지를 각각 불러와서 img1, img2 변수에 넣어준다.
그다음 이미지의 x, y 크기를 지정해주고
두 이미지의 각 픽셀의 RGB 값을 가져와서 서로 XOR을 시켜준 뒤,
결과를 새로운 이미지 파일로 저장해주는 코드이다.
코드를 실행시키면 두개의 이미지가 XOR 되어서 새로운 이미지가 생성이 되고
생성된 이미지에서 플래그를 찾을 수 있다.
반응형
'CTF > 포렌식' 카테고리의 다른 글
[Tenable CTF] A3S Turtles - 포렌식 / John the Ripper / Shell Script (60) | 2023.04.01 |
---|---|
[Tenable CTF] Numerological - 포렌식 / HxD (56) | 2023.03.29 |
[Tenable CTF] Hackerman - 포렌식 / 개발자도구 (51) | 2023.03.25 |
[Tenable CTF] Easy Stego - 포렌식 / Stegsolve (46) | 2023.03.24 |
[Tenable CTF] Forwards from Grandma - 포렌식 / 모스부호 (64) | 2023.03.14 |