GNU/Linux >> Linux Esercitazione >  >> Linux

GDB può modificare il codice assembly di un programma in esecuzione?

Puoi scrivere binari direttamente in memoria ma GDB non ha un assembler integrato per impostazione predefinita, puoi comunque fare qualcosa come set *(unsigned char*)0x80FFDDEE = 0x90 per cambiare il mnemonico a quell'indirizzo in un NOP per esempio. Potresti comunque usare NASM per scrivere uno shellcode e usare perl o python per inserirlo nel programma :)

Potrebbe piacerti anche questo piccolo file .gdbinit per semplificare il debug:https://gist.github.com/985474


Consiglierei un approccio diverso:scarica il pacchetto coreutils e modifica il codice sorgente per ls . Se possibile, dovresti ottenere il pacchetto dai repository dei sorgenti della tua distribuzione e applicare eventuali patch.


Linux
  1. Posso utilizzare GDB per eseguire il debug di un processo in esecuzione?

  2. Quando assert() fallisce, qual è il codice di uscita del programma?

  3. Come posso eseguire il codice PHP dalla riga di comando?

  4. Quali parti di questo codice assembly HelloWorld sono essenziali se dovessi scrivere il programma in assembly?

  5. Come posso modificare il layout della tastiera di input mentre sono nella console?

Come modificare il reindirizzamento dell'output di un processo in esecuzione?

Come posso profilare il codice C++ in esecuzione su Linux?

Cambia il comando find-grep predefinito in emacs

Come cambiare il carattere dell'interfaccia utente di Visual Studio Code?

Come posso conoscere il percorso assoluto di un processo in esecuzione?

È possibile utilizzare mprotect() per modificare i permessi di .rodata?