문제분석 & 풀이
javascript challenge다.
개발자도구를 사용해서 코드를 확인했다.
코드가 보기 힘들게 구성됐다.
처음에 이것을 봤을때 막막했다. (오랜시간 삽질했다.)
javascript 코드 1줄 마지막을 뜻하는 " ; " 가 몇 개가 있는지 검색했다.
";"는 상단 코드에 다수 분포하고 마지막에 1개 있었다.
추측하자면, " ; " 를 기준으로 나눠져 있는 상단 코드는 변수 선언부고 아래 코드들이 선언부를 통해 표현된 부분이라고 생각했다.
만약, 변수 선언부라면 뜬금없이 마지막에 " ; " 가 하나만 있는 것이 좀 이상하다고 생각했고 마지막 이모티콘 같은 모양을 검색했다.
검색결과가 1개만 뜨는 것을 확인 할 수 있고 이 부분이 오류인가 싶어서 이 부분을 빼고 console에 입력했다.
입력하면 정상적인 코드가 등장한다.
○ 코드분석
1) 변수들을 선언하고 6번 줄에서는 URL을 "=" 를 기준으로 잘라서 "="와 "=" 오른쪽에 위치한 문자열 값을 ck에 저장한다.
2) enco에 i 와 0 이 유니코드된 값을 모두 합쳐서 넣는다. (i는 1~121)
3) enco_(x)는 charCodeAt(x)을 실행하며 enco 변수에서 x번째 인덱스의 값을 유니코드로 바꾸기 전으로 변환한다.
4) ck가 조건문에 해당하는 값이면 다른 URL 주소로 이동한다.
결론적으로 조건문에 해당되는 ck를 알아내고 [ck].php를 완성해서 직접 그 URL 주소로 접속하면 문제가 해결 될 것 같다.
c를 알아내기 위해서 간단하세 console.log()를 뒷부분에 추가해서 알아냈다.
결과로 "=youaregod~~~~~~~!" 가 나온다.
URL 주소를 ck를 이용하여 구해보자.
"=youaregod~~~~~~~!" 에서 "="만 빼고 마지막에 .php를 붙여서 완성했다.
./youaregod~~~~~~~!.php
접속해보자.