- 컴퓨터 구조


  • Computer & 발전 과정



하드웨어는 컴퓨터의 기계적인 장치, 소프트웨어는 하드웨어의 동작을 제어하고 지시하는 역할을 하는 모든 종류의 프로그램

  1. 중앙처리장치 = CPU(Central Process Unit)

: 연산 장치, 제어 장치, 레지스터 가장 핵심적인 역할 담당

  1. 기억 장치

ROM(Read Only Memory)

전원을 꺼도 데이터가 유지되는 메모리

하드웨어의 상태 정보와 시스템 구동을 위한 프로그램 시스템 유틸리티 등을 저장

RAM(Random Access Memory)

시스템에 전원이 연결되었을 동작하는 메모리

활성 시스템에서 현재 사용되는 프로그램 사용자 데이터 저장

  1. 보조 기억 장치

: /출력 인터페이스를 통해 기억 장치를 보조하기 위해 사용

기억 장치에 비해 상대적으로 가격이 저렴하며 용량은 부작이 쉬워 휴대하기 쉽지만

상대적으로 느리기 때문에 데이터를 보관하기 위해 사용

  1. 입출력 장치

 : 키보드마우스모니터 등이 있으며 사용자가 입력한 내용을 전기적 신호로 바꿔 시스템에 전달하고 

프로그램의 결과를 사용자가 인지할 있는 형태로 변환하는 역할

1세대 : 기계어 어셈블리어 사용, 대표적으로 1964 미국의 머클리와 애거트가 개발한 ENIAC, UNIAC

폰노이만(Von Neumann) 프로그램 내장의 개념 도입.

2세대 : 1974 Bell 연구소에서 개발, 트랜지스터를 통해 기억용량 증대 연산 속도 증가

FORTRAN, ALGOL, COBOL 등의 언어 사용.

3세대 : 시분할 처리를 통해 멀티프로그래밍을 지원하며 캐시 메모리 등장, IBM360 시리즈, 

UNIVAC9000 시리즈, PDP-11 .

4세대 : LSI(고밀도 집적 회로:Large Scale Integrated Circuit) 기본 소자로 개발, 저렴한 가격을

바탕으로 개인 PC 대중화, IBM 4300, 3030 .

5세대 : VLSI(초고밀도 집적 회로:Very Large Scale Integrated Circuit) 기본 소자로 개발.


  • Process

process : 현재 실행 , 실행 가능한 PCB 가진 프로그램으로 실행 프로그램, 비동기적 활동, 

살아있는 프로그램, PCB 가진 프로그램, 언제든 실행 가능한 프로그램

실행 상태 : 현재 프로세서를 할당 받아 수행 중인 프로세스 의미

준비 상태 : 실행 준비가 되어 프로세서가 처리해 주기를 기다리는 상태

블록 상태 : 입출력 종료와 같은 외부 신호를 기다리고 있는 상태

dispatch 준비 상태의 프로세스 높은 우선순위를 가진 프로세스에게 할당하는 상태 변화,

프로세스가 프로세서를 독점하여 사용할 할당 시간 배정

timer runout dispatch 의해 실행 상태로 변한 프로세스가 할당 시간을 모두 사용한 경우 

다시 준비 상태로 변경

block 수행 중인 프로세스가 IO 완료까지 블록 상태

wake up IO완료  신호를 기다리던 블록 상태의 프로세스가 신호를 만나면 준비상태로 변경

  1. 프로세스 제어 블록(PCB) 


 : 프로세스 관련 정보를 포함하는 자료 구조

  OS에게 프로세스 관리를 위한 정보 제공

  프로세스 상태 유지, 관리 이름 우선순위, 메모리 주소, 할당된 자원 목록 포함

  프로세스 생성 PCB 생성되고, 프로세스 파괴 함께 제거



  1. 프로세스 관련 작업

creation, destroy, suspend, resume

  1. 대기와 재동작

  1.  Overflow 예기치 않은 이벤트로 프로세스가 대기 상태가 있으며, 일정 시간 대기 원인이 없어지면 재동장
  2. 인터럽트 처리


Posted by dodssockii :

Memory Forensic

2017. 8. 31. 20:31 from Digital Forensics

memory dump

1. 하드웨어

 - DMA(Direct Memroy Access) 이용해 OS 특성에 상관없이 메모리 덤프

  시스템에 크래시를 일으킬 있어 안정성은 떨어짐

  . PCI 장치

  . FireWire 장치


2. 소프트웨어

 - 대부분 OS API 의존하여 메모리 덤프를 수행하기 때문에 API 악의적으로 조작 메모리 덤프 결과도 조작될 있음

  . DD

  . KntDD(보안전문회사, .정부기관에만 제공)

  . MDD, WIN32(64)DD, Fastdd, FastDum, Pro Discover IR, EnCase Enterprise, AccessData Enterprise ...


