목록분류 전체보기 (90)
베지밀

11723 집합 문제 문제 풀이의 관건set를 사용해서 집합 연산을 수행all, empty와 같이 x값이 주어지지 않는 경우 구분임시로 입력값을 저장하고, 입력값의 개수를 구분하자 정답import sysM = int(sys.stdin.readline())S = set()for _ in range(M): tmp = sys.stdin.readline().split() if len(tmp) == 1: if tmp[0] == 'all': S = set(range(1, 21)) else: S = set() else: cmd = tmp[0] x = int(tmp[1]) if cmd == 'add': S.add(x) if cmd == 'remo..

사건의 발단 우분투의 파일을 로컬 호스트(윈도우)로 옮기기 위해 공유폴더를 설정하고자 했다. 1. VMware Tools 설치sudo apt updatesudo apt install open-vm-tools open-vm-tools-desktop설치 후 시스템을 재부팅해야 함sudo reboot 2. VMware에서 공유 폴더 설정VMware에서 VM>Settings>Options 탭에서 Shared Folders를 Always enabled로 설정한다.Add에서 호스트 시스템의 공유 폴더를 추가해준다.나는 문서에 VM>Ubuntu>shared folder로 설정했다. 3. 공유 폴더 확인 및 접근ls /mnt/hgfs# 만약 접근 권한 문제가 생길 경우sudo ls /mnt/hgfs 4. 자동 마운..

소프트웨어가 복잡해지고 다양한 모듈을 사용함에 따라, 제로데이 취약점을 공개할 때 특정 기업의 소프트웨어 제품이 어떤 구성 요소로 이루어져 있는지를 효율적으로 점검할 수 있는 방법이 필요했다.또한 Log4j, HeartBleed, npm 등의 보안 문제가 발생함에 따라, 오픈소스 보안 강화에 대한 필요성이 대두되었다.이와 같이 오픈소스 소프트웨어 공급망 보호를 위해 도입된 SBOM에 대해서 알아보자. SBOM이란?제조업의 BOM(Bill of Materials)에서 파생된 개념으로, 소프트웨어 구성 요소에 대한 메타 정보를 제공하는 소프트웨어 자재 명세서로, 소프트웨어에 포함된 모든 구성 요소, 라이브러리, 모듈 및 버전, 라이선스, 출처 등의 정보를 포함한다. 소프트웨어의 구성 컴포넌트에 관한 메타정..

1152 단어의 개수 정답S = input().split()print(len(S)) 실패한 시도S = input().strip()cnt = S.count(' ')print(cnt+1) 처음엔 공백의 개수를 세면 된다고 생각해서 count함수를 사용하여 코드를 작성했다.심지어 문자열 앞 뒤 공백을 제거하면서 완벽한 코드라고 생각했다..! 그러나 계속해서 틀리길래 gpt를 통해 질의한 결과..나의 코드는 빈 문자열도 1로 계산해버림따라서 strip과 count를 사용하는 것이 아닌, split으로 문자열을 쪼개서 리스트로 변환하도록 수정했다.

문제는 다음과 같다. 나는 다음 두 가지 방법으로 풀었다.1. sort()로 정렬해서 첫번째와 마지막 인덱스를 찾는 방법2. min(), max() 함수를 이용하는 방법 #10818#sort()N = int(input())num_list = list(map(int, input().split()))num_list.sort()print(num_list[0], end=' ')print(num_list[N-1])#10818#min(), max()N = int(input())num_list = list(map(int, input().split()))print(min(num_list), end=' ')print(max(num_list))참고로 print(min(num_list), max(num_list))가 더 ..

Cisco 스위치 초기화 명령어- 모든 구성 파일 및 VLAN 데이터를 삭제하고 재부팅하여 공장 초기 상태로 복원- IP 주소, 라우팅 설정, VLAN 설정 등을 다 초기화시킴 Switch> enSwitch# del vlan.datDelete filename [vlan.dat]?Delete flash:/vlan.dat? [confirm]%Error deleting flash:/vlan.dat (No such file or directory) Switch# erase startup-configErasing the nvram filesystem will remove all configuration files! Continue? [confirm][OK]Erase of nvram: complete%SYS-7-N..

IT계열 전공이지만 개발자가 아니라서 코딩을 제대로 해본 적 없는 취준생의.. 취준 성공을 위한 코테 공부 시작 - Python, C를 수강한 적은 있음- 알고리즘 공부해본 적 없음 & 교양 수준의 코딩 지식 이 영상 보고 시작함https://youtu.be/ukkLCl9yBvE?si=dYFjKdwThMHBb04u 1. 코드업 파이썬 기초 100제https://codeup.kr/problemsetsol.php?psid=33 문제집 / Python 기초 100제 codeup.kr 혹은 백준 단계별로 풀어보기 6단계까지https://www.acmicpc.net/step 2. 백준 알고리즘 문제 풀기가이드 : 그리디 알고리즘 - 탐색(완전탐색, BFS, DFS) 만 잘 갖춰도 코테에서 떨어질 일 ..

2가 더 쉬움 Server-client 2 IDA로 서버 코드를 열어보자 23번째 줄에서 연결이 수립되고, sub_401140 함수로 연결된다. (i는 아마도 소켓일 것이다)해당 부분이 문제를 푸는 포인트인 것 같아서 진입해본다. sub_401140 함수아까 cmd창에서 본 문자열들이다.사용자로부터 번호를 receive하고 input에 저장한다. strncmp로 입력값을 비교해서 어떤 역할을 수행하는데, 7777이 보인다. input 입력값에서 세미콜론을 찾고, 해당 위치 포인터를 v2에 반환한다.그리고 ; 이후의 값부터 sub_401000함수로 넘겨준다. sub_401000 함수v2+1부터의 값은 Command라는 매개변수로 들어왔다.buf라는 버퍼를 7777~ 문자열로 붙여놓고, 이후는 0으로 초기화..

