일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 디지털포렌식
- 실기
- 24시간의 전사
- slack space
- 정보처리기사 필기 합격
- 디지털포렌식 with CTF
- 는 하지마...
- Window process
- CTF-D
- network
- 윈도우 프로세스 종류
- 생활코딩 html
- disk
- 생활코딩
- Multimedia
- vinetto
- 네트워크관리사2급
- 네트워크 보안
- memory
- ftz
- 윈도우 프로세스
- blkls
- 포렌식
- N0Named
- Multimeida
- html
- 2022시작
- ZIP 파일구조
- 슬퍼유
- pythonchallenge
- Today
- Total
ssoL2 TISTORY
[N0Named] [A] 입사 테스트[2] 풀이 본문
아 ㅋㅋ
입사 테스트[1]로 착각하고 헤맸네 ㅇ.ㅇ;;;;;;;;;;;;;;
문제 ㅎㅇ영
설명대로 이미지 파일을 복구 하면 되겠구만 ^^!
task.jpg 다운로드~~~
역시 지원이 안되는구만 ^^
일단 HxD로 살펴보자구~!
일단 보니까 헤더 시그니처가 JPG도 아님 근데 자세히 보니 PNG랑 더 가까움
JPG : FF D8 FF E0 xx xx 4A 46
헤더 : 89 4A 50 47 0D 0A 1A 0A
PNG : 89 50 4E 47 0D 0A 1A 0A
=> 헤더를 JPG 말고 PNG로 바꾸자
PNG 헤더 시그니처로 바꿈 ㅇㅇ
오 지원하지 않던 형식이 검은 바탕이 나타남 올ㅋ
그래도 이번엔 크기 형식도 작고 괜춘한디,,,,,,,,,,,,,,,,그럼 TrewkPNG로 살펴보자
TrewkPNG : PNG 파일의 청크를 확인 및 편집 가능
갑자기 Garbage found at end of file 나타남
뭔 쓰레기 일까..
(뒤에 설명 있음 !)
흠..일단 잘 열림
보니까 이 파일은 PNG가 아니라 APNG인 듯 (Contents 보면 알 수 있음)
근데 지금 이 Chunk들 패킷 순서가 틀림
acTL : PNG 명세에 정의된 부수적인 청크로, 첫번째 IDAT 청크 앞에 와야함
fcTL : PNG 명세에 정의된 부수적인 청크로, IDAT 청크 앞에 나오거나 적용되는 프레임의 fdAT 청크 앞에 와야함
fdAT : IDAT 청크와 같은 목적으로 순서 번호가 앞에 나오는 것을 제외하면 IDAT과 같은 구조
tRNS : 보조 Chunk로, Transparency 정보를 지님
밑에는 PNG 파일에서 PTLE Chunk의 유무에 따라서 놓여지는 패킷들의 순서를 보여줌
이 파일은 PLTE 청크 없으니까 순서 맞게 조립 ㄱㄱ
일단 IHDR 다음에 tRNS 가 와야함 ㅇㅇ 옮기자
다음은 IDAT 가 와야하므로 그 전에 acTL을 옮겨보장 ^^
다음 첫번째로 fcTL과 IDAT를 정해주면 됨
fcTL은 Contents 보면 seq#=0과 seq#=1로 순서가 정해져 있음 ㅇㅇ
근데 IDAT는 2개가 있는데 뭘로 정하지 ?
Length 7316 짜리와 Length 32768 짜리가 있는데 당연히 큰거 먼저 오겠쥬 ?!
그 다음은 두번째로 올 fcTL과 IDAT 세팅 ㄱㄱ
(일단 무시하고 넘어가자..뒤에서 고친당 ㅠ.ㅠ)
마지막으로 fdAT 세팅해주고 IEND로 마지막 장식하면 끝!!
저장 ㄷㄱㄷㄱ
오 사진열어보니까 바뀜 ㅇㅇ
근데
저기
flag는 어디갔죠?
알고보니
PNG는 헤더 시그니처 뿐만 아니라 푸터도 존재한데 ㅇㅇ
File Type | Header Signature(Hex) | Footer Signature(Hex) |
JPEG | FF D8 FF E0 FF D8 FF E8 |
FF D9 |
GIF | 47 49 46 38 37 61 | 00 3B |
PNG | 89 50 4E 47 0D 0A 1A 0A | 49 45 4E 44 AE 42 60 82 |
25 50 44 46 2D 31 2E | 25 25 45 4F 46 | |
ZIP | 50 4B 03 04 | 50 4B 05 06 |
ALZ | 41 4C 5A 01 | 43 4C 5A 02 |
RAR | 52 63 72 21 1A 07 | 3D 7B 00 40 07 00 |
그럼 뒤에도 확인해보자
엇 나는 똑바로 되어있음...
아 !!!!!!!!!!!!!!!!!!!!
그럼 아까 TweakPNG에 올릴 때 뒤에 찌꺼기 찾았다는게 이거였나봄
새로 다운 받아서 확인해보니까 뒤에 FF D9 가 추가되어 있는 것을 확인해볼 수 있당 !
근데도 변한게 없다..............
미르스띤 보니까
내가 패킷 순서를 잘못 이해 한듯 싶다.
포렌식 교육 OT 공부 블로그에서 써놓은 것을 보면 IDAT 청크 여러개 존재 가능하다 했다.
따라서
[fcTL-IDAT] 구조가 여러개 가능하다는 말이 아니라
fcTL-IDAT-IDAT-IDAT-.... 이렇게 IDAT가 여러개 가능하다는 말
따라서 중간에 fcTL seq#=1이랑 7000번대 크기였던 IDAT를 짝지어 2번째 구조로 넣는 것이 아닌
IDAT를 연속 두개 놓고
그 다음 fdAT에 대한 fcTL이 seq#=1 이었던 것임
ㄷ.ㄷ;;
그래서 다음과 같이 고쳐준다 !
fcTL-IDAT-IDAT 한 프레임과 fcTL-fdAT 한 프레임
총 두 프레임으로 이루어진 APNG 인 것이당 !!
사실 이래도 움직이지 않는게 정상이다.
왜냐면 이 파일이 PNG로 되어있기 때문임
그래도 APNG이기 때문에 다른 프레임의 사진이 존재할 것이다.
어떻게 분리할 것이냐?
바로 ubuntu에서 apngdis 명령어로 !!
일단 update 하고~
APNG를 각 프레임으로 분리해주는 apngdis를 설치하자~
오~ frame 1과 2로 분리 완료 !!!
확인해보니 두개로 나왔다잉~~~~~~~~~~
해결~
'challenge > forensic' 카테고리의 다른 글
[N0Named] infect 풀이 (수정) (0) | 2021.01.25 |
---|---|
[N0Named] [C] 조별과제_배드엔딩 (0) | 2021.01.18 |
[N0Named] [A] 회사 찾기 (0) | 2021.01.18 |
[N0Named] RE: xsh_derev 풀이 (0) | 2021.01.18 |
[N0Named] magicIMAGE 풀이 (0) | 2021.01.12 |