용도
XCOFF
실행 파일 헤더를 수정합니다.
구문
ldedit -b 옵션 [ -V ] 파일
설명
XCOFF 헤더 또는
실행 파일의 보조 헤더의 다양한 필드를 수정하기 위해 ldedit
명령을 사용할 수 있습니다. ldedit 명령은 애플리케이션을 'large page data'
프로그램으로 표시 또는 표시 해제할 수 있도록 합니다. ldedit
명령은 또한 다시 링크하지 않고 MAXDATA 및 MAXSTACK의 값을
추가 또는 수정할 수 있게 합니다.
-b 플래그의
형식은 링크 편집기인 ld 명령의 형식과 유사합니다. -b 플래그는 명령행에서 여러 번 사용할 수 있습니다.
플래그가
지정되지 않으면 ldedit 명령은 표준 오류
출력을 사용하여 사용법 메시지를 표시합니다.
플래그
| 항목 |
설명 |
| -b옵션 |
Option으로 지정된 대로 실행 파일을 수정합니다. Option의 가능한 값은 다음과 같습니다.
- aslr 또는 aslr:[[+-][tdsmp]*]*
- aslr 또는 aslr:[[+-][tdsmp]*]*는 프로그램에 대한
주소 공간 배치 랜덤화를 지정합니다. 이 옵션이 사용되는 경우에만
aslr 옵션이 모든 랜덤화 속성을 사용으로 설정합니다.
- aslr 옵션 앞에 쉼표를 사용하면 개별 속성을 사용으로 설정할 수 있습니다. 더하기 부호(+)는
랜덤화를 사용으로 설정하며 빼기 부호(-)는 랜덤화를 사용 안함으로 설정합니다. 다음 속성은
텍스트, 데이터, 스택, mmap, 개별 라이브러리:
t, d, s, m 및
p를 지정할 때 사용할 수 있습니다. 나열되지 않은 속성의 경우, 랜덤화 설정이
사용 안함 상태로 유지됩니다.
주: 32비트프로그램에는 m 및 p 속성을 지정할 수 없습니다.
- 일부 프로그램은 재배치 가능 주소가 텍스트 섹션에 맵핑되도록 컴파일되고
링크됩니다. 이를 위해서는 프로그램이 실행될 때 주소의 재배치가 필요합니다. 랜덤화가
텍스트 또는 데이터에 대해 사용으로 설정되면 이러한 프로그램은 실패합니다. 따라서 텍스트 섹션 재배치가 존재하는 경우 aslr 옵션을 사용할 때 t 및 d 속성을 명시적으로 지정하지 않으면 텍스트 및 데이터 무작위 추출이 활성화되지 않습니다.
- noaslr
- 프로그램의 랜덤화 속성 설정을 지웁니다.
- 데이터 크기:psize
- 데이터에 대한 psize 페이지 크기를
바이트 단위로 요청합니다. 값은 10진수, 16진수
또는 8진수로 지정할 수 있습니다. 숫자 스펙은 C 프로그래밍 언어와
동일합니다. 또한 페이지 크기를 숫자와 1자
접미어의 순서로 지정할 수 있습니다.
- 킬로 또는 0x400바이트의 경우 k 또는 K
- 메가 또는 0x100000바이트의 경우 m 또는 M
- 기가 또는 0x40000000바이트의 경우 g 또는 G
- 테라 또는 0x10000000000바이트의 경우 t 또는 T
- 페타(peta) 또는 0x4000000000000바이트의 경우 p 또는 P
- 엑소(exo) 또는 0x1000000000000000바이트의 경우 x 또는 X
예를 들어, ' -b datapsize:16k ' 또는 ' -b datapsize:0x4000 '는 데이터로 0x4000 요청하고 ' XCOFF ' 헤더에 ' F_VARPG ' 비트를 설정합니다. 이 작업은 보조 헤더의 해당 멤버를 지정된 값
psize의 로그 대수 2로 설정하여 수행됩니다. 값이 0과 다른 경우, ' XCOFF ' 헤더의 ' f_flags 멤버의 ' F_VARPG ' 비트도 설정됩니다. 그렇지 않으면 이 비트가 지워집니다.
- 포크폴리시:정책
- File이 64비트 프로그램인 경우 XCOFF 보조 헤더에서
_AOUT_FORK_POLICY 플래그를 설정합니다. policy가
cor이면
_AOUT_FORK_COW 또한 설정되어 원본 이전 사본 포크 트리 정책 사용을
요청합니다. policy가 cow이면
_AOUT_FORK_COW 플래그가 지워져 copy-on-reference 포크 트리 정책
사용을 요청합니다. File이
32비트 프로그램인 경우에는 변경되지 않습니다.
- noforkpolicy
- File이 64비트 프로그램인 경우 XCOFF
보조 헤더에서 _AOUT_FORK_POLICY 및 _AOUT_FORK_COR 플래그를 재설정합니다. VMM_CNTRL 환경 변수로 forktree 정책이 지정되지 않으면
디폴트 forktree 정책을 사용합니다. File이
32비트 프로그램인 경우에는 변경되지 않습니다.
- lpdata
- 파일을 'large page data' 실행 파일로 표시합니다.
- nolpdata
- 파일을 'large page data' 실행 파일로 표시 해제합니다.
- noshrsymtab
- XCOFF 보조 헤더에서 _AOUT_SHR_SYMTAB 플래그를 지웁니다. File이 32비트
오브젝트인 경우에는 변경되지 않습니다.
- M:<modtype>
- 파일에서 모듈 유형 필드 및 공유 오브젝트 플래그를 업데이트합니다. 모듈 유형이 S 문자로 시작하고 길이가 3자인 경우 F_SHROBJ 플래그가 XCOFF 헤더에 설정됩니다.
- 최대데이터:값
- MAXDATA 값을 설정합니다. value는
0으로 시작할 때 8진수,
0x로 시작할 때 16진수,
다른 모든 경우에는 10진수입니다.
- maxdata:값/dsa
- MAXDATA 값과 DSA 비트를 설정합니다. value는
0으로 시작할 때 8진수,
0x로 시작할 때 16진수,
다른 모든 경우에는 10진수입니다.
|
| |
- 최대스택:값
- MAXSTACK 값을 설정합니다. value는
0으로 시작할 때 8진수,
0x로 시작할 때 16진수,
다른 모든 경우에는 10진수입니다.
- norwexec
- 파일의 쓰기 가능 및 맵핑 가능 섹션과 스택을 실행 불가능으로 표시합니다.
- shrsymtab
- XCOFF 보조 헤더에서 _AOUT_SHR_SYMTAB 플래그를 설정합니다. File이
64비트 프로그램이면 프로그램이 실행될 때 공유 기호 테이블이
작성됩니다. Flag가 64비트 오브젝트이지만
64비트 프로그램이 아닌 경우에는 _AOUT_SHR_SYMTAB 플래그를 설정할 수
있지만 실행시간에 영향을 주지 않습니다. File이 32비트
오브젝트인 경우에는 변경되지 않습니다.
|
| |
- 스택 크기:psize
- 프로세스 주 스레드 스택에 대한 psize
페이지 크기를 바이트 단위로 요청합니다. 값은 10진수, 16진수
또는 8진수로 지정할 수 있습니다. 숫자 스펙은 C 프로그래밍 언어와
동일합니다. 또한 페이지 크기를 숫자와 1자
접미어의 순서로 지정할 수 있습니다.
- 킬로 또는 0x400바이트의 경우 k 또는 K
- 메가 또는 0x100000바이트의 경우 m 또는 M
- 기가 또는 0x40000000바이트의 경우 g 또는 G
- 테라 또는 0x10000000000바이트의 경우 t 또는 T
- 페타(peta) 또는 0x4000000000000바이트의 경우 p 또는 P
- 엑소(exo) 또는 0x1000000000000000바이트의 경우 x 또는 X
예를 들어, ' -b stackpsize:16k ' 또는 ' -b stackpsize:0x4000 '는 프로세스 메인 스레드 스택에 0x4000 요청하고 ' XCOFF ' 헤더에 ' F_VARPG ' 비트를 설정합니다. 이 작업은 보조 헤더의 해당 멤버를 지정된 값
psize의 로그 대수 2로 설정하여 수행됩니다. 값이 0과 다른 경우, ' XCOFF ' 헤더의 ' f_flags 멤버의 ' F_VARPG ' 비트도 설정됩니다. 그렇지 않으면 이 비트가 지워집니다.
- textpsize:psize
- 텍스트에 대한 psize 페이지 크기를
바이트 단위로 요청합니다. 값은 10진수, 16진수
또는 8진수로 지정할 수 있습니다. 숫자 스펙은 C 프로그래밍 언어와
동일합니다. 또한 페이지 크기를 숫자와 1자
접미어의 순서로 지정할 수 있습니다.
- 킬로 또는 0x400바이트의 경우 k 또는 K
- 메가 또는 0x100000바이트의 경우 m 또는 M
- 기가 또는 0x40000000바이트의 경우 g 또는 G
- 테라 또는 0x10000000000바이트의 경우 t 또는 T
- 페타(peta) 또는 0x4000000000000바이트의 경우 p 또는 P
- 엑소(exo) 또는 0x1000000000000000바이트의 경우 x 또는 X
예를 들어, ' -b textpsize:16k ' 또는 ' -b textpsize:0x4000 '는 텍스트에 0x4000 요청하고 ' XCOFF ' 헤더에 ' F_VARPG ' 비트를 설정합니다. 이 작업은 보조 헤더의 해당 멤버를 지정된 값
psize의 로그 대수 2로 설정하여 수행됩니다. 값이 0과 다른 경우, ' XCOFF ' 헤더의 ' f_flags 멤버의 ' F_VARPG ' 비트도 설정됩니다. 그렇지 않으면 이 비트가 지워집니다.
|
| -v |
표준 오류 출력에
ldedit 명령의 버전을 인쇄합니다. |
예
- 텍스트, 데이터, 스택의 시스템 선택 페이지 크기를 요청하려면 다음을
입력하십시오.
ldedit -b textpsize:0 -b datapsize:0 -b stackpsize:0
이렇게 하면 ' XCOFF ' 헤더의 ' F_VARPG 비트가 지워집니다.
- 모든 랜덤화 속성을 사용으로 설정하려면 다음을 입력하십시오.
-baslr
텍스트 섹션 재배치가 존재하면
텍스트 및 데이터 랜덤화를 사용으로 설정하지 마십시오.
- 텍스트에 대한 랜덤화를 사용으로 설정하고, 스택에 대한 랜덤화는
사용 안함으로 설정한 후, 다른 값을 변경하지 않은 채로 두려면
다음을 입력하십시오.
-baslr:+t-s