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 :

besoin d'aide


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 42
    Par défaut besoin d'aide
    bonsoir,

    soit le programme suivant donné par notre professeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    #include <string.h>
     
    #include <stdio.h>
     
    #include <unistd.h>
     
    int main(int argc, char *argv[]) {
     
    char _clef[100], _salt[100];
     
    char * clef;
     
    strcpy(_clef,argv[1]);
     
    strcpy(_salt,argv[2]);
     
    clef=crypt(_clef, _salt);
     
    printf("%s", clef);
     
    } //fin du programme
     
    usage : mon_attack password salt
     
        *      Password :  mot de passe en clair à traiter
        *      salt : Deux caractères nécessaires a crypt
     
     
     
    # Voici 10 mots de passe de 8 minuscules chiffrés avec crypt  votre but est d'en décrypter le plus possible .
    # Ils sont précédés de leur 2 caractères de "salt".
    # Exemple:  NYUtkyYFtpX4k est l'encodage de  aaaaabbb avec comme  salt NY
    sachant que je n'ai jamais fait de C, je dois faire un programme capable de casser des mots de passe.
    Je sais que je dois créer 8 boucles pour incrémenter 8 variables (pour un mot de passe de 8 caracteres, commençant à aaaaaaaa, puis aaaaaaab, aaaaaaac, ..., finissant par zzzzzzzz).

    Mais j'ai besoin d'aide sur la façon de créer une chaine avec les variables et de les encrypter avec le programme du prof (sauf que le compilateur me fait une erreur car il ne connait pas la fonction crypt précédemment donnée).

    Quelqu'un peut-il me donner un tuyau pour avancer ?

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Alors deja le code de ton prof est bof bof est pourquoi n'y a t-il pas la fonction crypt?

    Vous etes censé la deviner avec le pitoyable exemple donné?

    Sinon je n'ai pas tres bien compris ta question , tu veux de l'aide sur quoi au juste?

  3. #3
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: besoin d'aide
    Citation Envoyé par jfjava2002
    soit le programme suivant donné par notre professeur :
    #include <string.h>

    sachant que je n'ai jamais fait de C, je dois faire un programme capable de casser des mots de passe.
    Gné ? Nom de l'école, nom du prof.
    Je sais que je dois créer 8 boucles pour incrémenter 8 variables (pour un mot de passe de 8 caracteres, commençant à aaaaaaaa, puis aaaaaaab, aaaaaaac, ..., finissant par zzzzzzzz).
    Ca fait des milliards de combinaisons (la démonstration peut se faire sur 4 caractères en quelques secondes) . D'autre part, un prof qui enseigne comment casser un mot de passe est plus que douteux. Dois-je faire un rapport à la Police ?
    Mais j'ai besoin d'aide sur la façon de créer une chaine avec les variables et de les encrypter avec le programme du prof (sauf que le compilateur me fait une erreur car il ne connait pas la fonction crypt précédemment donnée).

    Quelqu'un peut-il me donner un tuyau pour avancer ?
    Si tu ne veux pas finir en prison, change d'école. Si tu as payé, fait toi rembourser.

    C'est la HackAcadémie ou quoi ?

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut Re: besoin d'aide
    Citation Envoyé par Emmanuel Delahaye
    C'est la HackAcadémie ou quoi ?
    Non c'est la hackademy ^^
    www.thehackademy.net

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 42
    Par défaut
    non c'est pas la hackademy, juste un cours de sécurité en licence pro (pour vous dire, l'exemple des mot de passe est pris sur 8 caracteres de l'alphabet minuscule sinon trop de possibilitées)
    de plus il nous a dit qu'il falait ptete bien une semaine pour trouver les mots de passe donnés.

    notre but est de trouver les mots de passe encrypté en DES je crois.

    Et mon probleme c'est que la fonction crypt n'est pas définie, cela signifit-il que je dois créer mes boucles dans cette fonction ?

    en fait, je ne sais pas comment démarrer mon programme...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 42
    Par défaut
    d'apres mes recherches sur internet, la fonction crypt() ferait partie d'une classe en C non disponible sous windows, donc compilation sous linux obligatoire...

  7. #7
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par jfjava2002
    d'apres mes recherches sur internet, la fonction crypt() ferait partie d'une classe en C non disponible sous windows, donc compilation sous linux obligatoire...
    Ah ben oui c'est forcement mieux comme ca
    http://dpobel.free.fr/man/html/affiche_man.php/555/man/crypt/

    Donc si j'ai bien compris faut que tu code une fonction pour casser du DES, ben bon courage

    Citation Envoyé par man crypt
    [...]avec des variantes prévues entre
    autres choses pour éviter l'implémentation matérielle d'un
    casseur de code.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 42
    Par défaut
    on doit faire du brute force, en fait on boucle les 8 variables et on teste chaque possibilité en la cryptant et en la comparant avec le mot de passe déja encrypté...

    mais c'est pas cool c'est que je sais pas encore comment je vais m'en sortir mais je vous tiendrai au courant !

    merci pour vos réponses

  9. #9
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par jfjava2002
    on doit faire du brute force, en fait on boucle les 8 variables et on teste chaque possibilité en la cryptant et en la comparant avec le mot de passe déja encrypté...

    mais c'est pas cool c'est que je sais pas encore comment je vais m'en sortir mais je vous tiendrai au courant !

    merci pour vos réponses
    Ben si c'est du brute-force c'est "simple"

    Un tableau de 8 cases
    Et puis 8 boucles for imbriquées.
    Surement possible en recursif

  10. #10
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    l'exemple des mot de passe est pris sur 8 caracteres de l'alphabet minuscule sinon trop de possibilitée.
    A ben quand même, ça fait des possibilités tout de même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    26 * ... * 26 = 26^8 = 208 827 064 576

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 42
    Par défaut
    26 * ... * 26 = 26^8 = 208 827 064 576
    ben oui mais on a eu un mois pour pouvoir décoder tous les mots de passe (22 puis apres 5 en md5).

    sinon oui c'est peut-etre simple mais faut déja connaitre le C...et moi qui voulait faire du réseau je tombe encore sur du dev... zut !

    Bon je vais avancer et je reviendrai quand j'aurai besoin encore d'aide...

  12. #12
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par jfjava2002
    d'apres mes recherches sur internet, la fonction crypt() ferait partie d'une classe en C
    Gné ? C'est quoi une classe C ?

  13. #13
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par PRomu@ld
    l'exemple des mot de passe est pris sur 8 caracteres de l'alphabet minuscule sinon trop de possibilitée.
    A ben quand même, ça fait des possibilités tout de même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    26 * ... * 26 = 26^8 = 208 827 064 576
    Ben oui, j'avais dit "des milliards", en fait 208 milliards !

  14. #14
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    sinon oui c'est peut-etre simple mais faut déja connaitre le C...et moi qui voulait faire du réseau je tombe encore sur du dev... zut !
    T'inquiètes pas, perso, c'est le contraire, je voulais faire de la prog et de l'algo, et je fais plus de réseau et de traitement du signal qu'autre chose. Mais bon, il faut se faire une raison, toutes les matières (si on peut parler de matière) sont liées.

    Mais je trouve douteux ton programme :

    notre but est de trouver les mots de passe encrypté en DES je crois.
    Je n'y connais en algo de chiffrage mais tu nous as dis qu'on devait se restreindre aux minuscules, or DES, je suppose ne va pas te donner que des minuscules.

    De plus, comme l'a dis Emmanuel, il n'y a pas de classe en C.

    Franchement, je ne vois pas l'intérêt de cet exo (TD ou TP, je ne sais pas), d'une part parce qu'il n'utilise pas des choses standard du C (si votre prof voulais vous faire faire du C, c'est un peu raté), ensuite parce que le craquage de mot de passe est interdit (en tout cas, dans l'université où je suis, ce genre de pratique, même à but pédagogique est interdit), enfin, si on enlève le deuxième point, un algo du style brute-force, n'a aucun intérêt, c'est bête, méchant et hyper long.

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 42
    Par défaut
    c'est pour un cours de sécurité, et le but n'est pas de faire un brute-force qui fonctionne dans tous les cas, juste dans le cas du projet, c'est a dire qu'avec des mots de passe de 8 caractères en minuscules uniquement.

    Quant au fait que ce soit en C ou C++, perso j'en ai jamais fait, et on lui a dit, il a répondu : 'ben c'est pas grave, vous allez apprendre, c'est pas bien dur !!"

    l'énoncé du TP est la : http://jfjava2002.free.fr/tp5.html

    je m'excuse pour le mot classe employé, je voulais dire fonction pour crypt() ...
    Sinon il ne nous est pas interdit de craquer les mots de passe du prof, par contre essayer sur les bécanes de l'université pour récupérer des pass est interdit...y'a une nuance tout de même...

    et puis pour finir, je confirme que cela n'a pas grand intêret, au moinsun, faire plaisir au prof et avoir une bonne note en sécurité pour ratrapper les interros surprise sur les démonstrations des algorithmes de cryptage...!

Discussions similaires

  1. besoin d'aide pour le composant DBComboBox
    Par jane2002 dans le forum Bases de données
    Réponses: 8
    Dernier message: 28/02/2004, 19h01
  2. Besoin d'aide avec postgresql sous windows NT
    Par Chihuahua dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/07/2003, 08h29
  3. [CR] besoin d'aide sur les formules
    Par GuillaumeDSA dans le forum Formules
    Réponses: 4
    Dernier message: 10/07/2003, 12h19
  4. [TP]besoin d'aide pour commandes inconnues
    Par Upal dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 03/10/2002, 10h48
  5. Besoin d'aide pour l'I.A. d'un puissance 4
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 17h05

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