chatGPT의 힘을 빌려서 풀었다. 소리 파일을 얻은 후 단어 유추하기 진짜 힘들었다..
input.wav 파일을 연산해서 output.wav 파일로 만들어주는 프로그램이다.
분석하여 역산한다면 음성파일이 하나 나오게 된다.
# solve.py
def bit_reverse(a1):
ret = 0
for i in range(16):
ret = (a1 & 1) | (ret << 1)
a1 >>= 1
return ret
f = open("output.wav", "rb")
res = open("flag.wav", "wb")
res.write(f.read(0x2C))
while True:
box = f.read(2)
if len(box) < 2:
break
val = int.from_bytes(box, byteorder='little')
val = ((val << 8) & 0xFF00) | ((val >> 8) & 0x00FF)
val = bit_reverse(val)
val = ((val << 8) & 0xFF00) | ((val >> 8) & 0x00FF)
res.write(val.to_bytes(2, byteorder='little'))
f.close()
res.close()
이러면 뉴진스 hype boy 가사가 있는 파일이 나오게 된다.
hspace{call_my_phone_right_now_you_know_i_hype_you_boy}
약간의 변형을 섞은 전형적인 autorev 문제이다.
python 모듈인 capstone을 사용하면 코드 짜기 조금 수월하다.
51번째 라운드부터 변형이 되는데 hex 값으로 send 해야하는 줄 모르고 삽질 좀 많이 했다.