4번째 풀이 문제이다!
Solveme는 몇일을 고민하게 했지만 다른문제로 실력을 더 쌓은 뒤 풀기로 기약하고..!
(내 스스로 500문제를 풀어내는것이 목표이기 때문에!)
CodeShell 이란 사이트! 이 사이트는 회원가입하는 것부터 문제가 있었지만
음.. 문제로 치기에는 양심이..!
정식 문제로 500문제를 채울것이다!
첫 문제로 dummy64!
웹 문제이다. 포너블 문제 등은 지금 시스템 공부가 어느정도 되면 어서어서 해보고 싶다.!!
(dummy64)
문제 페이지 이다.
(문제 코드)
문제 코드를 보니! 예전에 다른 비슷한 문제를 푼 기억이 난다.
이 문제는 역으로 계산해서 flag를 찾아야 하는 것이다.!
우선 출력되는 것을 확인해보자!
이 문제는 역으로 계산해서 flag를 찾아야 하는 것이다.!
우선 출력되는 것을 확인해보자!
(flag)
코드에 따르면 이 값은 역순으로 되어있다. 차근차근 하나씩 역으로 올라가면서 풀어주면 쉽겠구나! 생각이 들었다.
파이썬을 이용했다.
파이썬을 이용했다.
(문자열 뒤집기)
얻은 값을 Base 64로 인코딩!
(Base64 인코딩)
인코딩 후 이제 이 값이 encode 함수에 의해 처리되었으므로
return 부분을 살펴보면 base64로 디코딩되서 bin2hex니까 나는 반대로
hex2bin 해준 후 base64로 인코딩하면 원래 data가 나온다.
return 부분을 살펴보면 base64로 디코딩되서 bin2hex니까 나는 반대로
hex2bin 해준 후 base64로 인코딩하면 원래 data가 나온다.
(원래 data)
이제 이 data들을 XOR 연산을 해주는데
XOR 연산의 특징이 기억났다.
바로
A ^ B = C
A ^ C = B
라는 것! 가물가물해서 다시 확인해보았다. ㅎㅎ
XOR 연산의 특징이 기억났다.
바로
A ^ B = C
A ^ C = B
라는 것! 가물가물해서 다시 확인해보았다. ㅎㅎ
(14 ^ 2 = 12)
(12 ^ 2 = 14)
맞는걸 확인 할 수 있다!
값을 보면 길이가 2보다 작으면 자세히는 뭔지 모르겠지만 안되는것 같다.!
즉 2개씩 끊어서 해석해주면 된다.
2개씩 끊어서 역으로 아스키코드값을 구해낸다.
값을 보면 길이가 2보다 작으면 자세히는 뭔지 모르겠지만 안되는것 같다.!
즉 2개씩 끊어서 해석해주면 된다.
2개씩 끊어서 역으로 아스키코드값을 구해낸다.
(아스키 코드)
이 값을 문자로 치환해주니
flag가 바로 나왔다 :)
flag가 바로 나왔다 :)
(문제 해결)
문제 해결!
'WarGame > 500 Project' 카테고리의 다른 글
(6/500) Wargame.kr - flee button (0) | 2017.04.11 |
---|---|
(5/500) Wargame.kr - QR Code Puzzle (0) | 2017.04.11 |
(3/500) Solve Me - Winter Sleep (0) | 2017.04.06 |
(2/500) Solve Me - Bad Compare (0) | 2017.04.06 |
(1/500) Solve Me - Warm up (0) | 2017.04.06 |