일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 재귀
- SWiFT
- 백준
- 미로 탐색 알고리즘
- c언어
- pwnable.kr
- Stack
- Java
- 큐
- ftz level13
- PHP
- 자료구조
- level13
- LoB
- 스택
- 두근두근 자료구조
- 파이썬
- 파일 시스템
- 시간복잡도
- windosws wbcs
- C
- HTML
- 정렬 알고리즘
- ftz
- web
- System
- War Game
- 암호수학
- windosw 문자열
- OSI
- Today
- Total
목록모두 보기 (257)
나의 기록, 현진록
SBCS 기반 문자열 함수 WBCS 기반 문자열 함수 strlen wcslen strcpy wcscpy strncpy wcsncpy strcat wcscat strncat wcsncat strcmp wcscmp strncmp wcsncmp
CPU(Central Process Unit)중앙처리장치컴퓨터 프로그램의 실행에 있어서 핵심적인 역할을 담당한다. ALU(Arithmetic Logic Unit)CPU 내부에서 실제 프로그램이 실행되는 연산을 담당산술 연산(덧셈, 뺄셈)과 논리연산(AND, OR) 이 두 가지 형태로 이루어짐 Control UnitCPU가 처리해야 할 명령어를 해석하고 그에 맞는 신호를 발생ex) 이 명령어는 덧셈을 수행하라는 명령어->ALU에게 덧셈을 수행하도록 신호를 보냄 RegisterCPU 내부의 아주 작은 메모리 공간Binary data16비트, 32비트, 64비트 정도의 데이터를 저장 Bus Interface컴퓨터 하드웨어 요소들 간의 데이터를 서로 주고 받을 수 있는 매개체, 통로그러나 이러한 통로(I/O B..
시스템 프로그래밍이란?컴퓨터 시스템을 동작시키는 프로그램 -> 운영체제 운영체제는 하드웨어를 모르는 사람들이 컴퓨터를 쉽게 사용할 수 있도록 도와주는 소프트웨어이다.그렇기 때문에 운영체제는 시스템 프로그램의 범주에 속한다. 운영체제 개발자를 시스템 프로그래머라고 부를 수 있다.C, 어셈블리 언어를 사용하여 하드웨어를 직접 제어하는 것은 물논, Windows 또는 UNIX에서 제공하는 라이브러리를 활용하여 개발하는 것도 시스템 프로그래머. Windows 라이브러리 활용 - Windows 시스템 프로그래머UNIX 라이브러리 활용 - UNIX 시스템 프로그래머 ex) Windows 시스템 프로그래밍 : Windows 기반의 컴퓨터에게 일을 시키기 위한 프로그램을 구현하는 것 방법MSDN 제공 함수의 기능을 파..
32비트 윈도우 운영체제에서 기본적으로 4GB 메모리를 사용한다. 프로그램을 실행시키려면 메모리에 적재를 해야한다. 이 때 만약 실행시키고 싶은 프로그램이 5GB이면 메모리가 공간이 부족하여 실행시킬 수 없을 것이다. 이러한 문제점을 가상 메모리라는 개념을 사용하는데, 이는 Windows 메모리 관리 기법 중 하나이다. Windows 32비트 운영체제에서 모든 프로세스는 각각 4GB의 크기의 가상 메모리를 할당 받는다. 구조는 다음과 같다. 이처럼 4GB의 가상 메모리를 할당 받은 프로세스는 가상 주소(논리 주소)를 가진다. 이 주소는 물리 주소(RAM)이 아닌 하드디스크 내부 페이지 파일에 위치한다. 가상메모리라는 메모리 관리 기법을 사용하면 RAM에는 가상 메모리에서 당장 필요한 부분만 적재되고, 적..
메모리 포렌식메모리 포렌식은 디지털 포렌식에서의 사고 대응(Incident Response) 방안 중에 하나로 가장 먼저 휘발성의 특징을 가지고 있는 메모리에 대해서 정보를 수집하는 것이다. 메모리 포렌식의 필요성메모리 포렌식은 최근 주목을 받고, 그에 따른 연구가 활발하게 이루어지고 있다. 그 이유는 어떠한 프로그램이 실행될 때 CPU에 의해서 수행되고, CPU는 메모리인 RAM에 데이터가 적재되어야만 CPU에서 연산이 가능하기 때문이다. 이러한 컴퓨터 시스템의 특성으로 인해 메모리에는 파일이 실행되는 과정이나 실행되었던 특유의 정보가 존재한다. Live Response(Live Data)와 차이점 Live Response(Live Data) Memory API에 의존하여 영향을 받기 쉽다. API에 ..
디지털 포렌식 forensic(법의학적인, 범죄 과학 수사의...)은 범죄를 밝혀내기 위한 과학적 수단이나 방법, 기술 등을 포괄하는 개념이다. 디지털 포렌식은 컴퓨터 법의학이라고도 표현할 수 있으며, 전자적 증거물을 사법기관에 제출하기 위해 데이터를 수집, 분석, 보고서를 작성하는 일련의 작업을 말한다. 사이버 범죄 추적 및 조사에도 핵심적인 요소가 되고 있다. 주로 침해사고 대응과 분석에 이용한다. 다양한 포렌식 기법1. 메모리 포렌식 휘발성이 강하지만 고유의 독특한 정보가 많이 존재하는 RAM에 남아 있는 악성코드 감염과 관련된 다양한 흔적(파일 실행, 네트워크 접속 및 프로세스 정보 등)을 분석하는 기법이다. 2. 레지스트리 포렌식 일반적으로 대부분의 악성코드는 감염된 시스템이 재부팅을 하거나 시..
메모리란? PC를 구성하는 핵심 부품 중 하나로 기억장치라고 한다. 이는 CPU(중앙처리장치)와 매우 관련이 깊다. CPU가 처리해야할 데이터를 읽거나, 처리한 결과를 저장하는 것이 메모리의 역할이기 때문이다. 메모리의 종류는 여러가지이고, CPU와 가까울수록 메모리의 동작 속도가 빠르다. 순서는 다음과 같다. 레지스터-캐시메모리-주기억장치(RAM)-보조기억장치(HDD) 일반적으로 동작속도가 빠를수록 용량이 작다. 레지스터 메모리 중 동작 속도가 가장 빠르고 CPU 내부에 위치한다. CPU가 가장 빠른 속도로 접근 가능한 메모리이다. RAM에서 레지스터로 데이터를 읽어 데이터를 처리한 후 결과를 다시 RAM에 저장한다.(정확하게는 SRAM을 이용한다.) 캐시 메모리(Cache Memory, SRAM) 레..
정적 분석파일의 겉모습을 관찰하여 분석파일을 실행하지 않는다.파일의 종류(EXE, DLL, DOC, ZIP 등), 크기, 헤더(PE) 정보, Import/Export API, 내부 문자열, 실행 압축 여부, 등록 정보, 디버깅 정보, 디지털 인증서 등의 다양한 내용을 확인하는 것디스어셈블러를 이용해서 내부 코드와 그 구조를 확인정적 분석으로 얻어진 정보는 동적 분석에 좋은 자료가 됨 동적 분석파일을 직접 실행시켜 그 행위를 분석디버깅을 통해 코드 흐름과 메모리 상태 등을 자세히 살펴봄레지스트리, 네트워크 등을 관찰하면서 프로그램의 행위를 분석디버거를 이용해 프로그램 내부 구조와 동작 원리를 분석할 수 있음
OAuth의 활용 요즈음 다양한 웹 사이트에서는 현재의 웹 사이트에서 사용자에 대한 인증을 요구할 때, 외부 서버에서 이미 인증되어 있는 정보를 전달받아 현재 웹 서버에 인증을 하는 방식을 지원하고 있다. 이 때 사용되는 프로토콜이 OAuth프로토콜이며, 이러한 방식은 사용자에게 웹 사이트마다 인증을 해야 하는 불편한 작업을 줄여 보다 편리한 웹 서비스를 제공한다. 이처럼 OAuth 프로토콜은 클라이언트 웹 서비스에게 리소스 서버의 계정 정보를 공유하지 않고, 리소스 서버의 사용자 자원에 접근할 수 있도록 접근 권한을 인가할 수 있게 하는 표준이며, 서버가 클라이언트를 인증하기 위한 외부 서비스 API에 안전하게 접근하기 위한 OAuth 프로토콜은 IETF(Internet Engineering Task ..