Comprender el comando Readelf Linux

Comprender el comando Readelf Linux
Cuando trabaja con diferentes programas y compiladores como el GCC, A menudo termina compilando los programas en un formato binario que se puede ejecutar. El archivo de objeto generado solo es comprensible por la máquina, y la única forma en que los humanos pueden trabajar y comprender su contenido es mediante el uso del readerable dominio. Con Readelf, puede extraer la información de los archivos ELF (ejecutable y formato vinculable). El programa Readelf es casi similar al objeco. Pero con Readelf, obtienes detalles más específicos y, a diferencia de Objdump, no confía en el Bfd biblioteca.

Trabajar con el comando Readelf Linux

Antes de comenzar a usar el comando Readelf, instálelo con el siguiente comando:

$ sudo apt instalación binutils

Una vez instalado, puede abrir su página de ayuda escribiendo su nombre en el terminal.

$ Readelf

Hay diferentes opciones para usar con Readelf. Intentaremos cubrir la mayoría de ellos usando los ejemplos. Primero, asegúrese de tener un archivo ELF para usar para la muestra.

Para nuestro ejemplo, usaremos un C código de programa con el que compilaremos GCC Para convertirlo a elfo, como se muestra en lo siguiente:

Use la siguiente sintaxis para verificar que el archivo está en formato ELF.

$ nombre de archivo de archivo

Si el archivo es ELF, debe devolver como ELF en su salida, como se muestra en la siguiente imagen:

Mostrar los encabezados del archivo ELF

El Readelf ofrece el -H bandera que enumera todos los encabezados en el elfo especificado. En nuestro caso, podemos enumerar todos los encabezados en el File de elfo1 Como se muestra en lo siguiente:

$ readelf -h elf -archivo1

Mostrando los encabezados del programa ELF

Si desea ver los encabezados del programa del archivo, use el indicador -l.

Del mismo modo, puede obtener los encabezados de sección usando la bandera -s. La salida muestra las diferentes secciones contenidas en el espacio de direcciones de los procesos:

Mostrando la tabla de símbolos

Un archivo de elfo contiene tablas de símbolos. Puede extraer su información utilizando la bandera -s.

Puede observar las diferentes entradas en las secciones de la tabla de símbolos de su archivo como en la salida anterior.

Además, es posible reducir la salida y especificar qué sección entre los encabezados de la sección obtener sus detalles. La sintaxis para esto es:

$ readelf -p [name de sección] [nombre de archivo]

Por ejemplo, usemos el .strtab.

Nuestra salida sería:

La salida anterior es más comprensible y específica para la sección.

Mostrar las notas principales

Si el archivo tiene segmentos o secciones de nota, el -norte la bandera muestra el contenido. Puede usarlo como en la siguiente imagen de ejemplo:

Algunos de los contenidos que se muestran incluyen los detalles del propietario y el tamaño de los datos.

Mostrando el histograma

Puede representar las longitudes de la lista de deseos en un histograma al mostrar el contenido de la tabla de símbolos. El -I se usa la opción o -histograma.

Mostrando la sección de reubicación

Si el archivo ELF tiene secciones de reubicación, puede obtener el contenido utilizando el -riñonal o -reubicación bandera.

Además, si el archivo tiene alguna sección dinámica, el contenido de la sección se puede recuperar utilizando el -d bandera.

El contenido incluye la etiqueta, el tipo y el nombre o el valor para cada contenido.

La cantidad de información sobre el archivo ELF que puede extraer utilizando el comando Readelf Linux es infinita. La página del hombre ofrece múltiples opciones que puede usar para diferentes tareas. Todo lo que necesita es buscar una opción que logre lo que pretende y lo use.

Conclusión

Cubrimos el comando Readelf Linux, cómo instalarlo y cómo comenzar a usar la herramienta. Si está buscando una herramienta para mostrar la información diferente sobre los archivos ELF, Readelf es perfecto para el trabajo. Tiene muchas opciones y lo bueno es que es fácil de usar, como hemos visto en los ejemplos dados. Pruébalo!