코딩 관련 유튜브 강의 정리

https://www.youtube.com/watch?v=SgGG4-nD4v8 코딩 잘 공부 → 책으로 공부 X, 배끼고싶은 사이트나 앱 배끼기 https://www.youtube.com/watch?v=Wbjc8qAqHaI 첫 공부 언어 → C는 어려움, Java는 C보다 쉽지만 타이핑, Python은 매우 쉬움, Ruby는 Python과 비슷하지만 프레임워크 때문에 사용, JS는 괜찮지만 계속해서 업데이트됨

수동적 정보 수집, 능동적 정보 수집

수동적 정보 수집 - 공격 대상에 직접적으로 접근하지 않고 정보 수집 - 사회공학적 기법을 이용한 정보 수집 - DNS 서버에 정보를 조회하여 대상 사이트의 네트워크 로드맵 획득 - 인터넷을 이용한 정보 수집 장점 : 낮은 위험성 단점 : 신뢰도 능동적 정보 수집 - 공격 대상에 직접적으로 접근하여 정보 수집 장점 : 신뢰도 단점 : 높은 위험성

제로데이 취약점(0 day vulnerability)

▶︎올데이(Olday)  취약점이 확인 된지 오래됐고, 보완 패치도 오래전에 발표 됐지만 패치를 적용하지 않은 상태 공격자들은 오래된 취약점을 활용하더라도 쉽게 공격을 성공 시킬 수 있다.  ▶︎ 원데이(1-day) 최신 취약점이 발견되고 이에 대한 패치가 발표됐지만, 아직 적용되지 않은 상태 최신 패치인 만큼 바로 적용하기까지 시간이 걸리기 때문에 공격자들은 이 시기를 노린다.  패치가 어떤 취약점을 보안했는지 확인 한 다음, 아직 패치를 적용하지 않은 곳에 취약점을 이용한 공격을 감행한다.  ▶︎ 제로데이(0-day) 최신 취약점이 발견됐지만 아직까지 이에 대한 패치가 발표되지 않은 상태 공격자들은 이를 활용해 APT공격을 감행한다. 

C언어로 쉽게 풀어 쓴 자료구조 개정 2판 6장 큐 연습문제

1. 문자 A,B,C,D,E를 큐에 넣었다가 다시 꺼내어 출력하면 어떻게 되는가? (1) A,B,C,D,E // FIFO 2. 10,20,30,40,50을 큐에 넣었다고 가정하고 3개의 항목을 삭제하였다. 남아 있는 항목은? 40, 50 3. 다음 중 큐에 대한 설명 중 맞는 것은? (4) 큐는 원형으로 요소들이 연결되어 있다고 가정할 수 있다. (1) FIFO (2) 양쪽 끝 4. 크기가 8인 원형 큐에서 front가 3이고 rear가 5라고 하면 현재 원형 큐에 저장된 요소들의 개수는? index :  [0]  [1]  [2]  [3]  [4]  [5]  [6]  [7] pointer :                f          r  value :   x    x    x    x    o    o   x     x cf. 원형 큐에서 front는 empty와full을 판별하기 위해 맨 앞 요소의 하나 앞(공백)을 가리킴 5. 다음 중 원형 큐에서 공백 상태에 해당하는 조건은? 또 포화 상태에 해당하는 조건은? 공백 : (3) front == rear // (1)은 공백은 맞는데 1개를 넣고 1개를 빼면 둘 다 1을 가리키면서 공백상태이기 때문에 (1)은 공백상태의 한 종류라 할 수 있음 포화 : (4) front == (rear+1) // 교재 참고 6 . 큐에 항목들을 삽입하고 삭제하는 연산은 시간 복잡도가 어떻게 되는가? (1) O(1) 7. 다음 중 큐가 사용될 수 있는 상황은? (2) 키보드에서 입력된 키스트로크를 잠시 저장할 때 풀이 : 키보드는 먼저 입력한 문자들이 모니터에 먼저 출력되므로 큐의 특성(FIFO)에 들어 맞는다고 할 수 있음. ex) 자료구조 -> ㅈ ㅏ ㄹ ㅛ ㄱ ㅜ ㅈ ㅗ 8. 9. 크기가 10이고 front가 3, rear가 5인 원형 큐에서 새로운 항목이 삽입됐을 경우. front와 rear의 새로운 값은? front는 3, rear는 6 풀이 : befo

