• # du coté de elf32 ...

    Posté par (site web personnel) . En réponse au journal question : est-ce que la zone de code est modifiable. Évalué à 9.

    ... et de tout les systemes qui l'utilisent.

    Il y a deux zones dans un executable : la partie statique et la partie dynamique.

    La partie statique est constituée du code et des chaines de caracteres fixes (definies a l'avance dans le code). Elle est en lecture seule, si tu tentes d'y ecrire, segfault.

    La partie dynamique est composé des allocations mémoires faites durant l'execution, ca c'est en lecture/ecriture.

    petit exemple :

    int main(int argc, char *argv[])
    {
    char* text = "hello";

    text[0] = 'H';
    return (0);
    }


    ca ca segfaulte grave.

    Il existe une option de gcc pour forcer la mise en lecture/ecriture de la zone statique, mais c'est fortement deconseillé.

    Par contre il existe une méthode dite d'injection de code qui consiste a inserer un thread dans un processus. comme la liste des processus est dans la zone dynamique (il ne sont pas definis a l'avance en nombre) , on peut y inserer un nouveau dont le code est dans la zone de données ou ailleurs. la ca devient moins cool car c'est pas visible au premier coup d'oeil.