GNU/Linux >> Linux Esercitazione >  >> Linux

In un gestore SIGILL, come posso saltare l'istruzione offensiva?

È molto complicato e NON PORTATILE ma:

void sighandler (int signo, siginfo_t si, void *data) {
    ucontext_t *uc = (ucontext_t *)data;

    int instruction_length = /* the length of the "instruction" to skip */

    uc->uc_mcontext.gregs[REG_RIP] += instruction_length;
}

installa il sighandler così:

struct sigaction sa, osa;
sa.sa_flags = SA_ONSTACK | SA_RESTART | SA_SIGINFO;
sa.sa_sigaction = sighandler;
sigaction(SIGILL, &sa, &osa);

Questo potrebbe funziona se sai fino a che punto saltare (ed è un processo Intel) :-)


Linux
  1. Come posso trovare la versione di Fedora che uso?

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

  3. Come posso vedere la dimensione dei file e delle directory in Linux?

  4. Come posso anteporre una stringa all'inizio di ogni riga in un file?

  5. Come posso eseguire il loop sull'output di un comando di shell?

Come posso contare il numero di caratteri in una variabile Bash

Come posso fornire una password SSH a SVN sulla riga di comando?

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

Come posso modificare $ PATH su Linux?

Come posso trovare il file più vecchio in un albero di directory

Come posso monitorare la lunghezza della coda di accettazione?