GNU/Linux >> Tutoriales Linux >  >> Linux

¿Puede GDB cambiar el código ensamblador de un programa en ejecución?

Puede escribir binario en la memoria directamente, pero GDB no tiene un ensamblador integrado de forma predeterminada; sin embargo, puede hacer algo como set *(unsigned char*)0x80FFDDEE = 0x90 para cambiar el mnemotécnico en esa dirección a NOP, por ejemplo. Sin embargo, podría usar NASM para escribir un shellcode y usar perl o python para inyectarlo en el programa :)

También te puede gustar este pequeño archivo .gdbinit para facilitar la depuración:https://gist.github.com/985474


Recomendaría un enfoque diferente:descargue el paquete coreutils y modifique el código fuente para ls . Si es posible, debe obtener el paquete de los repositorios de origen de su distribución y aplicar los parches.


Linux
  1. ¿Cómo cambiar la redirección de salida de un proceso en ejecución?

  2. ¿Puedo usar GDB para depurar un proceso en ejecución?

  3. Cuando la afirmación () falla, ¿cuál es el código de salida del programa?

  4. ¿Cómo desensamblar un ejecutable binario en Linux para obtener el código de ensamblaje?

  5. ¿Cómo puedo ejecutar código PHP desde la línea de comandos?

¿Cómo puedo perfilar el código C++ que se ejecuta en Linux?

¿Dónde puedo encontrar el código fuente del comando cp?

¿Cómo puedo saber la ruta absoluta de un proceso en ejecución?

¿Cómo puedo cambiar el diseño del teclado de entrada mientras estoy en la consola?

¿Se puede usar mprotect() para cambiar los permisos de .rodata?

¿Puede un programa decir que se está ejecutando bajo sudo?