[Résolu] [C] Keygen : Problème sous XP

Tout sur les langages de programmation.

[Résolu] [C] Keygen : Problème sous XP

Messagepar haiklr » 29 Août 2005, 18:11

Bonsoir !

Après une bonne heure de galère sur msn avec Madchild, je m'en remets à vous .. :lol:

Il s'agit donc d'un keygen en C développé sous Dev-C++ dont voici tout d'abord la source :

Code: Tout sélectionner
#include <stdio.h>

int main(int argc, char *argv[])
{
    char name[256] = "";
    int i;
    int var1, var2, var3;

    printf("Name: ");
    scanf("%s", name);

    var1=name[2];
    var2=strlen(name);

    for(i=0;i< strlen(name);i++)
    {
    var3+=name[i];
    }

    printf("FIRST-29%c-00%d-%d\n", var1, var2, var3);

    system("pause");
    return 0;
}


EDIT : c'est bon c'est corrigé le problème de variable

Algo tout con .. je compile tout ça, et sous win98SE ça marche nikel, le keygen m'indique bien un serial valide, par exemple pour haiklr : FIRST-29i-006-635 ... mais quand on teste ça sous XP ça commence à merder, et pour haiklr on obtient : FIRST-29a-006-2230200 ..
J'en ai (finement :P) conclu que c'était au niveau de la boucle de somme des différents caractères que ça merdait ... donc je teste cette seule boucle de somme comme ça :

Code: Tout sélectionner
 for(i=0;i< strlen(name);i++)
    {
    var3+=name[i];
    }

    printf("%d\n", var3);


Et là aucun souci aussi bien sous 98 que XP ...
Je m'en remets donc désespèrément aux mains expertes :lol:

Merci d'avance !
Dernière édition par haiklr le 29 Août 2005, 20:25, édité 2 fois.
Avatar de l’utilisateur
haiklr
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 106
Inscription: 16 Août 2005, 20:17

Messagepar Xcodito » 29 Août 2005, 18:34

JE comprends pas bien le hash3, faut-il le lire var3 ou hash3, dans ce cas tu le type comment hash3

Posté après 9 minutes 57 secondes:

après quelques essais, j'ai essayé de reconstitué ton code et j'en déduit celui-ci.


Code: Tout sélectionner
#include <stdio.h>

int main(int argc, char *argv[])
{
    char name[256] = "";
    int i;
    int var1, var2, var3, hash3;

    printf("Name: ");
    scanf("%s", name);

    var1=name[2];
    var2=strlen(name);
   
    var3=0;
    for(i=0;i< strlen(name);i++)
    {
    var3+=name[i];
    }

    printf("FIRST-29%c-00%d-%d\n", var1, var2, var3);

    system("pause");
    return 0;
}


Compiler sous XP avec DevC++, rend le bon résultat

Name: haiklr
FIRST-29i-006-635
Appuyez sur une touche pour continuer...


L'hypothèse est la suivante, var3 n'étant pas initialisé, on peut supposé que XP a pointer sur une zone libre mais pas vide. Mais celà n'explique pas le bug de var1, qui prend la lettre a soit le 2ème (position 1) au lieu de la troisième (position 2). T'es sur que c'est le même code ?

A plus
Avatar de l’utilisateur
Xcodito
Elève
Elève
 
Messages: 47
Inscription: 24 Août 2005, 10:47

Messagepar haiklr » 29 Août 2005, 18:54

Honte à moi ... oui hash3 est bien égal a var3... j'avais juste changé les noms de variable est j'en ai zappé un ..
Désolé pour le dérangement, je relirais mon code la prochaine fois :oops:
Merci pour ta réponse rapide en tout cas !
Je vais voir ce que je peux faire pour var1 :wink:
Avatar de l’utilisateur
haiklr
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 106
Inscription: 16 Août 2005, 20:17


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités