문제를 다운 받아보면 zip파일이 다운로드 되는데, 이 zip파일에는 암호가 걸려져 있어서 압축을 해제할 수 없다.

파일의 구조를 보기 위해 HxD로 열어보면 

파일 시그니처 시작점으로 부터 offset 06, 07번의 값이 09 08 로 되어 있는데 이는 암호화 된 zip 파일을 의미한다고 한다.

이 파일의 09 08 이라는 값을 모두 기본값인 00 00 으로 바꾸고 저장을 해 준다.

저장을 하고 압축을 풀면 3개의 파일이 나오는 데 

이중 zip파일을 다시 압축 해제하여 메모장에 있는 key값을 base64로 디코딩 하면 key 값을 얻을 수 있다.

dGE1dHlfSDR6M2xudXRfY29mZmVl -> ta5ty_H4z3lnut_coffee









'Security & Hacking > Wargame' 카테고리의 다른 글

[SuNiNaTaS] Forensic 30  (0) 2019.02.10
[SuNiNaTaS] Forensic 29  (0) 2019.02.09
[SuNiNaTaS] Forensic 26  (0) 2019.01.27
[SuNiNaTaS] Forensic 21  (0) 2019.01.24
[SuNiNaTaS] Forensic 19  (0) 2019.01.22

@ append() : 리스트 가장 뒤에 요소 추가

1
2
3
4
my_list = [1,2,3]
my_list.append(4)
print(my_list)
# 출력값 : [1,2,3,4]
cs

append는 한번에 요소 하나씩만 추가 가능하다


@ sort() : 리스트 정렬

1
2
3
4
5
6
7
my_list = [5,9,3,7]
my_list.sort()
print(my_list)
# 출력값 : [3, 5, 7, 9]
my_list.sort(reverse=True)
print(my_list)
# 출력값 : [9, 7, 5, 3]
cs

sort의 기본 값은 오름차순 정렬이다.

reverse사용 시 내림차순 정렬을 하는데, 오름차순 정렬한 후 뒤집은(reverse) 것이다.


@ reverse() : 리스트 뒤집기

1
2
3
4
my_list = [9,2,5,2]
my_list.reverse()
print(my_list)
# 출력값 : [2, 5, 2, 9]
cs


@ index(value) : 리스트에서 value를 찾고 그 인덱스를 반환

1
2
3
my_list = [9,2,5,3]
print(my_list.index(2))
# 출력값 : 1
cs

리스트에서 2의 위치의 값을 반환한다.


@ insert(index, value) : 리스트에서 원하는 위치에 값을 넣는다.

1
2
3
4
my_list = [1,2,3]
my_list.insert(1,"python")
print(my_list)
# 출력값 : [1, 'python', 2, 3]
cs


@ remove(value) : 리스트에서 value를 찾아서 제거

1
2
3
4
my_list = [5,6,7,8]
my_list.remove(7)
print(my_list)
# 출력값 : [5, 6, 8]]
cs

만약 리스트에 5라는 값이 2개 이상 있었다면 처음 찾은 값만 제거한다.


@ pop(index) : index 위치의 값을 반환하고 그 값을 리스트에서 제거한다.

1
2
3
4
5
my_list = [5,6,7,8]
print(my_list.pop(1))
# 출력값 : 6
print(my_list)
# 출력값 : [5, 7, 8]
cs

index 값을 넣지 않으면 맨 마지막 값을 뽑아낸다.


@ count(value) : 리스트 안에서 value의 개수를 확인해서 반환한다.

1
2
3
my_list = [1,3,4,1,5,1,1]
print(my_list.count(1))
# 출력값 : 4
cs


@ extend(list) : 원래의 리스트에 다른 리스트를 더한다

1
2
3
4
5
my_list = [1,2]
= [3,4]
my_list.extend(b)
print(my_list)
# 출력값 : [1, 2, 3, 4]
cs


@ len() : 요소의 개수를 구하는 함수

1
2
3
my_list = [1,2,3]
print(len(my_list))
# 출력값 : 3
cs


@ copy() : 리스트이 모든 값을 복제하여 새로운 리스트 생성한다.

1
2
3
4
my_list = [1,2,3,4]
co_list = my_list.copy()
print(co_list)
# 출력값 : [1, 2, 3, 4]
cs


@ join() : 리스트의 요소들이 문자열로만 이루어진 경우 join()을 이용하여 하나의 문자열로 만들 수 있다.

1
2
3
4
my_list = ["파","이","썬"]
my_str = "".join(my_list)
print(my_str)
# 출력값 : 파이썬
cs

리스트 각 요소 사이에 빈 문자열을 삽입하여 문자열로 반환한다.


@ clear() : 리스트의 모든 값을 제거

1
2
3
4
my_list = [5,6,7,8]
my_list.clear()
print(my_list)
# 출력값 : []
cs


'Language > Python' 카테고리의 다른 글

딕셔너리(Dictionary)  (0) 2019.02.03
튜플(Tuple)  (0) 2019.01.31
리스트(List)  (0) 2019.01.30
포매팅  (0) 2019.01.30
문자열 인덱싱 / 슬라이싱  (0) 2019.01.27

리스트는 데이터를 목록화한 자료형이다.

1
2
3
4
5
6
num_list = [1,2,3]
print(num_list)
# 출력값 : [1,2,3]
 
print(num_list[1])
# 출력값 : 2
cs

리스트를 만들 때는 [ ](대괄호)를 이용하여 만든다.

인덱스 값을 지정해 줄 수도 있다.


[리스트 수정하기]

1
2
3
4
5
6
str_list = ["abc","def","ghi"]
print(str_list)
# 출력값 : ['abc', 'def', 'ghi']
str_list[0= "cba"
print(str_list)
# 출력값 : ['cba', 'def', 'ghi']
cs

수정할 리스트의 인덱스를 지정해서 수정할 수 있다.



'Language > Python' 카테고리의 다른 글

튜플(Tuple)  (0) 2019.01.31
리스트 관련 함수  (0) 2019.01.31
포매팅  (0) 2019.01.30
문자열 인덱싱 / 슬라이싱  (0) 2019.01.27
변수끼리 값 교체  (0) 2019.01.27

+ Recent posts