목록분류 전체보기 (105)
또 뭐하지
1회차클라우드 컴퓨팅, 호스팅 : 서버컴퓨터 대여 서비스EC2(Elastic Compute Cloud) : 순수하게 컴퓨터를 빌려주는 사업 단순 컴퓨터 임대를 넘어 컴퓨터에 소프트웨어 설치 후 대신 운영해주는 방향으로 확장RDS : 관계형 데이터베이스 서비스 형태로 제공프리 티어 : aws와 같은 클라우드 서비에서는 사용자가 무료로 테스트를 해볼 수 있는 기간 혹은 양을 제공 2회차 EC2 서비스 켜기 인스턴스 : EC2에서 컴퓨터 1대인스턴스 시작 탭에서 여러 운영체제와 프리티어 사용 가능 여부 확인 가능 -> 운영체제를 선택하고 여러 사양의 컴퓨터를 선택인스턴스 생성 전에 새로운 key pair를 생성해야함인스턴스 상태가 running으로 전환되면 사용할 수 있는 상태가 됨 EC2 원격제어접속할 ..
풀이#!/usr/bin/env python3from Crypto.Cipher import DESimport signalimport osif __name__ == "__main__": signal.alarm(15) with open("flag", "rb") as f: flag = f.read() key = b'Dream_' + os.urandom(4) + b'Hacker' key1 = key[:8] key2 = key[8:] print("4-byte Brute-forcing is easy. But can you do it in 15 seconds?") cipher1 = DES.new(key1, DES.MODE_ECB) cipher2 = DES...
n, k = map(int, input().split())q = []for i in range(n): if n%(i+1)==0: q.append(i+1)if len(q)
문제풀이제공된 코드를 살펴봤을때, 평문 p가 주어졌을 때 암호화 방식은 아래 공식과 같다. 이 식을 아래와 같이 정리해보면 복호화 방식을 알 수 있다.여기서 readme 파일을 확인해보면 p 를 구하기 위해 필요한 것 중 모르는 것은 key1 밖에 없는 것을 확인할 수 있다. 이때코드에서 key2 보다 key1 이 작다는 것을 알 수 있고 , key1 은 1~94 까지의 값을 가진다 . 큰 범위가 아니므로 전수조사를 시행한다 .복호화 공식에 따라 코드를 작성하고, 나누어 떨어지는 경우만 프린트하도록 하면 p 값을 얻을 수 있다 .
N = int(input())p = []for _ in range(N): a, b, c = map(int, input().split()) d = 0 if a == b == c : d = 10000 + a*1000 elif a == b : d = 1000 + a*100 elif b == c : d = 1000 + b*100 elif c == a : d = 1000 + c*100 else : d = 100 * max(a, b, c) p.append(d)print(max(p))
카나리함수 시작 시 스택 버퍼와 Return Address 사이에 랜덤 값을 삽입한 후 함수 종료 시 해당 랜덤 값의 변조 여부를 확인하여 메모리 오염 여부를 확인하는 보호 기법 카나리 생성 `security_init` 함수에서 TLS에 랜덤 값으로 카나리를 설정하면, 매 함수에서 이를 참조하여 사용합니다. 카나리 우회 기법- 무차별 대입 공격 (Brute Force Attack) : 무차별 대입으로 카나리 값을 구하는 방법. 현실적으로 불가능.- TLS 접근 : 카나리는 TLS에 전역 변수로 저장되므로, 이 값을 읽거나 조작할 수 있으면 카나리를 우회 가능- 스택 카나리 릭 : 함수의 프롤로그에서 스택에 카나리 값을 저장하므로, 이를 읽어낼 수 있으면 카나리를 우회할 수 있음. 가장 현실적인 카나리 우..
풀이#include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1);}void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30);}void get_shell() { system("/bin/sh");} void print_box(unsigned char *box, int idx) { printf("Element of index %d is : %02x\n", idx, box[idx]);}void menu()..
풀이문제파일에는 Image.E01 파일이 첨부되어있다. E01 확장자 : EnCase 이미지 파일 포맷을 사용하여 생성된 디스크 이미지. EnCase는 Guidance Software에서 개발한 디지털 포렌식 도구로, 법적 증거로 사용될 수 있는 디지털 증거를 수집, 분석 및 보고하는 데 널리 사용. E01 파일 열기EnCase 사용EnCase 소프트웨어를 실행하고 "File" 메뉴에서 "Add Evidence"를 선택하여 E01 파일을 엽니다.디스크 이미지가 로드되면, 파일 시스템을 탐색하고 분석할 수 있습니다.FTK Imager 사용FTK Imager를 실행하고 "File" 메뉴에서 "Add Evidence Item"을 선택합니다."Image File"을 선택하고 E01 파일을 지정합니다.로드된 이..