programing

readelf와 같은 툴을 Mac OS X용으로 제공합니까?

shortcode 2022. 7. 10. 21:03
반응형

readelf와 같은 툴을 Mac OS X용으로 제공합니까?

이와 유사한 재배치 테이블 및 기호 오프셋에 대한 정보를 인쇄하는 Mac OS X 이진 파일을 읽을 수 있는 도구가 있습니까?readelf출력은?

readelf -r app

Relocation section '.rel.dyn' at offset 0x5ec contains 2 entries:
 Offset     Info    Type            Sym.Value  Sym. Name
08049d58  00001706 R_386_GLOB_DAT    00000000   __gmon_start__
08049d60  00000305 R_386_COPY        08049d60   _ZSt4cout

Relocation section '.rel.plt' at offset 0x5fc contains 13 entries:
 Offset     Info    Type            Sym.Value  Sym. Name
08049d24  00000107 R_386_JUMP_SLOT   0804868c   print
08049d28  00000207 R_386_JUMP_SLOT   0804869c   _ZNSt8ios_base4InitC1E
08049d2c  00000507 R_386_JUMP_SLOT   080486ac   _ZStlsISt11char_traits
08049d30  00000607 R_386_JUMP_SLOT   080486bc   _ZNSolsEPFRSoS_E
08049d34  00000707 R_386_JUMP_SLOT   08048664   _init
08049d38  00000807 R_386_JUMP_SLOT   080486dc   sleep
08049d3c  00000907 R_386_JUMP_SLOT   080486ec   _ZNKSsixEj
08049d40  00000b07 R_386_JUMP_SLOT   080486fc   _ZNKSs4sizeEv
08049d44  00000c07 R_386_JUMP_SLOT   0804870c   __libc_start_main
08049d48  00000d07 R_386_JUMP_SLOT   08048ae4   _fini
08049d4c  00001307 R_386_JUMP_SLOT   0804872c   _ZSt4endlIcSt11char_tr
08049d50  00001507 R_386_JUMP_SLOT   0804873c   __gxx_personality_v0
08049d54  00001607 R_386_JUMP_SLOT   0804874c   _ZNSt8ios_base4InitD1E

이 예에서는,print는 런타임에 공유 라이브러리에서 로드되는 함수입니다. readelf로케이션 정보를 표시할 수 있습니다.app바이너리

MacPort 사용:

  1. macport를 인스톨 합니다.
  2. macport 사용port install binutils
  3. gobjdump -p /path/to/app

홈브루 사용:

  1. 홈브루 설치
  2. 하다brew update && brew install binutils
  3. /usr/local/path/to/gobjdump -p /path/to/app# 또는 지시에 따라 PATH에 추가합니다.

물론 그 밖에도 많은 명령줄 옵션이 있습니다.binutils 포트는 설치 시 다른 포트의 구축에 실패할 수 있음을 주의해 주십시오.포토 인스톨/조회/포토의 언인스톨을 실시하는 것도 편리합니다.

이를 위한 네이티브 툴이 아직 없다는 것이 오히려 놀랍습니다.

otool -l test.o

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install binutils
greadelf filepath
  1. 홈브루를 설치합니다.
  2. 홈브루를 사용하여 바이너틸을 설치하다
  3. 바이너틸의 readelf는 라고 불린다.greadelf.

시도해 보세요.

⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣

ObjConv를 사용해 보셨습니까?http://agner.org/optimize/ #objconv

이 유틸리티는 모든 32비트 및 64비트 x86 플랫폼에서 COFF/PE, OMF, ELF 및 Mach-O(Mac OS에서 사용) 형식 간의 객체 파일 변환에 사용할 수 있습니다.개체 파일의 기호 이름을 수정할 수 있습니다.플랫폼 전체에서 기능 라이브러리를 구축, 변경 및 변환할 수 있습니다.개체 파일 및 실행 파일을 덤프할 수 있습니다.SSE4, AVX, FMA 및 XOP 명령 세트를 지원하는 매우 우수한 분해 장치도 포함되어 있습니다.

추신: 소스 코드가 포함되어 있습니다(GPL).

언급URL : https://stackoverflow.com/questions/3286675/readelf-like-tool-for-mac-os-x

반응형