herramienta similar a readelf para Mac OS X? [closed]

4 minutos de lectura

herramienta similar a readelf para Mac OS X closed
karlphillip

¿Existe alguna herramienta para leer archivos binarios de Mac OS X que imprima información sobre tablas de reubicación y compensaciones de símbolos similares a esta? readelf ¿producción?

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

En este ejemplo, print es una función cargada desde una biblioteca compartida (escribí) en tiempo de ejecución. readelf es capaz de mostrar información sobre su ubicación dentro del app binario.

  • haría nm ¿Haz el truco?

    – zneak

    20 de julio de 2010 a las 2:56

  • No imprime suficiente información.

    – karlphillip

    20 de julio de 2010 a las 3:10

1647583146 759 herramienta similar a readelf para Mac OS X closed
cbehanna

Utilizando Macports:

  1. instalar macports.
  2. usando macports port install binutils
  3. gobjdump -p /path/to/app

Utilizando Cerveza casera:

  1. Instalar cerveza casera
  2. Hacer brew update && brew install binutils
  3. /usr/local/path/to/gobjdump -p /path/to/app # o siga las instrucciones para agregarlo a su RUTA

Hay, por supuesto, muchas otras opciones de línea de comandos. Tenga en cuenta que el puerto binutils advierte que instalarlo puede causar que otros puertos no se construyan. Tenerlo cerca de la instalación del puerto/mirar algo/desinstalar el puerto aún puede ser útil.

Es bastante sorprendente que aún no haya una herramienta nativa para hacer esto.

  • Si usa Homebrew, puede instalarlo a través de “brew install binutils”.

    – louieloui

    23 mayo 2013 a las 21:24

  • Para los usuarios de Homebrew, como mencionó @louielouie, brew install binutils entonces todas las herramientas tendrán el prefijo ges decir greadelf. Ver github.com/Homebrew/homebrew/blob/master/Librería/Fórmula/…

    – acw

    9 de septiembre de 2014 a las 9:49


  • me sale un mensaje: gobjdump: Matching formats: elf32-littlearm elf32-littlearm-symbian elf32-littlearm-vxworks

    – Igor Ganapolski

    11 mayo 2016 a las 22:01

  • @IgorGanapolsky puede usar gradelf -Ws /path/to/your/so/files

    – ck1910

    12 de abril de 2017 a las 7:55

otool -l prueba.o

  • No, tampoco funciona.

    – karlphillip

    22 de julio de 2010 a las 23:42

  • Puede hacer esto con otool, solo necesita pasar opciones adicionales. man otool para más detalles.

    – Chris Hanson

    23 de julio de 2010 a las 19:59

  • otool -Sv libtest.a es más agradable, o otool -STMRIHGv <path/to/library> para cualquier tipo de biblioteca (*.a, *.so, *.dylib). otool está disponible en /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool después de instalar Xcode.

    – Siu Ching Pong -Asuka Kenji-

    21 de marzo de 2016 a las 15:12

  • Desafortunadamente necesito hacer esto con .so archivos

    – Igor Ganapolski

    11 mayo 2016 a las 22:02

herramienta similar a readelf para Mac OS X closed
Jichao

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install binutils
greadelf filepath
  1. instalar cerveza casera.
  2. usa homebrew para instalar binutils
  3. el readelf en binutils se llama greadelf.

  • greadelf requiere una bandera

    – Igor Ganapolski

    11 mayo 2016 a las 22:03

  • Utilizar greadelf -a <binary>los -a la bandera representa todas las opciones que vuelca todo

    – Alison

    5 de mayo de 2018 a las 1:07

herramienta similar a readelf para Mac OS X closed
Pedro Hosey

podrías intentarlo dwarfdump.

⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣

¿Has probado ObjConv? http://agner.org/optimize/#objconv

Esta utilidad se puede utilizar para convertir archivos de objetos entre formatos COFF/PE, OMF, ELF y Mach-O (utilizados por Mac OS) para todas las plataformas x86 de 32 y 64 bits. Puede modificar los nombres de los símbolos en los archivos de objetos. Puede crear, modificar y convertir bibliotecas de funciones entre plataformas. Puede volcar archivos de objetos y archivos ejecutables. También incluye un muy buen desensamblador compatible con los conjuntos de instrucciones SSE4, AVX, FMA y XOP.

Ps.: El código fuente está incluido (GPL).

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad