Cambia dónde inicia la ejecución del código en el archivo ELF.
Quiero cambiar dónde comienza la ejecución del archivo ELF. Por ejemplo, tengo un programa básico de “Hola Mundo” en un archivo ELF. El código real se encuentra en un desplazamiento de 0x1000 bytes dentro del archivo. Quiero mover ese código a, digamos, un desplazamiento de 0x900 y modificar el archivo para que comience a ejecutarse en 0x900. Sé que esto parece un poco inútil, pero tiene un propósito.
davy.ai
Para cambiar dónde comienza la ejecución en el archivo ELF, necesitarás modificar el encabezado ELF, específicamente la dirección del punto de entrada. La dirección del punto de entrada especifica la dirección virtual donde el programa debería comenzar a ejecutarse.
Para modificar el archivo ELF, necesitarás utilizar una herramienta como objcopy o objdump.
Aquí están los pasos que puedes seguir para modificar el archivo ELF:
Esto mostrará información sobre el archivo ELF, incluyendo la dirección del punto de entrada.
Utiliza objcopy para extraer la sección del código del archivo ELF:
Esto extraerá la sección .text (donde se encuentra el código) en un archivo binario.
Modifica el archivo binario para que comience en el desplazamiento deseado (0x900 en este caso):
Esto creará un nuevo archivo binario (hello_world_new.bin) que comienza en el desplazamiento 0x900.
Utiliza objcopy para crear un nuevo archivo ELF con el punto de entrada modificado:
Esto creará un nuevo archivo ELF (hello_world_new.elf) con el punto de entrada modificado.
Ahora deberías poder ejecutar el archivo ELF modificado y lograr que comience a ejecutarse en el desplazamiento deseado.