-
- An In-Depth Look into the Win32 Portable Executable File Format - Matt Pietrek
-
프로그램, 프로세스, 스레드
- 메시지 Q는 스레드당 하나이다. 스레드가 생성한 윈도우 창은 스레드와 운명을 같이 한다.
- I/O 는 제외.. 프로세스가 관리한다.
-
가상메모리
-
RAM의 물리메모리가 512MB라면 HDD에 가상메모리(pagefile.sys)를 1~2배정도 설정한다.
-
-
잘못된 메모리 참조
- 3.1(OS) 시절 일때는 메모리를 잘못 참조 하면 OS가 죽었다. Ex)*0x2100 = 20; 사망!!
- 하지만 페이지 Table < 실제주소:1000 와 가상주소:5000>을 갖게 되면서 안전해졌다.(?)
- 페이지 Table은 프로세스마다 하나씩 있으며 가상주소내에서 프로세스가 실행된다.
-
다른 프로그램의 주소를 침법하지 않는다는 보장이 생겼다.
-
페이지 Table
- A.exe 내의 improt(dll)을 메모리로 올린다. 이 dll은 자기를 불러낸 PageTable에서 관리하는데 이를 모듈이라 하며 가상 주소를 갖게 된다. 이 가상주소를 '모듈의 번호' Handle로 사용할 수 있게 된다.
- 여기서 알수 있는 사실은 HINSTANCE는 실행 파일의 주소 0x0040,000 를 갖게 된다는 것이다.
- LoadIcon( hwnd, ID ); 여기서 핸들은 가상메모리에 로드된 핸들의 가상주소를 의미하게 된다.
Tag | API