wargame.kr의 5번째 문제인 WTF_CODE다. 이번에는 약간 쉬어가는 느낌으로 어떤 특별한 기술이 요구되지 않는다.
이번 문제는 특이하게 어떤 프로그래밍 언어로 쓰여진 소스 코드를 해석하는 문제다. 확인을 위해 Start 버튼을 눌러 문제 사이트로 진입하여 소스 코드를 다운받아보자.
문제에서 설명하는 것처럼 다운받은 소스 코드를 메모장으로 열어보면 아무것도 안 보이는 것을 확인할 수 있다. 하지만 드래그를 해보면 공백인지 아니면 표현이 안되는 문자인지 뭔지 모를 데이터가 존재하고 있는 것을 볼 수 있다.
자세한 확인을 위해 16진수 값으로 볼 수 있는 HxD 프로그램으로 열어보면 다음과 같이 0x20, 0x0A, 0x09 3개의 문자로 이루어진 코드임을 알 수 있다. ASCII 테이블을 확인해보면 이는 각각 [SPACE], [LINE FEED], [HORIZONTAL TAB]에 해당된다.
공백, 개행 문자, 탭 문자로 이루어졌기 때문에 소스 코드를 열어봤을 때 아무것도 안 보이는 것은 당연할 것이다. 그렇다면 이를 어떻게 해석할 수 있을까? 문제에서 설명했듯이 이는 프로그래밍 언어로써 여기서 사용하는 3개의 문자에 대해 검색해보면 단서를 찾을 수 있을 것이다.
이런저런 키워드로 검색하다가 다음과 같은 검색 결과를 얻을 수 있었다. 이는 Whitespace라는 프로그래밍 언어로써 Edwin Brady, Chris Morris라는 사람이 만들었다고 한다. 이곳에서 이 소스 코드를 해독할 수 있다.
해독 결과 플래그 값이 적혀있는 것을 확인할 수 있었다.
처음에는 HxD로 열었을 때 점(표시 불가능한 문자?)과 공백이 번갈아서 나오길래 어떤 모스부호인줄 알고 이를 해독하는 프로그램을 작성하려다가 3개의 문자로 이루어져있다는 걸 알고 그만두었다. 처음 풀때는 이게 무슨 암호인가.. 어떻게 해독해야 하나 고민하고 있었는데 문제를 천천히 읽어보니 이게 프로그래밍 언어란 걸 알고 브레인퍽 같은 종류로 찾아봐서 풀 수 있었던 것 같다.
'챌린지 > Wargame.kr' 카테고리의 다른 글
bughela - strcmp (0) | 2020.12.18 |
---|---|
bughela - fly me to the moon (0) | 2020.12.16 |
bughela - login filtering (0) | 2020.12.11 |
bughela - QR CODE PUZZLE (0) | 2020.12.09 |
bughela - flee button (0) | 2020.12.07 |