-
Adam7 Algorithm Encoding을 이용한 PNG FILE Steganography Analysis$ 포렌식 $/$ 포렌식 기술적 이론 $ 2019. 11. 7. 09:36
SECCON 2019 CTF 에서 아래와 같이 interlace 로 Adam7 Interlace 인 문제를 접했습니다.
그래서 Adam7 Interlace 와 관련된 알고리즘인 Adam7 Algorithm에 대해서 이야기 해보겠습니다.
Adam7 Algorithm은 PNG Image 에서 사용 하는 Interlacing 알고리즘 중에 하나로 아래와 같은 7개의 sub image의 형식으로 이미지 출력이 진행됩니다.
이미지의 실질적인 데이터를 다루는 IDAT Chunk의 개수에 비례해서 위의 알고리즘이 몇번 반복 하는 지를 의미 합니다.
SECCON 2019 CTF 문제에서는 총 8개의 IDAT Chunk 가 있었고 Chunk가 하나씩 많아 짐에 따라서 점점 구체적으로 픽셀이 입력되는 것을 확일 할 수 있었습니다.
↓↓
↓↓
↓↓
↓↓
↓↓
↓↓
↓↓
이런식으로 chunk 1 ~ 8 까지의 사진을 한번 연결 해보았는데 점점 완벽한 png 사진이 되는 것을 확인 할 수 있습니다.
chunk 1에 과정 7개를 통해서 100% 이미지를 출력하고 그다음 chunk 로 넘어가면 그위에 데이터를 겹치면서 사진을 만드는 형식의 알고리즘입니다.
8x8 형식의 데이터가 반복적으로 찍힌다고 Adam7 Algorithm을 설명하고 있습니다.
해당문제에서는 chunk 1을 찍을때 qrcode를 찍고 그위에 여러 픽셀을 더 찍어서 위에 첨부된 chunk1.png 파일이 되었습니다.
그래서 IDAT chunk Size를 좀 줄이면 아래와 같은 사진을 찾을 수 있었습니다.
QRCode 인증을 하면 Flag가 나오는 형식의 Adam7 Algorithm을 이용한 Image Steganography 문제 였습니다.
Reference
'$ 포렌식 $ > $ 포렌식 기술적 이론 $' 카테고리의 다른 글
CSV 파일을 SQLite Studio로 넣어서 확인하기 (0) 2019.11.08 프리패치 파일 분석(Prefetch File Analysis) (0) 2019.11.07 Image 1bpp, 2bpp LSB Steganography (0) 2019.11.07 Forensics Analysis of Recycle Bin (0) 2019.10.14 디스크 분석을 위한 vmdk 변환 및 가상 이미지 부팅! (0) 2019.09.18