Layer7 디스코드 > rules
flag : Layer7{Did_you_check_your_ Affiliation??}
다운 받으면 txt 파일을 준다.
HxD로 열어보면 PNG 파일 시그니처가 보인다. PNG 파일 트레일러를 검색해보면 그 아래 PNG 파일 시그니처가 또 보인다.
이로서 PNG 파일 두개를 붙여놓은 파일이라는 것을 알 수 있다.
대충 GPT 이용해서 파일 나누는 프로그램 짜주면 된다.
with open("Overlap.txt", 'rb') as file:
binary_data = file.read()
png_signature = b'\\x89PNG\\r\\n\\x1a\\n'
iend_chunk = b'IEND\\xaeB`\\x82'
def extract_pngs(binary_data):
start = 0
png_count = 0
while True:
sig_index = binary_data.find(png_signature, start)
if sig_index == -1:
break
end_index = binary_data.find(iend_chunk, sig_index)
if end_index == -1:
break
png_data = binary_data[sig_index:end_index + len(iend_chunk)]
with open(f'extracted_{png_count}.png', 'wb') as f:
f.write(png_data)
png_count += 1
start = sig_index + 1
return png_count
num_png = extract_pngs(binary_data)
print(f"총 {num_png}개의 PNG 파일이 추출되었습니다.")
flag : Layer7{gReAT_0VErla_sOlv}
잘 기억은 안 나지만 }
가 없어도 넣으면 맞았던 것 같다.
알맞는 툴 찾고 사용하는 과정을 배우는 데 구글링보다 GPT한테 물어보는게 더 효과적일 것 같아서 GPT를 적극 이용했다.
https://chatgpt.com/share/67826967-2814-8013-ad06-235b6c5d648b