3. OS Crash Dump

 - OS 시스템에 일어난 오류문제의 원인을 찾기 위해 생성하는 메모리 덤프

  crash dump 종류

   . 작은 메모리 덤프 : 오류가 발생한 원인을 밝히기 위한 최소한의 정보만 기록, 부트 볼륨 최소한 2MB 이상의 페이지 파일 있어야

   . 커널 메모리 덤프 : 할당되지 않은 메모리 영역과 사용자 모드로 동작중인 프로그램들에 메모리 영역을 제외한 커널 모드와 HAL(Hardware Abstraction Layer) 메모리 영역만을 기록

   . 전체 메모리 덤프 : 메모리 전체 기록

 

4. Hibernation

 - 시스템에 일정 시간이 지나도 아무런 입력이 없을 OS 모든 메모리 데이터를 하드 드라이브에 기록하고 시스템 구동에 필요한 최소전원공급만을 남겨둔 필요없는 전원을 차단하는 기능, 목적은 효율적인 전원 관리 

 

가상메모리 structure

가상메모리 : 물리적인 실체를 가지고 있지 않은 메모리



가상 주소 -> 물리 주소 변환

가상 주소 = 페이지 디렉토리 인덱스(10bit) + 페이지 테이블 인덱스(10bit) + 바이트 주소 인덱스(12bit) = 32bit

  1. 페이지 디렉터리의 주소를 저장하고 있는 특별한 레지스터 CR3 레지스터로 부터 값을 읽어와 현재 프로세스의 페이지 디렉터리를 찾음
  2. 가상 주소의 페이지 디렉터리의 인덱스로 페이지 디렉터리 엔트리를 찾고, 페이지 디렉터리 엔트리에 저장된 페이지 테이블에 주소를 읽고 해당 주소에 있는 페이지 테이블로 이동
  3. 가상 주소에 존재하는 페이지 테이블 인덱스 값으로 해당 페이지 테이블에서 해당하는 인덱스 찾아 읽음
  4. 페이지 테이블 엔트리에는 물리적 주소의 페이지 프레임 주소가 있음
  5. 페이지 프레임 주소로 이동
  6. 가상 주소의 마지막 부분에 있는 바이트 인덱스를 이용해서 실제 찾고자 하는 물리적 메모리의 주소로 이동하고 필요한 만큼 데이터를 읽음


 프로세스마다 페이지 디렉터리를 가지고 있으며 이것의 물리적 주소는 KPROCESS 구조 안에 저장되어 있다가 Context Switching 발생하면 CR3 레지스터로 복사됨 (cf. context switching : 하나의 프로세스가 CPU 사용 중인 상태에서 다른 프로세스가 CPU 사용하도록 하기 위해, 이전의 프로세스의 상태를 보관하고 새로운 프로세스의 상태를 적재하는 작업)


프로세스 


대표적인 프로세스에 관한 정보는 정리하지 않음


ActiveProcessLink

 : 환형 이중 링크드 리스트로 이루어져 있으며, 항목을 통해 프로세스의 목록을 얻을 있음

환형 이중 링크드 리스트는 이중 링크드 리스트에 PsActiveProcessLink라는 커널 전역변수를 추가해 순환구조를 만들어



프로세스 생성 과정

  1. 실행 파일 실행
  2. 서브시스템(POSIX, MS-DOS, Win32 ) 확인
  3. EPROCESS, KPROCESS, PEB, 초기 주소 공간 설정
  4. 기본 스레드 생성
  5. 윈도우 하위 시스템에 새로 생성된 프로세스와 스레드 알림
  6. 기본 스레드에 의해 프로세스 환경 설정과 스레드 자원 할당
  7. 새로운 프로세스와 스레드의 context 내부 주소 공간 초기화 완료


커널 오브젝트 검색 방법

리스트 워킹

 : EPROCESS 프로세스 이름을 이용한 프로세스 탐색 기법

 KPCR(Kernel Processor Control Region) 이용한 프로세스 탐색 기법

 DKOM 같은 프로세스 은닉 기법 탐지 불가능

패턴매칭

 : 프로세스 구조체의 패턴을 이용해 메모리 영역 전체 검색

 은닉 프로세스라도 동일한 프로세스 구조체를 가짐



메모리 분석 도구

 - Volatility

 - Readline


'Digital Forensics' 카테고리의 다른 글

Digital Forensics  (0) 2017.02.20
PE(Portable Executive)  (0) 2017.02.20
Registry  (0) 2017.02.07
Posted by dodssockii :

Digital Forensics

2017. 2. 20. 15:44 from Digital Forensics

Forensic

 디지털 기기를 매체로 하여 발생한 특정 행위의 사실 관계를 법정에서 규명하고 증명하기 위한 절차와 방법


Chain of custody

 : 


르카르트 법칙

 : 



'Digital Forensics' 카테고리의 다른 글

Memory Forensic  (0) 2017.08.31
PE(Portable Executive)  (0) 2017.02.20
Registry  (0) 2017.02.07
Posted by dodssockii :