Wargame Write-Up/HackCTF

[HackCTF] (Forensic) 나는 해귀다 풀이

snwo 2020. 4. 24. 18:59

압축을 풀면 다음과같은 사진이 나온다.

헥스에디터로 열어보자.


PNG 파일은 IEND 로 끝난다. 하지만 마지막에 IEND 가 없기때문에 IEND 를 찾아보면,

 

맨아래가아니라 약간 뒤에있다. 

IEND 다음에 하나의 파일이 있는걸 알 수 있다.

 

BAE...B.DNEI 로 시작하고, GNP 로 끝나는 파일은 없을것이다.

하지만 사진에서 힌트가있다. 파일을 뒤집어놓았다고한다.

 

알고보니 GNP - PNG, DNEI - IEND 이란걸 알 수 있다.

그렇다면 PNG 파일의 Footer인 60 82 값부터 맨끝까지 복사해

값을 원래대로 복구한뒤, png 파일로 만들어보자.


첫번째 : 메모장에 저장.

두번째 : 파이썬으로 값가져와서

뒤집은뒤에 png 파일 만들어 저장하기

 

두단계로 나눌수 있습니다. 참쉽죠?

 


이렇게 82 60 부터 끝까지 메모장에 붙여넣어줍시다.


1
2
3
4
5
6
7
8
9
10
11
12
f=open("C:/Users/~~~/Desktop/data.txt","r"
dic=f.read() 
data=list(reversed(dic))
f.close()
f=open("C:/Users/~~~/Desktop/flag.png","wb")
d=b''
for i in range(len(data)):
    d+=bytes([int(data[i],16)])
 
f.write(d)
f.close()

메모장을 열고 값을 읽어서 리스트로 만든뒤,

리스트를 뒤집어줍시다.

 

그리고 png 파일을 만들어 wb 로 바이너리로 연뒤

리스트값을 하나씩 가져와 \x34 같은 바이트로 만든뒤

이 값들을 png 파일에 써줍니다.

 

( 그냥 w로 열면, 문자열로만들어야하는데,

\x86같은 문자는 에러가난다.

많은 방법이있겠지만, 바이너리로 작성하는게

쉽고 간편하다 )