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++Builder Discussion :

Créer une version d'évaluation [À faire]


Sujet :

C++Builder

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut Créer une version d'évaluation
    Bonjour les gens,

    J'aimerai faire de mon logiciel un shareware, genre évalution 30jour par exemple et proposer un enregistrement par serial. Mais ne sais pas quel est le meilleur moyen et le plus sûr (par exemple je me souviens sur les applications Win9x on changeait la date de l'horloge windows ou dans le bios et l'applcation fonctionnait de nouveau.

    Si quelqu'un à une idée pour faire ce genre d'application...

    Merci

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    Ben, je n'ai jamais fait ca, mais voici à froid quelques idées:
    - Si l'utilisateur dépasse la date limite, tu changes une clé qqpart que tu consultes en plus de la date. Comme ça, s'il change la date APRES, elle n'a plus d'effet.
    - Si l'utilisateur est plus malin et bloque à chaque fois son horloge, tu peux consulter un serveur sur le web pour avoir une date "neutre", mais il faut une connexion internet. Si c'est à chaque fois la même date, tu peux sauver la date à la fin de la session et vérifer au début de la suivant que la date réelle est bien postérieure à celle sauvée
    - Tu peux peut-être aussi trouver un fichier système qui est modifié par windows régulièrement et contient donc une date postérieure, auquel cas, tu récupère une "preuve" que l'utilisateur a modifié sa date
    - Plus trop d'idées maintenant.

    Reste à empêcher le contournement de ces méthodes (notamment la clé modifiée) mais c'est un autre problème.

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut Ce que je pense
    Merci pour ta réponse... Le hic de la date système est facile à récupéré, et de plus, si l'utilisateur change 'heure de son horloge après l'installation pour la mettre à l'heure, le programme va se brider... Enfin, c'est là que je me rends compte que ce n'est pas facile de faire un shareware, enfin en partant de nulle part.

    Perso, je ne sais pas si c'est une bonne idée, mais j'aimerai mettre un numéro de série qui est dépendant du numéro de série du disque dur et une clé qui sera généré aléatoirement lors de l'installation. L'ensemble de ces deux clés formeront une troisième clé final. Par contre, là j'empêche une copie pirate du logiciel, ce qui est déjà bien mais rien à voir avec une version shareware.

    En conclusion, je suis toujours à l'écoute d'une solution pour brider le soft à une intervalle de temps (1 mois par ex).

    A bientôt j'espère.

  4. #4
    Invité
    Invité(e)
    Par défaut Idée ?
    Tu peux aussi compter le nombre d'exécution du programme que tu écris dans un fichier crypté...

  5. #5
    mat.M
    Invité(e)
    Par défaut Re: Ce que je pense
    Citation Envoyé par kurkaine
    Perso, je ne sais pas si c'est une bonne idée, mais j'aimerai mettre un numéro de série qui est dépendant du numéro de série du disque dur et une clé qui sera généré aléatoirement lors de l'installation. L'ensemble de ces deux clés formeront une troisième clé final. Par contre, là j'empêche une copie pirate du logiciel, ce qui est déjà bien mais rien à voir avec une version shareware.
    Et si je prends wdisam ou Turbo Debugger je trace pas à pas et tombe sur la routine qui teste cette clé ?
    J'y replace un JMP adresse en assembleur ? 8)

  6. #6
    Membre éclairé
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Points : 786
    Points
    786
    Par défaut Pourquoi tu n'utilise pas les registres
    Pourquoi tu n'tulise pas les registres de bâse de Windows !
    J'enre mettre une clé dans une prmière place qui veu dire que le soft à bien été installer au moins une fois,et une autre pour le comte à reboure (à toi de faire comment la crypter ou je ne sais quoi ?)

    et se qui concerne le Windasm,OllyDbg,SoftIce... tu peu arréter les crackeur débutant seulement avec une compression de ton executable
    Example : Armadillo,Asprotect,FSG et plein d'autre....

    Plus tu prends part aux joies et chagrins des gens, plus ils te sont proches et chers. Mais c'est le chagrin et les problèmes qui vous rapprochent le plus.

    (Mark TWAIN)

  7. #7
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut Et la base de registre
    En fait, je n'ai jamais utilisé la base de registre. J'ai déjà fait des regedit sous windows, certes, mais je ne sais pas quelles sont les informations que l'ont peut stocker, à quel endroit (j'imagine que c'est dans Local\Software) dans quel interêt, et comment faire.

    Si quelqu'un peut me donner une piste, ce serait sympa.


    En ce qui concerne les desassembleurs, c'est sûr que l'application sera hacké vite fait bien fait, mais dans un premier temps, il s'agit d'empêcher une reproduction illégal par l'utilisateur (il s'agit d'une application pour particulier, pour l'instant je n'envisage pas de la vendre au public, mais je ne tiens pas que mon client diffuse l'appli dans différentes structures).

    Merci... Au fait, si quelqu'un à un lien pour utiliser wdisam... J'aimerai bien comprendre comment se fait-il qu'il soit si simple d'hacker un programme.

  8. #8
    Membre éclairé
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Points : 786
    Points
    786
    Par défaut Précieux ton soft ;-)
    http://c.developpez.com/faq/bcb/?page=systemeregistre
    Pour ce que c'est la base de registre !


    Aprés avoir compris ce que c'est ,et comment stocker des informations à toi ;-) signalant que ton soft est bien enregistré ou pas ! il faudra pensé à une protection plus au moins éfficace pour ton jolie et précieux soft;par example vérifier si c'est bien le disque dûre du client que tu veux lui livrer ton application,sinon >:-) détruit ça machine lol je plaisante !!!


    Comment faire pour connaître le No de serie du disque dûre ?
    http://c.developpez.com/faq/bcb/?pag...eroseriedisque



    Rq:Faut pas trop jouer avec tes clé de registre,et surtout celles de ton client ! Tu peut tout ... en l'aire !! :-(
    Plus tu prends part aux joies et chagrins des gens, plus ils te sont proches et chers. Mais c'est le chagrin et les problèmes qui vous rapprochent le plus.

    (Mark TWAIN)

  9. #9
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut Ou est le danger ?
    Hey, tu m'as fait peur. Quelles sont les bétises à ne pas faire pour ne pas détruire ma base de registre ? Encore celle du client, ça passe, mais pas la mienne. Mais par contre, mettre une clé dans la base de reg, c'est pas malin non ? Ca revient à mettre un fichier texte avec le numéro de série dedans ? Les utilisateurs ont accés... Enfin, je vais chercher... Merci pour tes liens, et pour vos réponses...

  10. #10
    Invité
    Invité(e)
    Par défaut Regedit
    N'oubliez pas que l'arborescence de la base de registre varie suivant la version de Windows.

    Verifiez bien que l'arborescence que vous attaquez est la même dans Windows 95 98 98se Win 2000, Win XP ...

    Personellement je l'utilise au minimum.

  11. #11
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut base de registre
    En gros, tu déconseilles d'utiliser la base de registre ? Je crois que je vais suivre ton conseil, que mon appli plante c'est une chose, mais que l'OS du client plante...

    Je me demande toujours comment peut-on réaliser un shareware qui se bride par rapport à une date donnée, sans pour autant tenir compte de l'horloge système (si l'utilisateur change son heure)...

  12. #12
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut
    Désolé pour le retard,

    CE QUE J'AI FAIS :
    en résumé j'ai utiliser la base du registre pour faire mais sauvegardes, j'ai quatre variables de type date (iData, dDate,mDate,cDate), et une nExec entière pour le verrou total ainsi que pour le sérial, ici je suppose que l'enregistrement par sérial ce fait ailleurs (si l'utilisateur tape la bonne combinaison du sérial, alors nExec contiendra la valeur 1350)

    Donc commençons :


    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    //
    // DECLARATION DES VARIABLES DATE
    //
      TDateTime iDate ,
                dDate ,
                mDate ,
                cDate ;
     
      int nExec ;
     
      cDate = Date() ;
     
    //
    // INSTANCIATION SUR LE REGISTRE
    //
      TRegistry *RegEdit = new TRegistry();
     
      try
        {
          RegEdit -> RootKey = HKEY_LOCAL_MACHINE ;
     
          if(RegEdit -> OpenKey("\\Software\\kmaniche\\", false))
             {
               iDate = RegEdit -> ReadDate   ("iDate") ;
               dDate = RegEdit -> ReadDate   ("dDate") ;
               mDate = RegEdit -> ReadDate   ("mDate") ;
               nExec = RegEdit -> ReadInteger("nExec") ;
     
               if(nExec != 1350)
                 if((nExec != 27414)||((cDate<iDate)||(cDate>mDate)||(cDate<dDate)))
                   {
                     RegEdit -> WriteInteger("nExec", 41472) ;
                     Application -> Terminate() ;
                   }
                 else
                     RegEdit -> WriteDate("dDate", cDate) ;
             }
          else
             {
              RegEdit -> OpenKey("\\Software\\kmaniche\\", true) ;
              RegEdit -> WriteDate   ("iDate", cDate) ;
              RegEdit -> WriteDate   ("dDate", cDate) ;
              RegEdit -> WriteDate   ("mDate", cDate+30) ;
              RegEdit -> WriteInteger("nExec", 27414) ;
             }
        }
      __finally
        {
          if(RegEdit)
            delete RegEdit ;
        }
    AVEC L'ENTETE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include <registry.hpp>
    VOUS POUVEZ L'ESSAYER IL MARCHERAS SANS PROBLEMES (ENVOYER MOI VOS REMARQUES)

    Ce qui reste, j'ai pas fais la gestion dans le cas ou l'utilisateur bloc la date, pour cela je propose d'ajouter une autre variable qui contiendras la dernière heures système qui correspond à la dernière exécution, si cette variale ne change pas, ou l'heure actuelle elle est inférieur à cette dernière, alors le programme , mais il existe une solution + prof :

    EXPLICATION :
    J'utiliserai toujours le registre, mais cette fois-ci j'enregistre le chemin du logiciel dans le lancement de Windows (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run) avec une ligne de commande genre « c:\monlog\shk.exe /autorun » le tout donnera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\c:\monlog\shk.exe /autorun
    que je récupérai avec :
    ParamStr(cpt) qui sont les paramètres de la ligne de commandes !! , ici cpt = 1 ; que je l'implémante dans la source du projet :

    Menu Project -> View Source

    voici le code :
    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
     
    WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
    {
        if(ParamStr(1).LowerCase() == "autorun")
           {
             j'enregistre la date/l'heurs actuelle dans le registre,
             return 0 ;
            }
     
            try
            {
                     Application->Initialize();
                     Application->CreateForm(__classid(TForm1), &Form1);
                     Application->Run();
            }
            catch (Exception &exception)
            {
                     Application->ShowException(&exception);
            }
     
           return 0;
    }
    et se qui concerne le Windasm,OllyDbg,SoftIce, Debugexe, exetoasm, execode... une solution s'impose :
    Il faut codé toutes les chaines de caractére du code source, comment par exemple : le code XOR, mais bien s^^ur il faut le faire,

    Mais par contre pour l’utilisation des registres néanmoins il faut être sûr de soi-même sinon

    @+
    Les règles Les cours La fonction rechercher

    N'oubliez pas de mettre en et de voter.

    La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !

  13. #13
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut
    J'ai oublier,

    copier le 1er code par exemple dans oncreate de la fiche principale ...

    @+
    Les règles Les cours La fonction rechercher

    N'oubliez pas de mettre en et de voter.

    La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !

  14. #14
    Membre éclairé
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Points : 786
    Points
    786
    Par défaut Nombre d'éxecution restant
    Salut ! je suis ravis que t'as apris aussi vite d'utiliser les Registres ;-)

    J'ai juste une remarque à faire : et si quelqu'un tout simplement supprimera ta clé de registre("HKEY_LOCAL_MACHINE\\Software\\kmaniche") esque ton application va prendre en compte ça ?je veu dire esqu'elle va être arrétée ?


    Une autre solution si tu veux :
    Si tu va lui installer ton soft toi même (c'est ce que je suppose) !
    Bain t'as qu'à mettre un fichier quelque pars (Par example c:\Windows\System32, enfin le repertoire de ton System32)

    Ce fichier va contenir trois informations !
    Tu mettra son code unique puisque tu va le calculé par son No de serie de son Disque dûre ! Et tous ça pour que ton application,quand elle démarre elle vérifie si ce fichier est bien présent sinon pas touche !
    Bon dans le cas ou il est présent ,il vérifie si le code présent dans ce fichier est bien celui que t'as calculé depuis son No serie,sinon aussi pas touche !
    Et si c'est le bon No serie,donc reste à vérifier s'il est enregistrer ou pas en mettant une autre donnée qui signifie s'il est enregistré ou pas(de type booléen par example),s'il n'est pas enregistré tu vérifie une autre donnée qui est le nombre d'éxecution restant (au lieu du temps restant) si ce nbr est superieur à 0 donc continuer l'utilisation de ton application sinon pas touche encore une dernière fois !

    example du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    No serie=123456789
    enregistré=non
    reste à executer=15



    Rq: pour le fichier que tu va mettre,tu peu utilisé les fichier INI,et pour plus de discrétion tu le renomme en .dll ou .ocx ou n'imposrte quoi par example : "BlablaXP.dll"


    Bon,si c'est pas claire,tu me fais signe Ok !
    Plus tu prends part aux joies et chagrins des gens, plus ils te sont proches et chers. Mais c'est le chagrin et les problèmes qui vous rapprochent le plus.

    (Mark TWAIN)

  15. #15
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut
    Salut,

    L'utilisation des registres ce n'étais qu'un premier exemple ; On pourai faire les ch^oses comme le fait DEEPFREEZ

    mais pour tes fichiers .dll, .ocx ect, tu ne bleufra que les débutants, mais avec un bon info et SoftIce (par exemple) on le sera...

    Mais par contre pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HKEY_LOCAL_MACHINE\\Software\\kmaniche
    je peu l'écrire sous la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String(char(72))+String(char(75))+String(char(69))+String(char(89))+String(char(95))+String(char(76))+String(char(79))+String(char(67))+String(char(65))+String(char(76))+String(char(95))+String(char(77))+String(char(65))+String(char(67))+String(char(72))+String(char(73))+String(char(78))+String(char(69))+String(char(92))+String(char(92))+String(char(83))+String(char(111))+String(char(102))+String(char(116))+String(char(119))+String(char(97))+String(char(114))+String(char(101))+String(char(92))+String(char(92))+String(char(107))+String(char(109))+String(char(97))+String(char(110))+String(char(105))+String(char(99))+String(char(104))+String(char(101))
    Pour faire une bonne version d'évaluation, il faut beucoup de et avec un peut de volanté on arrive à

    fais nous des propositions ...
    [A Suivre...]
    Les règles Les cours La fonction rechercher

    N'oubliez pas de mettre en et de voter.

    La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !

  16. #16
    Membre éclairé
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Points : 786
    Points
    786
    Par défaut Méthode XOR
    example de fct de cryptage de fichier avec la méthode XOR

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
     
    bool Crypter_Fichier(char* nom_complet_fichier,char* Clef_cryptage)
    {
     
    char *Fichier_Temp="c:\\temp";//Par example
     
    FILE *Ptr_FICHIER=fopen(nom_complet_fichier,"rb");
    FILE *Ptr_TEMP=fopen(Fichier_Temp,"wb");
    /*Le fichier temp pour le résultat du cryptage (ou le décryptage !)*/
     
     
    if(Ptr_FICHIER!=NULL && Ptr_TEMP!=NULL)//Si les fichiers ont bien été ouvert
    {
    short Index_Cle=0;
    char caractere_lu=fgetc(Ptr_FICHIER);//Lecture du prmier caractère
    while(!feof(Ptr_FICHIER))//Tantque on a pas parcouru tout le fichier
            {
            caractere_lu^=Clef_cryptage[Index_Cle];
    /*On a fait c=c XOR Clef_cryptage[j](on xor le crractère lu)*/
     
     
            fputc(caractere_lu,Ptr_TEMP);
     
    /*Au lieu d'écrire dans un fichier temporel sur disque dûre,on aurai pu écrir dans une mémo lors du décriptage,ça serai mieux pour ne pas avoire le fichier d'écrypté en claire sur disque dûre
                              (la mémo est invisible biensûre !)*/
     
     
    /*on vérifie si la fin de la clé n'est pas ateint,si oui on revien au début de la clé :  */
            if(Clef_cryptage[Index_Cle]=='\0')
                    Index_Cle=0;
            else
                    Index_Cle++;
     
            caractere_lu=fgetc(Ptr_FICHIER);
            }
    fcloseall();//Fermeture des deux fichier
    /*Remplacer le fichier à crypter(ou à décrypter) par le fichier temp : */
     
    MoveFileEx(Fichier_Temp,nom_complet_fichier,
    MOVEFILE_REPLACE_EXISTING);
     
    return true;
    }
    else//On cas ou les fichier n'ont pas été ouvert
    return false;
    }
    l'appel se fait par example :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    char* FICHIER="C:\\je sais pas ou\\fichier.ini";
    char* Clef="Cle secrete pour crypter ou decrypter";
    Crypter_Fichier(FICHIER,Clef);

    Si on un fichier qui contient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    No serie=123456789
    enregistré=non
    reste à executer=15
    ça va nous donner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ES
    XEWKPRNQ8zaoE 
    Z	nNfE
    ;-)

    Rq : Crypter un fichier deux fois te donnera le même fichier ;-)


    Encore une chose : Soit sûre que tu ne sera pas à l'abri des Cracker professionnel

    a+
    Plus tu prends part aux joies et chagrins des gens, plus ils te sont proches et chers. Mais c'est le chagrin et les problèmes qui vous rapprochent le plus.

    (Mark TWAIN)

  17. #17
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut Retard
    Merci de vos réponses, je bossais sur une autre appli à finir d'"urgence"... Pfff... Je reviens sur ce pb de shareware.

    J'ai une question qui a déjà été posé, mais j'aimerai avoir confirmation. Quand nous allons migrer sur la prochaine version de Windows, la base de registre ne sera pas forcément suivant la même hiérarchie, alors comment être sûr que mon programme sera évolutif ?

    Merci encore pour vos réponses, pour l'instant je vais m'interesser au bridage du nombre d'exécution en copiant des infos dans un fichier.

    Je tiens au courant.

  18. #18
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut nb d'exécution
    Ton code pour brider un programme marche très bien, c'est exactement ce que je recherchais pour brider le nbre d'exécution d'un programme. Toutefois, il reste à ce niveau un souci (pour tromper les utilisateurs non informaticien). Si on remplace le fichier contenant le nombre d'exécution par un autre généré au moment de l'installation, l'application ne se bridera jamais, puisqu'il sera toujours consideré comme une nouvelle installation du soft.

    Du coup, la solution la plus simple consiste à cacher qq part sur le disque le fichier contenant ces informations sinon on ne s'en sort plus.

    Par contre, je ne suis pas très convaincu par la date sauvegardé dans la base de registre. J'ai peur de buggé l'ordi du client... Quelles sont les erreurs à ne pas faire pour éviter ce cas ? (j'ai déjà planté mon windows en effaçant une entrée manuellement).

    Merci de vos réponses en tout cas.

    PS: si qq'un a un site ou je peux récupérer un tutorial d'utilisation d'un desassembleur, j'aimerai beaucoup comprendre par quelle magie on fait ces fameux JMP.

  19. #19
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    bonjour,
    il existe une serie de composants appellée TurboPower OnGuard que tu peux trouver gratuitement sur SourceForge qui te permettrons de protéger de manière simple et sans prendre trop de temps ton Application

    Cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  20. #20
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut "is not a design time package"
    J'ai enfin trouvé le temps de tester TurboPower OnGuard, mais je n'arrive pas à installer les package car je reçois le message d'erreur suivant lors de l'installation du package : "...si not a design time package".

    J'ai bien ajouté le path source dans BCB, mais j'ai toujours ce message. Est-ce que quelqu'un a déjà réussi à utiliser cette bibliothèque ?

    Merci

Discussions similaires

  1. Créer une version d'évaluation d'un exécutable
    Par colorid dans le forum Langage
    Réponses: 2
    Dernier message: 20/12/2010, 11h20
  2. Créer une version d'essai/évaluation
    Par J.Séverin dans le forum VB.NET
    Réponses: 2
    Dernier message: 12/08/2010, 17h26
  3. Télécharger une version d'évaluation
    Par nant44 dans le forum MATLAB
    Réponses: 1
    Dernier message: 12/09/2007, 10h33
  4. Faire une version d'évaluation
    Par ArkAng3 dans le forum MFC
    Réponses: 1
    Dernier message: 23/01/2006, 20h53

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