메모리 덤프 생성과 분석 기초
윈도우에서 메모리 덤프 분석은 난이도가 높고 넓어서, 하지만 운영 중 발생하는 문제점들을 해결하는 것 역시 관리의 중요 이슈이기에, 여기서 다루어야 한다고 판단하였다. 아마 문제 해결을 원활히 하기 위해서는 커널 분석뿐만 아니라 시스템 영역을 전반적으로 이해하고, Windbg가 숙달되었을 때, 원활한 분석을 진행할 수 있을 것이다. 여기에서 설명하는 정도로
MBR에서 로그온까지
윈도우 구조를 이해하는 것은 연구자가 되는 것과 같다. 농작물을 연구하는 사람들은 그 농작물의 특성과 속성을 알기 위해 세포 하나 하나를 분석한다. 그리고 이를 통해 작물이 잘 죽지 않도록, 혹은 더 많은 열매가 맺을 수 있도록 작물을 개선하게 된다. 두번째는 바로 탐험가와 같다고 할 수 있다. 미지를 탐험하는 사람들은 굉장한 보물, 혹은 남들이 알지 못했
[Window] 윈도우 메모리 구조
프로세스의 가상 주소 공간 모든 프로세스는 자신만의 가상 주소공간을 가지는데 32비트 프로세스는 32비트 사이즈의 주소공간을 가지고 64비트 프로세스는 64비트 사이즈의 주소공간을 가집니다. 프로세스의 주소크기 가상 주소 범위 32비트 0x00000000 ~ 0xFFFFFFFF (4GByte) 64비트 0x00000000'00000000 ~ 0xFFFFFF
[window] 프로세스의 힙 메모리
힙 메모리 힙은 크기가 작은 데이터 블록을 할당 하는데 매우 유용한 방법으로 가상 메모리와 달리 할당 단위나 페이지 경계와 같은 특성을 고려할 필요 없이 메모리 할당 할 수 있습니다. 대신에 힙 매니져에 의해서 메모리 할당이 진행되기 때문에 물리적 저장소를 커밋하거나 디커밋하는 직접적인 제어권을 제어 할 수 없고 수행 속도가 느립니다. 만약에 사용자가 메모
커널 디버깅 중 USER-MODE 프로세스에 디버거 붙이기
커널 디버깅 중 USER-MODE 프로세스에 디버거 붙이기 Windbg로 윈도우 커널 디버깅 중에 유저모드 프로세스를 디버깅하는 방법이 몇 가지 있는데, 일단 이 글에서는 다음과 같은 네 가지의 방법을 정리해볼까 한다. 실행 중인 프로세스에 붙기 (EPROCESS) 프로세스 실행하면서 붙기 (ntsd.exe) 프로세스 로드하면서 붙기 (sxe ld) 프로세
[운영체제란?] 커널의 개념, 이중 모드와 시스템 호출
운영체제는 사용자를 위한 프로그램이 아닌 사용자가 실행하는 프로그램을 위한 프로그램입니다. 즉, 사용자가 실행하는 응용 프로그램이 올바르게 실행되도록 돕고 필요한 자원을 할당해 주는 프로그램입니다. 운영체제에서 매우 중요한 개념인 커널에 대해 알아보고,
BSD에 대한 설명
오픈 소스의 세계에서, "리눅스"라는 단어는 "운영체제"라는 단어와 거의 동의어입니다. 하지만 리눅스만이 유일한 오픈 소스 UNIX® 운영체제인 것은 아닙니다. Internet Operating System Counter에 따르면, 1999년 4월을 기준으로 네트워크에 연결된 전세계의 컴퓨터들 중 31.3%가 리눅스를 구동시켰습니다. 14.6%는 BSD U
[Window c++] 커널 오브젝트
위 그림은 WINDOW에서 운영되고 있는 프로세스 및 Kernel의 일반적인 모습을 표현합니다. 검은 점선의 윗 부분을 보통 USER 모드라고 검은 점선의 아랫 부분을 KERNEL 모드라고 말합니다. 커널(Kernel) 오브젝트란? 일반적으로 윈도우 어플리케이션 개발자는 윈도우가 제공한 API로 커널 오브젝트를 생성 및 조작해서 어플리케이션을 구현합니다.
[Windows] 윈도우 구조 공부
오늘은 윈도우 구조에 대해 공부해보고자 한다. 기존에 간단하게 짚고 넘어간 부분을 세세하게 다뤄보고자 한다. 1. 운영체제란? 운영체제(Operating System)란 하드웨어를 관리, 응용 소프트웨어를 효율적으로 실행/사용할 수 있도록 만든 시스템 소프트웨어이다. 사용자와 하드웨어 간의 인터페이스로 동작하며, 컴퓨터 자원들을 효율적으로 사용할 수 있도록
18
[ OS 기초 ] by 뚜바뚜바
컴퓨터에 저장되어있는 영화를 볼 때 우리는 원하는 영화 파일을 마우스로 클릭하고 기다리면 화면에 비디오 플레이어가 뜨며 영상을 볼 수 있게 된다. 이 클릭을 통해 전달된 어떤 정보가 컴퓨터 내부에서 어떤 과정을 거쳐, 컴퓨터 어딘가에 저장되어있던 영화를 불러와 내가 보는 모니터에 띄워주는 과정을 거친 것이다. 컴퓨터에 대해 잘 몰라도 컴퓨터 안에 여러 물리
[linux] 간단한 쉘 스크립트 (Shell Script) 작성 및 실행 해보기.
쉘 스크립트 (Shell Script) shell을 사용해서 프로그래밍을 할 수 있다. 주로 리눅스 등 서버작업의 프로그래밍 시 사용되며 생각보다 자주 사용된다. 쉘 스크립트는 파일안에 스크립트 작성 후, 실행 시 해당 스크립트가 실행되는 방식으로 이루어진다. 파일의 가장 위 첫라인은 #!/bin/bash 로 시작된다. * 이때 #는 주석을 의미하는 것이
[운영체제] 운영체제 과목 개념 정리
- 운영체제란? 편리하고 효율적으로 하드웨어를 사용자가 이용할 수 있도록 시스템의 운영을 돕는 역할을 한다.
- 컴퓨터 시스템 = 사용자 + 소프트웨어 + 하드웨어
- 운영체제의 기능
1. 자원의 효율적 운영을 위한 스케쥴링
2. 사용자와 컴퓨터간 시스템 인터페이스
3. 각종 자원의 제어, 관리, 할당
4. 오류 검사 및 ...
유닉스와 리눅스 탄생
리눅스가 인기 있는 이유 누구나 소스코드를 볼 수 있다. 리눅스는 크게 리눅스 커널과 리눅스 유틸리티 2가지로 구성되어 있는데 대부분 코드가 공개되어 있다. 누구나 참여할 수 있는 개방적인 오픈소스 프로젝트이다. 리눅스 소스코드를 분석하다가 버그나 논리적인 오류를 발견하면 누구나 리눅스 오픈소스 프로젝트에 반영할 수 있고, 가독성이 떨어지는 코드를 리팩터링