Portable Executable 2

PE File Format - 2

저번에 이어 PE파일 포맷에 대해 알아보겠습니당 이번에는 섹션 헤더들에 대해 알아볼 것임. 저번에 썼던 그림 재활용 한번 하겠습니다.. PE파일 포맷에서는 데이터들을 data, code, rdata 등의 "섹션"을 나누어 따로 저장한다고 했었다. (섹션명 변경가능) 이렇게 섹션을 나누어 저장하는 이유는 효율적인 관리, 프로그램의 안정성 때문이다. (진짜 이유는 만든 사람이 알겠지..) 각각의 섹션들은 각자 자신의 헤더를 가지고 있다. 그것이 섹션헤더. 한번 알아봅시다. * IMAGE_SECTION_HEADER 각 섹션들의 섹션 헤더에 무엇이 들어있는지 확인해보자. 구조는 모든 섹션헤더가 똑같이 생겨 먹었다. 위와 같은 여러가지 필드들을 품고 있다. 헥사코드를 보고 실제로 어떤식으로 구성되어 있는지 한번 ..

PE File Format - 1

PE(Portable Executable) 파일 포맷에 대해 알아보자. 이전에 포스팅했던 리눅스 시스템의 ELF 파일 포맷과 일맥상통하는 윈도우 시스템의 파일 포맷이다. 리버스 엔지니어링에는 PE파일 포맷 공부가 필수적이라 말할 수 있음. Unix 운영체제의 COFF file format 에서 나온 변종이라고 할 수 있다. PE 파일 포맷에 대해 완벽하게 파고드려면 한도 끝도 없으니 리버싱에 꼭! 필요한 부분을 집중적으로 설명하도록 하겠음. 먼저 PE 파일 포맷의 레이아웃부터 살펴보자. 그림 1은 PE파일 포맷의 기본 레이아웃과 PE View 라는 툴로 임의의 exe파일을 열어 네비게이터를 캡쳐한 화면이다. PE 포맷의 프로그램이 파일자체로 어떤 구조를 가지고 있는지 알 수 있다. PE는 이 파일자체로의..

반응형