[SuNiNaTaS] challenges_01
어떤 문자열을 입력하면 Check를 한다.
asp 웹 문법이 2종류가 나온다.
1. Replace(str, "a", "aad") → 입력한 문자열(=str)에서 "a"라는 문자를 "aad"로 바꿈. 2. Mid(str, 2, 2) → 입력한 문자열(=str)에서 2번째 문자포함 2개의 문자를 가져온다. (3번째 인자의 값이 총 문자열의 길이 이상일 경우(out of range) : 문자열 끝까지 반환) (문자열을 셀 때 맨 앞의 첫 문자가 0번째 문자가 아님. 1번째 문자) |
Replace(str, "a", "aad")
입력한 문자열(=str)에서 "a"라는 문자를 "aad"로 바꿈.
Replace(str, "i", "in")
입력한 문자열(=str)에서 "i"라는 문자를 "in"로 바꿈.
Mid(str, 2, 2)
입력한 문자열(=str)에서 2번째 문자포함 2개의 문자를 가져온다.
Mid(str, 4, 6)
입력한 문자열(=str)에서 4번째 문자포함 6개의 문자를 가져온다.
result = result1 & result2
result1 = "abc" 이고 result2 = "def" 일 경우
result 는 "abcdef" 가 된다.
Response.write result
이 코드는 result 라는 변수에 결과 값을 쓰는 코드로 보인다.
그렇게 해서 만들어진 result 변수의 문자열을 검사해서 "admin"이라는 문자열과 같으면
PW를 알려준다.
그럼 우리가 할 일은?
"STR" → Replace(str, "a", "aad") → Replace(str, "i", "in") → Mid(str, 2, 2) → Mid(str, 4, 6) → & 연산 → "admin"
에서
"STR"에 어떤 문자열을 넣어야 하나? 이다.
나는 이 문제를 풀 때 Replace(str, "a", "aad")가 있으므로
"a"부터 시작했다.
STR = "a"
그러면 "a"는 "aad"로 바뀌고, "admin"이 나와야 하므로 "m"을 추가했다.
STR = "am" → "aadm"
그리고 "in"이 나와야 하는데, "i"만 넣어도 "in"이 반환되므로 "i" 만 추가한다.
STR = "ami" → "aadmi" → "aadmin"
다음, result1은 Mid(str, 2, 2) 이므로
result1 = "ad"
result2는 Mid(str, 4, 6) 이므로
result2 = "min" (→ 6개가 다 없기 때문에 문자열 끝까지만 반환한다)
결국, result = result1 & result2 이기 때문에
result = "admin" 이 나온다.
blank에 ami를 치면
정답이다.
그러면 아래에 이렇게 Authkey가 공개된다.
1번은 너무 쉬운 문제였다.