2009. 5. 19. 15:17

[프로그래밍 일반] PE구조란?

 PE(Portable Excutable)란 1993년 Microsoft사에서 표준화한 형식으로 이식성이 좋은(Portable) 실행구조(Excutable)를 의미하며 32bit 혹은 64bit의 Window OS에서 사용되는 실행 File, Object code, DLL등이 이러한 구조를 갖는다.

 PE는 API Export, Import table, data를 관리하기 위한 Resource, TLS(Thread Local Storage)들이 포함된 구조체로 이루어져 있다.

 그림에서 SESSION 영역을 보면 여러 영역들이 있는데 이중 전역변수는 .data영역에 위치하며 output 함수처럼 사용자가 만든 함수들은 .text영역에 들어간다 그리고 지역변수는 TLS에 들어가게 된다. 이처럼 PE구조에는 실행file에서 필요한 모든 정보들이 들어가 있다.