Python challenge level 7
2016.12.23.
처음에 접속했을 때 그냥 이렇게만 되어있고 뭐 소스코드도 정말 저게 끝이고 그래서 그냥 가만히 보고만 있었다. 그러다 그냥 쿠키를 확인해봤는데
...?뭐 어쩌라는 걸까.
다시 고이 접고 생각을 하다 it’s in the air에서 it을 찾으라는 건가 싶어서 설마하면서 oxygen을 입력해보았다.
...^^나만 oxygen.html 찾는 데만 10분 넘게 걸렸나 싶어 다른 사람들 풀이를 보았는데 나만 그런 것 같다.
이런 형식의 사진은 CTF에서도 종종 접하는 사진이다. 아마 저기 띠 부분 RGB값을 이용해 아스키코드로 바꿔서 어찌저찌 하다보면 글자가 나오겠지
우선 사진을 받고 코드를 짜자.
Image 모듈을 사용하면 되는데 나는 우분투에 sudo apt-get install python-imaging이라고 치니 되었다.
Image모듈에서 size[0]은 너비이고, size[1]은 높이다. 띠 부분의 y좌표는 어떻게 구하지 하다 다들 45로 주고 하길레 나도 y좌표를 45로 주고 RGB값을 구했다.
실행시키면 이런 식으로 RGB값들이 주륵 나온다.
이제 이걸 아스키로 바꿔보자
나 같은 경우에는 저거 RGB값들 나올 때 끝에 세자리가 다른 값들도 있어서 저 RGB값을 배열에 넣고 [0]과 [1],[2]가 다 같은 경우에만 아스키로 바꿔 출력하도록 했다.
...ㅅ..스스스마마마마마아아아아트트트트 ㄱㄱㄱ가가가이이이.....
뭔가 싶어 한참을 보다가 앞에 s를 제외하고는 다 7번씩 나오는 걸 확인하였다.
그래서 for문 부분을 고쳤다.
for i in range(a,b,c)는 a에서 b까지 하는데 c만큼 건너뛰면서 실행한다는 것이다. 예를 들어 for i in range( 1, 8, 2): print i라고 한다면 1,3,5,7이 출력된다는 것이다.
실행 결과 []안의 숫자를 문자를 바꾸면 될 것 같다.
저기 숫자부분만 가져와 문자로 바꾸는 코드를 짜고 실행시키면
integrity가 뜬다.
'PYTHON > python_challenge' 카테고리의 다른 글
Python Challenge level 9 (0) | 2016.12.28 |
---|---|
Python Challenge level 8 (0) | 2016.12.26 |
Python Challenge level 6 (0) | 2016.12.23 |
Python Challenge level 5 (0) | 2016.12.22 |
Python Challenge level 4 (0) | 2016.12.22 |