이메일을 적으시면 보안관련 소식을 받을수 있습니다.
이메일:

안녕하세요. 최만균 입니다.
본격적인 리버싱을 하기 전에 기초부터 튼튼히 하기 위해서 윈도우의 기초부터 시작합니다.


1. 가상 메모리

가상 메모리는 운영체제의 기본적인 메모리 관리 기법으로서 소프트웨어가 물리 메모리에 직접 접근해서 사용하는
대신에 프로세서가 운영체제와 조합해서 소프트웨어와 물리 메모리 사이에 가상의 계층을 만드는 것 입니다.


virtual memory is a memory management technique developed for multitasking kernels. This technique virtualizes a computer architecture's various forms of computer data storage (such as random-access memory and disk storage), allowing a program to be designed as though there is only one kind of memory, "virtual" memory, which behaves like directly addressable read/write memory (RAM). 
source : http://en.wikipedia.org/wiki/Virtual_memory 



프로세서는 모든 메모리 접근에 대해서 페이지 테이블이라는 테이블을 참고하고, 프로세스에게 어떤 물리 메모리를
실제로 사용해야 하는지 알려줍니다.

또한, 물리 메모리는 페이지라는 단위로 관리되는데 페이지는 고정된 크기의 메모리 블록 입니다.
일반적인 IA-32 프로세서 기준으로 페이지의 크기는 4K를 사용 합니다.

페이지 테이블의 각 엔트리는 하나의 물리 메모리 페이지에 대응되는데, 즉 프로세스 메모리와 물리 메모리를 매핑
시켜주는 것이 페이지 테이블 입니다.

페이지 테이블의 장점은, 프로그램들을 완벽하게 독립적으로 격리시키고, 각 프로세스는 자신이 실행되기 위한
자신만의 작은 샌드박스를 가질 수 있습니다.


http://www.hanb.co.kr/network/view.html?bi_id=1326





2. 페이징(Paging)

페이징은 물리 메모리에서 사용되지 않고 있는 메모리 영역이 하드 드라이브에 일시적으로 저장되는 과정을 말합니다.
물리 메모리는 빠르고 비싸기 때문에 오랫동안 사용하지 않는 영역은 하드 드라이브로 저장시키고 계속해서 메모리
사용을 요청하는 프로세스들에게 메모리를 할당하기 위해 사용하는 기법 입니다.

일반적으로 우리가 이미 알고 있는 하드디스크 스왑핑의 개념으로서 컴퓨터가 갖고 있는 실제 메모리보다 많은
공간을 메모리로 사용할 수 있는 이론적인 기초가 됩니다.(물론 페이징이 많아지면 속도가 느려지겠죠)

추가로, 이미 페이징된 페이지(즉, 물리 메모리에서 하드디스크로 옮겨진 페이지)에 접근이 발생하면 프로세서는
페이지 폴트(Page fault)를 발생시키며, 운영체제는 페이징 파일(페이징된 메모리 내용이 존재하는 파일)에서
해당 페이지 내용을 읽어 메모리에 적재 시킵니다.
(이 때도 물리 메모리 공간이 부족하면 오랫동안 사용되지 않았던 영역을 페이징 시킵니다)


http://en.wikipedia.org/wiki/Virtual_memory





마지막으로 가상 메모리와 물리 메모리와의 관계를 그리면 위와 같습니다. 중간에 페이지 테이블이 빠져 있긴 하지만,
이해하시는데 큰 문제는 없으리라 봅니다.



※ 참고

리버싱:리버스엔지니어링비밀을파헤치다
카테고리 컴퓨터/IT > 네트워크/보안
지은이 엘다드 에일람 (에이콘출판, 2009년)
상세보기


http://www.hanb.co.kr/network/view.html?bi_id=1326
http://www.simpleisbest.net/post/2011/05/02/Virtual-Memory-vs-Physical-Memory.aspx
http://rein.kr/blog/archives/560
http://blog.naver.com/PostView.nhn?blogId=gunner98&logNo=110017337792
http://en.wikipedia.org/wiki/Virtual_memory
****************************************************************************************************

본 포스팅의 저작권은 보안인닷컴과 작성자에 있으며 상업적 이용을 배제하며 콘텐츠 이용시에는 반드시 출처와 링크를 이용해 주시기 바랍니다. 무단도용은 저작권법에 저촉을 받습니다..

****************************************************************************************************

Posted by 비회원

댓글을 달아 주세요