ldedit 명령

용도

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, mp를 지정할 때 사용할 수 있습니다. 나열되지 않은 속성의 경우, 랜덤화 설정이 사용 안함 상태로 유지됩니다.
주: 32비트프로그램에는 mp 속성을 지정할 수 없습니다.
일부 프로그램은 재배치 가능 주소가 텍스트 섹션에 맵핑되도록 컴파일되고 링크됩니다. 이를 위해서는 프로그램이 실행될 때 주소의 재배치가 필요합니다. 랜덤화가 텍스트 또는 데이터에 대해 사용으로 설정되면 이러한 프로그램은 실패합니다. 따라서 텍스트 섹션 재배치가 존재하는 경우 aslr 옵션을 사용할 때 td 속성을 명시적으로 지정하지 않으면 텍스트 및 데이터 무작위 추출이 활성화되지 않습니다.
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 플래그를 설정합니다. policycor이면 _AOUT_FORK_COW 또한 설정되어 원본 이전 사본 포크 트리 정책 사용을 요청합니다. policycow이면 _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 값을 설정합니다. value0으로 시작할 때 8진수, 0x로 시작할 때 16진수, 다른 모든 경우에는 10진수입니다.
maxdata:/dsa
MAXDATA 값과 DSA 비트를 설정합니다. value0으로 시작할 때 8진수, 0x로 시작할 때 16진수, 다른 모든 경우에는 10진수입니다.
 
최대스택:
MAXSTACK 값을 설정합니다. value0으로 시작할 때 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 명령의 버전을 인쇄합니다.

  1. 텍스트, 데이터, 스택의 시스템 선택 페이지 크기를 요청하려면 다음을 입력하십시오.
    ldedit -b textpsize:0 -b datapsize:0 -b stackpsize:0
    이렇게 하면 ' XCOFF ' 헤더의 ' F_VARPG 비트가 지워집니다.
  2. 모든 랜덤화 속성을 사용으로 설정하려면 다음을 입력하십시오.
    -baslr

    텍스트 섹션 재배치가 존재하면 텍스트 및 데이터 랜덤화를 사용으로 설정하지 마십시오.

  3. 텍스트에 대한 랜덤화를 사용으로 설정하고, 스택에 대한 랜덤화는 사용 안함으로 설정한 후, 다른 값을 변경하지 않은 채로 두려면 다음을 입력하십시오.
    -baslr:+t-s