9.12(수) 이론

from Study/API 2007/10/10 11:00 view 19387
  1. PE 구조 - -_-....아.
    1. An In-Depth Look into the Win32 Portable Executable File Format - Matt Pietrek

  2. 프로그램, 프로세스, 스레드
    1. 메시지 Q는 스레드당 하나이다. 스레드가 생성한 윈도우 창은 스레드와 운명을 같이 한다.
    2. I/O 는 제외.. 프로세스가 관리한다.

  3. 가상메모리
    1. RAM의 물리메모리가 512MB라면 HDD에 가상메모리(pagefile.sys)를 1~2배정도 설정한다.

  4. 잘못된 메모리 참조
    1. 3.1(OS) 시절 일때는 메모리를 잘못 참조 하면 OS가 죽었다. Ex)*0x2100 = 20; 사망!!
    2. 하지만 페이지 Table < 실제주소:1000 와 가상주소:5000>을 갖게 되면서 안전해졌다.(?)
    3. 페이지 Table은 프로세스마다 하나씩 있으며 가상주소내에서 프로세스가 실행된다.
    4. 다른 프로그램의 주소를 침법하지 않는다는 보장이 생겼다.

  5. 페이지 Table







    1. A.exe 내의 improt(dll)을 메모리로 올린다. 이 dll은 자기를 불러낸 PageTable에서 관리하는데 이를 모듈이라 하며 가상 주소를 갖게 된다. 이 가상주소를 '모듈의 번호' Handle로 사용할 수 있게 된다.
    2. 여기서 알수 있는 사실은 HINSTANCE는 실행 파일의 주소 0x0040,000 를 갖게 된다는 것이다.
    3. LoadIcon( hwnd, ID ); 여기서 핸들은 가상메모리에 로드된 핸들의 가상주소를 의미하게 된다.
Tag |

Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다