1. 직접 풀어보기

몇 시에 시계가 울리도록 설정되어 있었는지 알아맞추는 문제이고, 정답의 형태는

→ MSG{00월00일00시00분}

처음 파일을 받아 실행해보면 아무것도 안보이고 입력 또한 안먹히는 상태

이를 ida에 올려 확인해보자


Beep Beep 처럼 알람음이 있는 것으로 보아 이 함수가 시간을 설정하는 중요한 함수인 듯 보이는데, 코드를 보면 __time64__localtime64로 현재 지역 시간(struct tm)을 얻어 특정 월·일·시·분을 비교하고 있다.

cmp eax, 8
cmp eax, 0Ah
cmp eax, 0Eh
cmp eax, 1Eh

image.png

image.png

https://skuld2000.tistory.com/137__time64 tm 구조체에 대한 간단한 설명

따라서 결론적으로 다음과 같은 값을 얻을 수 있고 월은 0부터 시작, 일은 1부터 시작한다고 하기 때문에, flag는 MSG{9월10일14시30분}이라는 것을 알 수 있다.

tm_mon == 8
tm_mday == 10 (0A)
tm_hour == 14 (0E)
tm_min == 30 (1E)

2. AI 검증