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 :

Interdire (sécurisé) la copie de mon application


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de devlopassion
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2006
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Août 2006
    Messages : 576
    Par défaut Interdire (sécurisé) la copie de mon application
    bonjour tlm,

    - je voudrais si c'est possible , sécurisé ou controler la copie ou l'instalation de mon application ; pour qu'elle ne soit pas utilisé par n'importe qui sans mon accord.

    Merci

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Malheureusement aucune méthode n'est vraiment efficace. Les plus grand éditeurs (Microsoft, etc...) sont ultra piraté, et ceci malgré des sommes astronomiques dépensées dans la protection logicielle.

    Mais si c'est pour un usage a très petite échelle, tu peux envisagé des petites protections qui seront inefficaces contre des "pirates" avertis, mais suffisantes pour des utilisateurs lambda.

    Regarde sur cette page, tu trouvera quelques conseils basiques.

    Bon courage

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 59
    Par défaut
    C'est un gros travail que tu attaque ici, personnellement j'ai passer presque un an a protège une applic (le résultat n'est pas parfait, je passe au travers facilement mais je connait mon algo)

    les solutions que j'ai retenue :
    - Packer l'applic (verifier si sa taille a changer pendant l'exécution)
    - Check somme sur le code en interne
    - Vérifier si il y a de breakpoint de mis sur des endroit critique
    - auto-modification du code a l'exécution
    - Vérification si des debbugers sont présent
    - Pas de message d'erreur en cas de détection de crack mais plantage aleatoire...

    Voila pour les plus général ce qu'il faut absolument c'est que chaque fois que le crackeur pense avoir finit il se retrouve après quelque temps devant un nouveau problème.. pour finir par le décourager (sans grand espoir )

    D. d.

  4. #4
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Si c'est pour une application commerciale sur un ordinateur de bureau, tu as également l'option de passer par une protection physique (sous la forme de mini-clé USB) qui est nécessaire pour le démarrage de l'application.

    Dans tous les cas, aucune méthode n'est sûr à 100%.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Par défaut
    Bonjour,

    Citation Envoyé par Didier Derain Voir le message
    - auto-modification du code a l'exécution
    Pourrais-tu, s'il te plait, expliquer en quoi consiste cette étape?

    Merci d'avance,

    Benjamin

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 59
    Par défaut
    En fait je modifie une partie de mon code pendant l'exécution de façon a brouiller un peu les pistes..

    Un petit exemple ci dessous (une Form avec 2 boutons et un label)
    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
     
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    int chx;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
        LPVOID addressdebut;        // pointeur sur le debut du code
        unsigned long oldprotect;  //ancienne protection
        char *chardest;
        int result;
        asm{
        mov dword ptr addressdebut,offset [sa_roule] //on calcul l'adresse du code a deplacer
        }
        chardest = (char *) addressdebut;
        // Ici on autorise l'ecriture dans la section code
        result = VirtualProtect(addressdebut,6,PAGE_EXECUTE_READWRITE,&oldprotect);
        chardest[0]=0x90;
        chardest[1]=0x90;
        chardest[2]=0x90;
        chardest[3]=0x90;
        chardest[4]=0x90;
        chardest[5]=0x90;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
        asm{
            sa_roule:
            }
            chx=chx+1;      // se que l'on va modifier
            Label1->Caption=chx;
    }
    //---------------------------------------------------------------------------
    Le bouton 2 incremente chx et affiche dans le label
    Le bouton 1 va changer le code dans Button2click remplacer chx=chx+1 par des NOP...

    Voila pour le principe après on peut faire bien plus compliqué ...

    D. d.

  7. #7
    Membre éclairé Avatar de devlopassion
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2006
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Août 2006
    Messages : 576
    Par défaut
    - merci beaucoup pour les reponses , c vrais qu'il n y a pas de solution 100% sure.

Discussions similaires

  1. Interdire un 2eme click sur mon application
    Par andreditdd dans le forum Débuter
    Réponses: 6
    Dernier message: 20/04/2009, 22h09
  2. Comment faire générer du rtf par mon application?
    Par nickylarson dans le forum C++Builder
    Réponses: 3
    Dernier message: 13/08/2003, 09h35
  3. [Access] Mon application est détruite !!!
    Par mathias dans le forum Access
    Réponses: 4
    Dernier message: 26/06/2003, 14h14
  4. Réponses: 7
    Dernier message: 26/06/2003, 09h11
  5. Impossible de quitter mon application!
    Par Bouillou dans le forum C++Builder
    Réponses: 4
    Dernier message: 12/11/2002, 20h43

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