일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- NFPC
- Symmetric key algorithm
- The python challenge
- Symmetric key crypto
- DefCon 21
- php
- WEB
- Defcon
- 대칭키암호
- 웹
- block cipher
- 파이썬 문법
- 네트워크
- network forensic
- 파이썬
- CTF
- 포렌식
- pythonchallenge
- 암호학
- 파이썬 문제
- Stream cipher
- forensic
- 암호수학
- c
- Symmetric key
- 암호
- 파이썬 공부
- python
- C언어
- 대칭키 암호
- Today
- Total
목록파이썬 문제 (4)
Hardner
The Python Challenge: level 3 아래 글의 해석: "하나의 소문자, 정확히 3개의 큰 보디가드에게 좌우가 둘러싸여져있다. " 사진을 참고해서 의역해보면 "하나의 소문자 좌우에 3개의 대문자로 둘러싸여져있다."란 말 같습니다. 이외에 별다른 내용이 없으므로 페이지 소스를 열어서 코드를 확인해 보겠습니다. HTML 태그 아래를 보면 이렇게 긴 주석이 발견됩니다. 직접 하나하나 찾을 수도 있지만 주석의 길이가 이미지보다 훨씬 길고 파이썬 공부를 위해 하는 것이기 때문에 직접 코딩을 해보았는데 1번은 가지고 있는 지식을 토대로 한 것이고, 2번은 1번을 풀고 코딩을 간략화 하고 싶어서 정규표현식을 공부하여 코딩한 내용입니다. file = ''' 주석 문장 ''' cnt = 0 # 하나의 소..
The Python Challenge: level 2 아래 글의 해석: " 페이지 소스안에 있는 문자들을 알아봐라 " 이 글을 참고하여 페이지 소스를 열어 보면 html 태그 아래에 위와 같은 주석이 보입니다. 맨 위에 있는 주석의 뜻을 해석하면 "아래의 난잡한 문자들 안에서 희귀한 것을 찾아라"라는 의미인 것 같습니다. 희귀한 문자를 찾기위해서 문자들의 개수를 구해야하기 때문에 Python에서 Collections 모듈의 Counter 함수를 이용해보겠습니다. Counter 함수란 동일한 값의 자료가 몇개인지를 파악할 때 사용하는 것인데 문자열을 입력하면 { 문자 : 개수 }의 딕셔너리 형태로 반환해줍니다. 주석안에 적혀있는 문장이 위에 적힌 내용보다 훨씬 길기 때문에 묶어주기 위해서 위와 같이 코딩을..
The Python Challenge : level 1 사진에있는 문자를 보고 추리해보면 K -> M, O -> Q, E -> G 모두 두번 이동하는 것을 알 수 있었고 이를 통해 시저 암호에 관한 문제일 것이라는 생각을 할 수 있었습니다. 분홍색으로 적혀 있는 문자가 시저암호로 암호화 되어있는거 같아. 복호화 코딩을 했습니다. 암호화를 하는 키 값이 문제의 사진을 보고 2로 추측하여 복호화합니다. 복호화한 결과를 다시 정리 하자면 "i hope you didnt translate it by hand. thats what computers are for. doing it in by hand is inefficient and that's why this text is so long. using string..
The Python Challenge : warming up Python 공부를 하기 위해 The Python Challenge 문제를 풀어 보도록 하겠습니다. 우선 URL에 pythonchallenge.com 이라고 입력하면 위의 사진과 같은 사이트가 나옵니다. 문제를 풀기 위해 "Click here to get challenged"를 클릭하면 아래와 같은 페이지로 이동합니다. 힌트를 참고하여 가운데의 238이 눈에 띄니까 0.html을 238.html로 바꾸어보았습니다. 그러면 위와 같은 페이지가 나오는데 이를 통해 사진에 나온 238이 2^38이라는 것을 알 수 있습니다. Python을 이용해서 2^38의 값을 구해서 아래와 같이 URL에 입력해주면 문제가 풀립니다. http://www.python..