C언어로 쉽게 풀어 쓴 자료구조 개정 2판 4장 리스트 연습문제

이미지
1. 리스트에 대한 설명 중 틀린 것은? (4) 리스트는 집합과 동일하다. 풀이 : 집합에는 각 항목 간에 순서의 개념이 없으나 리스트에는 항목들 간에 순서가 있다. 리스트의 예로는, 월~일요일, 가~하, ace~king ... 2. 다음은 순차적 표현과 연결된 표현을 비교한 것이다. 설명이 틀린 것을 모두 표시하여라.  -> 순차적 표현=배열, 연결된 표현=리스트 (1) 연결된 표현은 포인터를 가지고 있어 상대적으로 크기가 작아진다. 풀이 : link field때문에 크기가 더 커짐 (2) 연결된 표현은 삽입이 용이하다. 풀이 : link pointer를 사용하기 때문에 삽입, 삭제가 용이하다. (3) 순차적 표현은 연결된 표현보다 접근 시간이 많이 걸린다. 풀이 : 배열은 리스트보다 접근 시간이 더 빠름 배열은 x[n]으로 공간을 먼저 확보하고 데이터를 접근하므로 '상수시간'이 걸림 리스트는 N번째 원소에 찾아가기 위해 1, 2, 3, 4, ... , N-1, N으로 찾아가기 때문에 시간이 걸림 -> 노드들은 메모리 순서대로 할당되지 않는 경우도 있어 0x0000 -> 0x0008 -> 0x0004 -> 0x0012 이런 식으로 접근 (4) 연결된 표현으로 작성된 리스트를 2개로 분리하기가 쉽다. 풀이 : link pointer만 변경해주면 간편 ref :  https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=65046222&qb=67Cw7Je06rO8IOumrOyKpO2KuCDsoJHqt7zsi5zqsIQ=&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=Un5aVsp0J14ssiIugEwsssssty4-354237&sid=TI5et04RypqvBWHUSpWDDg%3D%3D https://blog.nav

어셈블러 종류(Type of Assembler)

어셈블리(Assembly) : 언어 어셈블러(Assembler) : 컴파일러 어셈블러의 종류가 다양한 이유? 어셈블러마다 지원하는 플랫폼이 다르고 문법에도 차이가 있어서 플랫폼에 따라 종류를 나누게 되면 상당히 많은 어셈블리가 존재. GAS(GNU Assembler) : GNU Project에서 사용되고 만들어짐, GCC(GNU Compiler Collection)안에 기본적으로 사용됨, AT&T문법 사용, 무료 소프트웨어(Free SW), Cross 플랫폼 지원 MASM(Microsoft Macro Assembler) : Microsoft에서 제작, 64bit 지원, Intel문법 사용, 초기에 유료로 제공되었고 별도의 설치가 필요했으나 무료로 바뀌면서 Visual Studio 2008이상 버젼부터는 MASM v9.0이 기본적으로 포함됨, Cross 플랫폼 지원하지 않음 NASM(Netwide Assembler) : 80x86 플랫폼용으로 개발된 어셈블러, 오픈소스(open-source), Cross 플랫폼 지원, Macro(x86플랫폼)제공, O/S개발 시 많이 사용 JWASM FASM YASM 출처: https://rootfriend.tistory.com/entry/%EC%96%B4%EC%85%88%EB%B8%94%EB% 9F%ACAssembler%EC%9D%98-%EC%A2%85%EB%A5%98

부채널 공격(Side-channel Attack)이란?

부채널 공격(Side channel attack) : 알고리즘의 약점을 찾거나 무차별 공격을 하는 대신에 암호 체계의 물리적인 구현 과정의 정보를 기반으로 하는 공격 방법 ex ) IC칩이 내장된 신용카드와 전자여권, 자동차 스마트키 같은 IoT기기에서 사용자 인증을 위한 전자서명 알고리즘이 작동할 때 발생하는 전기 소모량, 전자기 신호량 등을 분석해 전자서명 암호키를 빼내는 해킹기법