목록분류 전체보기 (427)
안 쓰던 블로그
이중 분류는 2개의 클래스가 있을 때 분류하는 방법이다. 그러면 2개 이상의 클래스가 있으면 어떻게 해야 할까? 클래스가 많은 문제는 다중 분류multiclass classification을 한다. 여기서는 로이터 뉴스를 46개의 상호 배타적인 토픽으로 분류하는 신경망을 예시로 다중 분류를 알아본다. 각 데이터 포인트가 정확히 하나의 범주로 분류되기 때문에 좀 더 정확히 말하면 단일 레이블 다중 분류 문제라고 할 수 있다. 각 데이터 포인트가 여러 개의 범주(예: 토픽)에 속할 수 있다면 다중 레이블 다중 분류 문제가 된다. 로이터 데이터셋 1986년에 로이터에서 공개한 짧은 뉴스 기사와 토픽의 집합인 로이터 데이터셋을 사용하겠다. 이 데이터셋은 텍스트 분류를 위해 널리 사용되는 간단한 데이터셋이다. 4..
인터넷 영화 데이터베이스로부터 생성된 양극단의 리뷰 50,000개로 이루어진 IMDB 데이터셋을 사용하여 이진 분류를 실습해 보겠다. 이 데이터셋은 훈련 데이터 25,000개와 테스트 데이터 25,000개로 나뉘어 있고 각각 50%는 부정, 50%는 긍정 리뷰로 구성되어 있다. MNIST 데이터셋처럼 IMDB 데이터셋도 케라스에 포함되어 있다. 또한 전처리되어 있어 각 리뷰(단어 시퀀스)가 숫자 시퀀스로 되어 있다. 각 숫자는 사전에 있는 고유한 단어를 나타낸다. 케라스 버전 2.4.3와 코랩을 이용하여 실습하였고, 케라스 창시자에게 배우는 딥러닝 책을 참고하였다. 데이터셋 준비 from keras.datasets import imdb (train_data, train_labels), (test_data..
size를 입력 받은 다음 데이터를 입력 받는 문제 소스코드를 보면, get_shell함수가 보이고 main에 buf, size 등이 있다 메모리에는 다음과 같이 들어갈 것이다 생략 .... size buf main's sfp main's ret 전형적인 bof문제같이 보이는데, 한 가지 문제가 있다면 if문에서 너무 큰 사이즈를 넘겨버린다는 점이다 그냥 무작정 256를 넘는 범위를 보내면 if문에서 걸러진다 그러면 어떻게 size를 주어야 if문에 안 걸리고 256이 넘는 데이터를 보낼 수 있을까? 드림핵에 이 강의(dreamhack.io/learn/2/12#11)를 참고하라고 하면서 힌트를 준다 int범위는 -2^31 ~ 2^31-1 의 범위를 갖는다 또한 int같은 변수들은 최대 범위를 넘어가면 다..
AES 암호화 1. 라운드키와 xor한다. (AddRoundKey) 2. 바이트를 치환한다. (SubBytes) 치환표 SBox를 이용한다 3. 행별로 바이트를 옮긴다. (ShiftRows) 첫 행은 움직이지 않고 둘째행은 왼쪽으로 1번, 셋째행은 왼쪽으로 2번, 넷째행은 3번 바이트 단위로 이동하는 왼쪽 순환 쉬프트 과정을 거친다 4. 열 별로 바이트를 섞는다. (4) 이전 라운드에서 나온 값의 각 열에 대해 임의의 행렬과 연산한다 5. 라운키와 xor한다. (AddRoundKey) 암호문과 평문을 XOR한다 6. (라운드 수 - 1) 만큼 2~5를 반복한다. 7. 마지막 라운드는 MixColumns를 제외하고 수행한다. 키 확장 1. 키를 4바이트씩 나누어 4개의 워드로 만든다. 2. 이전 번의 워드..
이분 그래프란? 정점에 색깔을 부여한다고 할 때, 절반씩 그룹으로 나눌 수 있는 그래프. 인접한 정점끼리 색깔이 같으면 안 된다 골4 문제이지만 이제까지 풀어왔던 dfs, bfs처럼 탐색으로 풀 수 있다 1. 탐색하면서 그래프에 색깔(1, 2)을 부여한다. visit를 체크할 때 방문/미방문이 아닌, 미방문/색1/색2 이렇게 세 가지로 주면 된다 위에 그림에서는 문제의 예시로 있는 두 케이스를 그림으로 그린 것이다 O가 색1, X가 색2라고 했을 때, 탐색이 끝나면 각 정점에 대해 O또는 X가 전부 부여된다(미방문이 없을 때까지 탐색) 2. 각 정점에 연결된 정점들을 확인하며 색1의 연속, 색2의 연속인 경우가 있는지 체크한다 각 정점에 연결된 정점들을 이중for문으로 확인하며 OO또는 XX가 나오면 이..
defcon2019.ctfd.io/challenges Defcon DFIR CTF 2019 defcon2019.ctfd.io 데프콘 2019의 메모리 포렌식 문제들을 풀어본다 volatility를 사용할 건데, 주요 플러그인에 대한 설명이 여기와 여기에 잘 정리되어 있다 1. get your volatility on triage.mem의 해시값 정보를 구하는 문제 volatility를 사용하여 이미지부터 확인한다 volatility_2.6_win64_standalone.exe -f "Triage-Memory.mem" imageinfo 1. 이미지는 윈7이나 윈2008 환경으로 구성되어 있다 2. KDBG(프로세스 정보 추적을 위함)의 주소 0xf800029f80a0L 3. 2019-03-22에 제작됨 w..
www.acmicpc.net/problem/2133 dp[n] = 3xn 직사각형 채우는 방법의 수 1. n이 홀수면 채울 수 없다 2. n=2면 3가지 방법이 있다 3. n=4면 3x2만큼은 dp[2]에서 했던 값을 사용, 나머지 3x2에 대한 방법이 또 3가지 있다 dp[2]에서 했던 부분을 왼쪽을 잡든 오른쪽을 잡든 같으니까 같은 수로 친다 dp[2]x3=9만큼의 경우의 수가 나온다 그리고 특수 케이스가 있다 이렇게 엇갈리는 방법 두 가지가 있다 dp[4]=dp[2]*3+dp[0]*2 가 된다. dp[4]=11 3. n=6이면 dp[2]+dp[4] 이렇게 볼 수 있지만 둘은 중복되는 모양이 너무 많다 그래서 일단 dp[2]*dp[4]를 해 놓고, 중복 없이 나머지를 넣어야 한다 dp[2]*dp[4]..