2012-03-01 1 views
0

어떤 문맥에서는 code section, data section이라는 용어가 적용됩니까? 그것은 Win32 프로세스의 일부입니까 아니면 Windows 휴대용 EXE의 일부입니까? C에서 함수 포인터는 코드 섹션의 주소를 참조합니까?코드 섹션이란 무엇입니까?

답변

1

Wikipedia article on the Portable Executable (Window .EXE) format을 읽어야합니다. 특히 레이아웃 섹션.

+0

그래서 EXE 파일의 일부이며가 맵핑 메모리 프로세스. 그 맞습니까? – Nemo

+0

일반적으로 그렇습니다. 함수 포인터에 대한 질문에 대답하기 위해'.text' 섹션에 대한 간접 포인터 ("코드 섹션"이라고 불렀습니다)가있을 수 있습니다. 직접 주소는 아니지만 아마 직접 주소로 해석됩니다. . – mpontillo

2

이식 가능한 실행 형식 사양의 일부입니다. 그러나 대부분의 파일 형식에도 섹션 추상화가 있습니다. 사실 이러한 이유로 BFD와 같은 라이브러리에서 이러한 일반적인 추상화를 볼 수 있습니다.

각 섹션에는 어떤 종류의 액세스 권한이 있는지 설명하는 특정 플래그가있을 수 있습니다. 일반적으로 데이터 섹션은 읽기/쓰기가 가능하지만 실행 액세스가 불가능한 반면 코드 섹션은 읽기/실행은 할 수 있지만 쓰기 액세스는 할 수 없습니다. 코드 섹션에는 .text과 같은 섹션에 대한 공통 이름이 있지만이 섹션의 이름을 이와 같이 지정해야한다는 내용은 없습니다. 사실 공격적인 실행 가능한 패커 중 일부는 섹션 이름을 제거합니다.

섹션

는 페이지 보호 설정, 컴파일 시간에 정의되고 동적 링커 프로그램을 메모리에 맵핑하는 방법을 결정하기 위해이 정보를 사용되는 등

관련 문제