IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Recherche quelques définitions pour un article


Sujet :

C

  1. #1
    Membre expérimenté

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par défaut Recherche quelques définitions pour un article
    Bonjour

    Je rédige actuellement un articles sur des nouvelles technologies intégrées au système OpenBSD afin d'améliorer la sécurité du système.

    J'ai besoin d'un petit coup de main pour trouver une définition simple pour:

    • strlcpy() et strlcat() Fait
    • W^X Fait
    • segment .rodata Fait
    • Pages de garde Fait
    • malloc() randomizé Fait
    • mmap() randomizé Fait
    • atexit() et la protection stdio

    Merci d'avances de vos réponses

  2. #2
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Je ne suis pas sûr de comprendre, est ce que quelque chose du genre irait:
    strlcpy() et strlcat() sont les pendants sécurisés des fonctions strcpy() et strcat(), en effet, ces fonctions prennent un argument supplémentaire : la taille de buffer de destination, évitant tout débordement, de plus, elles garantissent, que la chaine résultante, est bien est une chaine valide en C, à savoir, terminée par un NUL byte.
    ?

  3. #3
    Membre expérimenté

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par défaut
    Cette définition me plaît beaucoup, je l'adopte

  4. #4
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    W^X : qualifie un espace mémoire qui est soit modifiable (W), soit exécutable (X) mais pas les deux

  5. #5
    Membre expérimenté

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par défaut
    Je prends également cette deuxième défnition. Merci beaucoup

  6. #6
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Pages de garde :
    Une page de garde est une page mémoire dont l'accès est interdit : Accèder à une adresse de cette page cause une faute de segmentation ou déclenche une exception. Elle est utilisée pour délimiter une plage mémoire allouée et ainsi détecter un accès débordant de cette plage.

  7. #7
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    pour le segment .rodata, j'ai trouvé cela mais je pense qu'il y a une erreur justement dans la définition de .rodata (ou alors, j'ai pas bien compris)

    Citation Envoyé par Lu dans l'URL
    Description : Cette directive indique le début d’un segment contenant des données uniquement accessible en lecture. Celui-ci est défini lors de la compilation ; son contenu est modifiable lors de l’exécution et il est généralement destiné aux variables globales.
    Citation Envoyé par Ce que je pense
    Description : Cette directive indique le début d’un segment de mémoire contenant des données uniquement accessibles en lecture. Celui-ci est défini lors de la compilation ; son contenu n'est pas modifiable lors de l’exécution et il est généralement destiné aux variables globales. Ce segment de mémoire pourrait être placé en ROM
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  8. #8
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Citation Envoyé par ram-0000 Voir le message
    pour le segment .rodata, j'ai trouvé cela mais je pense qu'il y a une erreur justement dans la définition de .rodata (ou alors, j'ai pas bien compris)
    .rodata Cette section contient des donnees en lecture seule, qui
    feront classiquement partie d'un segment non accessible
    en ecriture dans l'image du processus. Cette section est
    du type SHT_PROGBITS. L'attribut utilise est SHF_ALLOC.
    SHF_ALLOC Cette section est presente en memoire
    durant l'execution du processus. Cer-
    taines sections de controle ne sont
    pas presentes dans l'image memoire
    d'un fichier objet. Cet attribut est
    desactive pour ces sections.
    SHT_PROGBITS Cette section contient des informations
    definies par le programme, dont le for-
    mat et le sens sont uniquement deter-
    mines par celui-ci.

  9. #9
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 196
    Billets dans le blog
    159
    Par défaut
    La page de man de atexit répond:

    atexit - register a function to be called at normal process termination
    Mais je ne sais pas quoi dire sur la protection stdio ...
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  10. #10
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Salut,

    Petite precision
    Citation Envoyé par diogene Voir le message
    W^X : qualifie un espace mémoire qui est soit modifiable (W), soit exécutable (X) mais pas les deux
    ... et utilise pour cela le NX bit des processeurs le supportant (sparc, amd64) ou l'emule pour les autres (i386).

    mmap randomize: un appel a mmap retourne une adresse aleatoire ce qui rend tres difficile de predire a quelle adresse un programme sera en memoire. Dans la meme idee de "randomization" (pardon...), ld.so charge les bibliotheques a des adresses aleatoires, un "trou" de taille aleatoire est insere dans le stack, les "grands" malloc utilisent mmap, sinon malloc lui-meme est "randomize".

    Tu pourrais aussi ajouter peut etre le SSP qui permet de detecter ces memes buffer overflow et de crasher le programme immediatement.

  11. #11
    Membre expérimenté

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par défaut
    Merci à tous pour vos informations, vous m'avez retiré une grosse épine du pied. Concernant la protection stdio, j'ai directement envoyé un message à un développeur OpenBSD.

    Encore Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche quelqu'un pour tester un logiciel webcam
    Par aliza77 dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 14/12/2013, 20h41
  2. Quelqu'un pour écrire un article sur PowerAMC 12 ?
    Par Marc Lussac dans le forum Contribuez
    Réponses: 1
    Dernier message: 20/04/2006, 17h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo