#pragma comment(linker, "/BASE:0x13140000")
역할
기본 옵션.exe 또는 DLL 파일에 대 한 기본 위치 즉 프로그램에 대 한 기본 주소를 재설정 합니다.
32 비트 이미지는 0x400000
64 비트 이미지는 0x140000000 가 기본값입니다
주소 공간 레이아웃 불규칙화 (ASLR)를 지원 하지 않거나 /dynamicbase: no 옵션 설정 된 경우 코딩내 기준 이미지 베이스 값을 우선 적용합니다.
위의문장 적용시 image Base의 값이 바뀝니다.
https://msdn.microsoft.com/en-us/library/f7f5138s.aspx
#pragma comment(linker, "/MERGE:.rdata=.text")
역할
MERGE:.A=B
A섹션과 B섹션의이름을 묶어서 B의 이름으로 이름짓는 것이다.
예를들어 `/merge:.rdata=.text`. 의 경우 text의 이름이 존재하지 않는경우 링크가 .rdata의 이름을 .text의 이름으로 바꾼다
장점
-VxD(16비트 버전의 마이크로소프트 윈도에서 쓰이는 장치 드라이버 모델)을 만드는데 유용하다고 한다.
-섹션이름을 재정의 하는데 유용하다
Visual Studio IDE(통합개발환경)에서의 설정
프로젝트 속성페이지 -> 구성 속성 -> 링커 -> 고급 -> 섹션 병합 (/merge:.rdata=.text) 입력시 병합
#include<stdio.h>
#pragma comment(linker, "/MERGE:.text=.pig")
void main ()
{
}
의 컴파일후 파일 구조의 차이
https://msdn.microsoft.com/en-us/library/wxz26dz2.aspx
#pragma comment(linker, "/SECTION:.text,EWR")
역할
해당섹션의 속성을 변경합니다
|Character|Attribute|Meaning| |---------------|---------------|-------------|
|E|Execute|The section is executable|
|R|Read|Allows read operations on data|
|W|Write|Allows write operations on data|
|S|Shared|Shares the section among all processes that load the image|
|D|Discardable|Marks the section as discardable|
|K|Cacheable|Marks the section as not cacheable|
|P|Pageable|Marks the section as not pageable|
의미
.text섹션의 속성을 실행가능 읽기 쓰기 가능으로 변경합니다.