[string] kmp
문자열 패턴 매칭에 사용되는 알고리즘 라빈 - 카프 알고리즘, 보이어-무어 알고리즘, KMP 알고리즘 전략적으로 비교함 라빈-카프 알고리즘 문자열 검색을 위해 해시 값 함수를 이용 패턴 내의 문자들을 일일이 비교하는 대신에 패턴의 해시 값과 본문 안에 있는 하위 문자열의 해시 값만 비교 최악...
문자열 패턴 매칭에 사용되는 알고리즘 라빈 - 카프 알고리즘, 보이어-무어 알고리즘, KMP 알고리즘 전략적으로 비교함 라빈-카프 알고리즘 문자열 검색을 위해 해시 값 함수를 이용 패턴 내의 문자들을 일일이 비교하는 대신에 패턴의 해시 값과 본문 안에 있는 하위 문자열의 해시 값만 비교 최악...
knapsack (배낭 문제) 배낭문제란? n개의 물건과 각 물건 i의 무게 w와 가치 v가 주어지고 배낭의 용량은 W일 때 최대 가치를 찾는 문제 일반적으로 배낭문제는 아래와 같은 재귀적으로 정리된다. Case1 : 최적해는 물건i를 포함하지 않는다. → 이런 경우 이전 최댓값과 동일하다. Case2 : 최저개는 물건i를 포함한...
순열, 조합, 부분 집합 순열 N개의 원소에서 순서를 생각하며 R개의 원소를 선택하는 방법 입력 : [1, 2, 3] 출력 : [1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 2, 1], [3, 1, 2] visited를 활용하여 구현한다. 조합 N개의 원소에서 R개의 원소를 선택하지만, 뽑는 ...
목표 SQL Injection은 2017년 여기어때의 개인정보 99만 유출 사건과 2012년 야후의 비밀번호 유출 사건에서 사용된 위협적인 공격기법 중 하나이다. 그렇기에 본 실습의 목적은 SQL Injection의 공격기법 기본을 실습 사이트를 통해 이해하고 스스로 DB를 활용해 조 자체 웹서버를 구축해 직접적인 SQL Injection 공격을...
실습 목적 Android, IOS 등의 앱개발에 필수적으로 사용되는 무선 네트워크(무선 LAN) 이러한 무선 네트워크는 무선 랜 이상의 편의성을 지니며 무선랜과 큰 차이 없는 성능을 보이며 실생활에 밀접하게 녹아들고 있다. 이러한 무선랜에 보안 취약성은 어떤게 있을까? 최근 뉴스를 보면 무선 랜을 통해 가정집 cctv...
DDOS 툴 사용 DDos 실습을 진행하고 대부분의 실습이 dos로 이루어졌다는 아쉬움 실제 DDos툴이 있다는것을 알게되어서 가볍게 추가 실습을 진행하였다. 1. ufonet 설치 git : https://github.com/epsylon/ufonet 2. 좀비 찾기 서치 엔진을 활용하여 yahoo!의 좀비 pc를...
서비스 거부공격 서비스 거부 공격이란? Dos 공격은 공격 대상이 수용할 수 있는 능력 이상의 정보를 제공하거나 사용자 또는 네트워크 용량을 초과시켜 정상적으로 작동하지 못하게 하는 공격이다. 서버의 TCP 연결을 바닥내는 등의 공격이 이 범위에 포함된다. 분산 서비스 거부 공격(Distributed DoS attack) 또는 디디오에...
이론 정리 Port Scan 운영중 서버에 열려있는 TCP/UDP 포트를 찾는 행위 TCP 스캔 : TCP 스캔은 TCP 처음 연결 시 일어나는 3-웨이 핸드쉐이킹을 탐지하는 기법이다. 만약 핸드쉐이킹이 정상적으로 완료되었다면, 해당 TCP 포트는 정상적으로 열려 있는 것으로 판단할 수 있다. SYN 스캔 : SYN 스캔은 TCP 핸드...
Objectives version control이 무엇이고 왜 사용하는지 파악하기 어떻게 git이 version history를 그래프로 저장하는지 이해 version history를 사용하고 읽고 만드는것을 연습 Introduction Version control 시스템은 소프트웨어 공학에선 필수적인 도구입니다. 대부분의 오...
이번 장의 목표 Test-first programmin의 절차를 알고, 테스팅 값을 이해하는것 메소드의 input과 output에 적절한 테스트를 디자인 하고 좋은 TC를 고르는것 테스트가 코드에 어느 범위 까지 적용 되는것을 이해하는것 블랙박스와 화이트박스 테스트를 이해하고 유닛과 통합 테스트 그리고 자동 회귀 테스트를 이해한다. ...