전체 글

전체 글

    코딩 컨벤션 맛보기

    항상 말씀을 드리지만, 제가 기록하는 것은 제 위주로 적혀 있어 혼란을 야기할 수 있습니다. 그리고 제 자료를 머리에 저장하기 전, 여러번 구글링을 통해 정확한 자료를 머릿속에 저장하기를 부탁드립니다. 먼저, 코딩 컨벤션이란? 나 이외에 다른 사람들도 내가 작성한 코드를 보고 쉽고 빠르게 이해할 수 있도록 하나의 작성 표준 이 글에서 다룰 코딩 컨벤션은? 함수를 정의할 때, 지켜야 할 몇 가지 스텝을 말해보도록 한다. Step 1. 매개변수 이름을 더 잘 짓도록한다. - 함수의 매개변수 위치에 따라, 입력 매개변수 인지, 결과로 사용하는 매개변수인지 알 수 있도록 네이밍을 하도록한다. Step 2. 읽기전용 매개변수를 상수화 한다. - 결과가 아닌, 입력 매개변수는 읽기전용 지시어(const)를 사용한다..

    Drive-by Compromise

    대부분 영어로 된 자료라, 내 저렴한 영어 실력으로 번역하면 다른 분들에게 민폐끼칠 수 있음을 미리 알려드립니다. Drive-by Compromise는 Mitre Att&ck 에서 Initial Access 단계에서 사용하는 기술 중 하나이다. Drive-by Compromise는 악의적인 사용자가 일반적인 브라우징 과정을 통해 웹 사이트를 방문하는 사용자를 통해 시스템에 액세스하는 방법이다. 익스플로잇 코드를 브라우저에 전달하는 여러 가지 방법이 있다. - 공격자가 정상 웹사이트에 크로스 사이트 스크립팅, javascript와 iFrames 같은 악성 코드를 삽입한다. - 악성 광고를 정상 광고 제공자에게 유료로 지불하고 배포한다. - 나머지 부분은 참고 사이트를 참고하세요. - 어정쩡한 번역과 이해는..

    FltRegisterFilter 함수

    참고 자료 : https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/fltkernel/nf-fltkernel-fltregisterfilter?redirectedfrom=MSDN FltRegisterFilter function (fltkernel.h) - Windows drivers FltRegisterFilter registers a minifilter driver. docs.microsoft.com 함수 기능 : 미니 필터 드라이버를 등록한다 NTSTATUS FLTAPI FltRegisterFilter( PDRIVER_OBJECT Driver, const FLT_REGISTRATION *Registration, PFLT_FILTER *RetFil..

    퀵정렬(Quick sort)

    참고 블로그 : https://gmlwjd9405.github.io/2018/05/10/algorithm-quick-sort.html [알고리즘] 퀵 정렬(quick sort)이란 - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io 퀵 정렬은 분할 정복 알고리즘의 하나로서, 평균적으로 매우 빠른 수행 속도를 가지는 정렬 방법 퀵 정렬 알고리즘 특징 - 합병 정렬(merge sort)과 달리 리스트를 비 균등하게 분할 - 분할 정복 알고리즘 - 문제를 작은 2개의 문제로 분리하고 각각을 해결한 다음, 결과를 모아서 원래의 문제를 해결하는 전략 - 분할 정복 방법은 재귀 함수를 이용하여 구현 퀵정렬 과정 1. 리스트에서 한..

    빌드과정 ( 전처리, 컴파일, 어셈블리, 링킹 )

    빌드과정 ( 전처리, 컴파일, 어셈블리, 링킹 )

    이번에는 기본 중 기본 빌드과정에 알아보려합니다. 빌드과정 진짜 너무너무 쉬워서 무시할 수 있는데, 그래도 컴파일 언어를 쓴다면 다시 되짚어보면 좋은기회라 생각해 글을 올리게되었습니다. 먼저 C++ 기준으로 빌드과정을 설명 및 정리하겠습니다. 빌드과정은 1. Preprocessor (전처리기) - #define 같은 매크로나 지시자를 소스코드로 변경하고, cpp 확장자를 가진 파일이 i 파일이 된다. 2. Parser(문법검사) - 코드 문법을 검사하고, 문법에 따라 코드를 쪼갠다. 3. Translation (번역) - 소스코드를 어셈블리어로 번역하고, i파일이 s파일이 된다. 4. Assembler(번역) - 어셈블리어를 기계어만큼 낮은 수준의 언어로 번역하고, s파일이 o파일이 된다. ------여..