분석툴 - x32dbg / IDA 처음 fe를 실행시키면 바탕화면에 아이유들이 다 사라져있다. (새로운 파일로 덮어씌워졌다) main 함수 12번째 줄 함수 (get_desktop_path)해당 함수의 내용SHGetSpecialFolderPathA라는 API에 \x10를 인자로 주면 Desktop의 경로를 받아온다.SHGetSpecialFolderPathA : 윈도우의 특정 경로를 가져오는 함수참고 : https://2ry53.tistory.com/entry/CSIDL의-값과-그-사용-방법Desktop 경로를 잘 가져왔으면 1, 아니면 0 FileName = input(=Desktop 주소) + \\*.* 을 이어붙여서 버퍼에 쓰고바탕화면에서 확장자가 존재하는 모든 파일을 가져온 후문자열 끝에서 .을 찾..

분석툴 - IDA 현재 실행중인 파일 경로 Filename에 받아온다.Filename = C:\Users\anon\Desktop\kisia_samples\4_ida_training\ida_training\training1_hm.exemal_deu라는 경로는 filename에 없기 때문에 if문을 지나서 밖의 명령이 실행됨GetTempPathA : 임시폴더의 경로를 Buffer에 가져옴. Buffer = C:\Users\anon\AppData\Local\TempPathAppendA : Buffer의 경로에 ‘mal_edu’라는 값을 더한다. Buffer = C:\Users\anon\AppData\Local\Temp\mal_eduCreateDirectoryA : Buffer 문자열에 해당하는 경로..

분석 툴 : x32dbg 입력값을 더하는 시스템그러나 파일 이름에 맞게 random_number를 찾아야 한다. ebp-8, ebp-C : 우리가 입력한 값입력값이 401000의 인자로 들어간다. call을 해서 401000함수로 진입이때, 우리가 입력한 값이 ebp+8, ebp+C로 바뀌어있음⇒ 이전 함수의 ebp 값을 스택에 저장해서 401000의 새로운 스택 프레임을 만들었기 때문에!! add로 두 값을 더해서 return한다다음 함수로 진입하면 다음과 같은 화면을 볼 수 있는데,GetTickCount : cpu의 clock 타임을 가져온다 → 랜덤한 값을 가져올 때 많이 씀eax에 01BE9EA7가 있고, idiv ecx를 하면idiv를 통해 eax에 몫이, ecx에 나머지가 들어간다.하위 연산..

이메일 헤더란?메일 발송자의 위치부터 시작하여 각 서버를 거쳐 최종적으로 수신자에게 오는 과정을 기록악성코드 분석가는 해커가 발송한 메일을 역추적하기 위해 이메일 헤더의 여러 필드들을 반드시 확인해야 함 이메일 헤더 필드To : 수신인, 받는 사람Cc(Carbon Copy) : 다른 사람이 메시지를 참조해서 읽으라고 보내는 경우Bcc(Blind Carbon Copy) : 숨은 참조로 여러 사람에게 보낼 때 참조인 주소를 숨기기 위해 사용From : 보내는 사람. 임의의 주소를 적으면 되기 때문에 해커는 자신의 주소가 아닌 가짜 주소 입력Reply-To : 수신한 메일을 회신할 때, 우선적으로 Reply-To에 설정된 주소로 회신Received : 수신한 메일이 어느 서버들을 거쳐왔는지 표시헤어 부분의 하..

위 문제에 대해 ERD 모델링을 수행해보자.간단간단 ^^ 우선 주어진 문제에서 다음과 같이 세부 항목을 나눈다.필요한 테이블과 속성들을 구분한다. 위 그림 참고해서 ERD를 그려보자 ERD 그리는 사이트 : https://www.erdcloud.com/ ERDCloudDraw ERD with your team members. All states are shared in real time. And it's FREE. Database modeling tool.www.erdcloud.com식별 비식별 관계를 고려해서 작성해야 함 끝

MySQL Workbench의 Table Data Import Wizard 기능을 이용해서 엑셀파일을 Import해보자 1. import하고자 하는 시트를 csv로 변환이런식으로 구성된 엑셀파일을 쉼표로 구분하기 위해 csv 파일로 저장하자 다른이름으로 저장 > csv로 파일 형식 변환 2. csv 파일을 json 파일로 변환utf-8 인코딩에서 문제가 발생할 것을 대비해서 json파일로 변환한다.https://csvjson.com/csv2json CSV to JSON - CSVJSONEmbed all the functionality of csvjson in any web application with Flatfile. Auto-match columns, validate data fields, and p..

join 한눈에 정리한 사진 # 없어진 기록 찾기SELECT B.ANIMAL_ID, B.NAMEFROM ANIMAL_INS AS A RIGHT JOIN ANIMAL_OUTS AS BON A.ANIMAL_ID = B.ANIMAL_IDWHERE A.ANIMAL_ID IS NULL; 1. RIGHT JOINSELECT FROM TABLE A RIGHT JOIN TABLE BON A.KEY = B.KEYWHERE A.ANIMAL_ID IS NULL; # 있었는데요 없었습니다SELECT A.ANIMAL_ID, A.NAMEFROM ANIMAL_INS AS A INNER JOIN ANIMAL_OUTS AS BON A.ANIMAL_ID = B.ANIMAL_IDWHERE A.DATETIME > B.DATETIMEOR..