School
Data Structure - Sorting ( Quick Sort )
Quick Sort quick sort는 불안전 정렬 알고리즘의 하나로, 평균적으로 매우 빠른 수행 속도를 자랑하는 비교 정렬에 속합니다. 분할 정복 알고리즘의 하나로, 평균적으로 매우 빠른 속도를 자랑하는 정렬 방법입니다. 합병 정렬(merge sort)와 달리 퀵 정렬은 리스트를 비균등하게 분할합니다. 분할 정복(divide and conquer)방법 문제를 작은 2개의 문제로 분리하고 각각을 해결한 다음, 결과를 모아서 원래의 문제를 해결하는 전략입니다. 분할 정복 방법은 대개 순환 호출을 이용해서 구현합니다. 과정 설명 리스트 안에 있는 한 요소를 선택합니다. 이렇게 고른 원소를 피벗(pivot)이라고 합니다. 피벗을 기준으로 피벗보다 작은 요소들은 모두 피벗의 왼쪽으로 옮겨지고 피벗보다 큰 요소..
Data Structure - Sorting ( Insertion Sort )
sequential Search sequential search는 리스트 레코드를 left-to-right order로 비교하면서 하나의 값을 찾는 것입니다. /sequentialSort.c #include #include int seqSearch(int a[], int k, int n) { int i; for (i = 1; i = n) return -1; return i; } int main(void) { int sortArr[100] = {0}; int count = 0; FILE *fp_read = fopen("sort.txt", "r"); while ((fscanf(fp_read, "%d", sortArr + count) != EOF)) {..
[ Reverse Engineering ] - ABOUT
리버스 엔지니어링이란 엔지니어링이란 완성품과 이를 구성하는 부품들의 기능과 설계를 고안하고 제작하는 과정을 말합니다. 이와 대비되는 리버스 엔지니어링(Reverse Engineering)은 용어의 '리버스'가 의미하듯, 위 과정을 거꾸로 하는 행위를 말합니다. 완성된 제품을 해체하고 분석하여 구조와 기능, 디자인을 파악합니다. 책에 따라 이를 '역공학'이라고 지칭하기도 합니다. 이를 '리버스 엔지니어링' 또는 '리버싱'이라고도 합니다. 리버싱에도 여러 분야가 있습니다. 야의 성분을 분석하는 것, 자동차의 주행 원리를 이해하는 것, 전자 제품의 회로를 분석하는 것 등에는 각각 생명공학, 기계공학, 전자 공학에 대한 리버싱 기술이 적용됩니다. 이 외데도 대부분의 공학 분야에서는 그에 대응되는 리버싱 기술이 ..
[ Web Hacking ] - CSRF
CSRF CSRF는 임의 이용자의 권한으로 임의 주소에 HTTP요청을 보낼 수 있는 취약점입니다. 공격자는 임의 이용자의 권한으로 서비스 기능을 사용해 이득을 취할 수 있습니다. CSRF공격에 성공하기 위해서는 공격자가 작성한 악성 스크립트를 이용자가 실행해야 합니다. 이는 공격자가 이용자에게 메일을 보내거나, 게시판에 글을 작성해 이용자가 이를 조회하도록 유도하는 방법이 있습니다. 여기서 말하는 악성 스크립트는 HTTP요청을 보내는 코드로, 아래에서 요청을 보내는 스크립트를 작성하는 방법에 대해 알아보도록 하겠습니다. CSRF공격 스크립트는 HTML또는 JavaScript를 통해 작성할 수 있습니다. 위 Figure5는 HTML으로 작성된 스크립트입니다. 이미지를 불러오는 img태그를 사용하거나 웹 페..