¿Cuál es el formato del archivo?
El formato de archivo SO es el formato de archivo ELF, que es un formato unificado para archivos ejecutables, archivos de biblioteca compartida y archivos de destino en Linux.
Según las diferentes formas de ver los archivos ELF, los archivos ELF se pueden dividir en vista de enlace y vista de carga. La vista de enlace es la vista que tiene el enlazador de los archivos ELF estáticos desde la perspectiva del enlace.
Al observar el archivo ELF desde la vista de enlace, el archivo ELF se compone de varias secciones. Las diferentes secciones tienen diferentes nombres y permisos. La vista de carga es la vista del sistema operativo de los archivos ELF dinámicos desde la perspectiva de cargar archivos ELF en la memoria.
Mirando el archivo ELF desde la vista de carga, el archivo ELF consta de múltiples segmentos, cada segmento tiene diferentes permisos y nombres. De hecho, un segmento es una colección de varias secciones con los mismos permisos.
Información ampliada:
Dado que la capa inferior del sistema operativo Android se basa en el sistema Linux, los archivos SO se pueden ejecutar en la plataforma Android. El sistema Android también abre la interfaz C/C++ para que los desarrolladores desarrollen programas nativos.
Dado que el lenguaje de programación basado en máquinas virtuales JAVA es más fácil de descompilar, cada vez más aplicaciones utilizan C/C++ como lenguaje de programación para su código central y lo proporcionan a la capa superior en forma de archivos SO. Llamadas de código JAVA para garantizar la seguridad.
La tabla de encabezado ELF registra la información básica del archivo ELF, incluido el número mágico, el tipo de archivo de destino (archivo ejecutable, archivo de biblioteca compartida o archivo de destino), la arquitectura de destino del archivo y el Dirección de entrada del programa (para archivos de biblioteca compartida, este valor es 0), luego el tamaño y el número de la tabla de secciones, y el tamaño y el número de la tabla de encabezado del programa, que corresponden a la vista de enlace y la vista de carga respectivamente.