728x90

컴퓨터 구조의 필요성

-OS, 어플리케이션 등을 알기 위해서 컴퓨터의 구조와 동작 과정에 대해 먼저 학습이 필요함.

- 특히 키 로거를 구현하기 위해서 입출력 장치에 대해서 이해 필요

 

 

컴퓨터 구조

- CPU : 명령어를 해석하여 제어 신호를 주변 장치에 전달

- 메모리 : 데이터 저장

- 주변 장치 : 입력 장치로 키보드와 마우스, 출력 장치로 모니터와 프린터, 기능 확장을 위한 네트워크/그래픽카드

- 버스 : CPU가 메모리, 주변장치 간 데이터 전송을 위한 통로

 

 

CPU

- ALU Arithmetic Lo : 산술 논리연산 수행

- CU Control Unit : 기억장치로부터 받은 명령어를 해석하여 제어 신호를 보내는 유닛

- 레지스터 : 고속 데이터 저장 장소. 해킹시 레지스터 값 변화를 주시해야함 

- 버스 인터페이스

 

 

메모리

- 프로세서가 수행되는 공간으로 메모리 상의 값을 조작 함

- 논리적 메모리 구조 : 힙, 스택, 코드, 데이터

- ROM, RAM이 존재 

 

 

 

운영체제

- SW, HW를 제어하는 프로그램

- 개발자는 OS가 제공하는 API만 알면 됨

- SW 기능 : 프로세스 생성, 소멸, 동기화, 스케출링 수행, 파일 시스템 관리

- HW 기능 : 주변장치와 CPU, 센서 관리

 

 

프로세스

- OS의 제어를 받는 프로그램의 실행 단위 -> PCB Process Control Block으로 표현

 * PCB 자료구조 구성 : PID, Process Status, Counter, Register, 스케줄링 정보 등

- API 후킹, DLL 인잭션을 하기 위해서 프로세스 동작 이해 필요

 

 

프로세스와 메모리, 해킹

- 프로세스는 데이터를 메모리에 적재하여 수행.

- 메모리에 적재되는 데이터 종류 : 주소, 변수, 객체, 반환값

- 해킹과 메모리 : 소스 코드 인젝션, 버퍼 오버플로우 등은 메모리의 데이터를 변경하여 수행

 

 

논리적인 메모리 구조

- 코드 영역 : 실행 파일들을 이루는 명령어들이 적재되는 공간 -> 함수, 제어문, 상수 등

- 데이터 영역 : 전역 변수, 정적 변수, 구조체 등 적재

- 힙 영역 : 프로세스가 임의로 할당하는 공간(동적 할당). ex) malloc 사용하는 경우

- 스택 영역 : 지역 변수, 함수 호출 정보 저장 공간

 

 

 

네트워크 관련 용어

- 식별자 : 컴퓨터를 구분하기 위한 수단으로 MAC, IP

- 프로토콜 : 데이터를 전송하기 위한 규칙으로 주소, 포트번호 등 정보의 모음을 하나의 프로토콜이라 할 수 있음.

- 라우팅 : 데이터를 빠르게 전송할수 있는 경로를 찾는 기능

 

 

 

OSI 7계층

- Open System Interconnection

- 서로 다른 장치/시스템간에 통신을 수행할수 있도록 하는 표준 모델

- 상위에서 하위 층으로 내려갈때 헤더와 테일이 추가됨

7. 응용계층 : 프로그램에 서비스, API 제공(ex. FTP)

6. 표현 계층 : 데이터 표현 방식을 규정(ex. JPEG, ASCII, UTF-8)

5. 세션 계층 : 데이터를 전송하기 위한 프로세스간 가상의 통신 경로

4. 전송 계층 : 시스템간 연결이 확립되면 데이터를 전송하기 위한 정의(ex. TCP, UDP) 

3. 네트워크 계층 : 서로 다른 시스템이 통신하기 위한 최적의 경로 선정(ex. 라우터, IP, ICMP)

2. 데이터 링크 계층 : 논리적인 연결 정의 (ex. 이더넷, HDLC)

1. 물리 계층 : 물리적인 연결을 정의(ex. 리피터, 허브)

 

 

300x250

'컴퓨터과학 > 통신, 보안' 카테고리의 다른 글

해킹 - 5. 후킹  (0) 2020.07.29
해킹 - 4. 윈도우 어플 해킹 개요  (0) 2020.07.29
해킹 - 2. 해킹 종류  (1) 2020.07.28
해킹 - 1. 해킹 개요  (0) 2020.07.28
Iot 보안  (0) 2020.07.25

+ Recent posts