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

Algorithmes et structures de données Discussion :

La protection de mes applications


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    927
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 927
    Par défaut La protection de mes applications
    Bonjour,

    En ce moment je commerciale des applications protéger par une licence digital que j'ai developper moi même.

    En disassemblant (décompilant) il est 98% impossible à un cracker de développer un générateur de licence digital à mon format reconnaissable par mes applis, trop complexes d'ou il faut une durée de 5 à 10 ans pour le décrypter ...... bref.

    Mes applications sont protégés par une licence digital complexes , mise à part qu'ils ne sont pas à l'abris d'un crackage du code (hors de la licence).

    Pour une limitation d'une fonction de mes applis j'extrait des données sur la licence et je compare si les données sont correcte afin d'accepter ou pas la fonction de mes appli.

    Mais il suffit à un cracker de le décompiler et recompiler en remplacant l'instruction CMP et je par NOP à l'endroit approprié.

    Existe t'il donc un alogrithme locale afin d'empêcher un utilisateur de cracker la limitation de fonctions de mes applis ?

    Il y a la solution le stamping , mais un cracker va faire sauter le stamping en décompilant et recompilant mon appli commercialisé.

    Je ne vois pas de solution ; mes applications sont finalement pas l'abris d'un déplombage.

    Merci.

  2. #2
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    À partir du moment où tu donnes la totalité de ton application à quelqu'un qui s'y connaît, il lui sera assez facile de contourner les tests.

    Pourquoi ne pas séparer tes fonctions en bibliothèques dynamiques qui pourront être cryptées ?

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 496
    Par défaut
    Citation Envoyé par yann458 Voir le message
    Existe t'il donc un alogrithme locale afin d'empêcher un utilisateur de cracker la limitation de fonctions de mes applis ?
    Non.

    Aussi complexe que soit ton algorithme, il sera toujours interprété par ton ordinateur et, de là, rien n'empêche un examinateur humain de faire de même et d'adapter ton programme, si le jeu en vaut la chandelle, pour lui faire faire ce dont il a envie.

    Comme le dit prgasp77, le meilleur moyen consiste à chiffrer ses fonctions et à fournir la clé avec la licence. Cette clé peut bien sûr être dupliquée. Certains éditeurs fabriquaient alors des dongles, très difficiles à répliquer, donc, qui se chargeaient de décoder les fonctions tout en gardant secrète la clé privée. Mais là encore, rien n'empêche un utilisateur compétent de récupérer les données décodées en mémoire et de les sauver en lieu sûr.

    Pour qu'une protection par chiffrage soit réellement efficace, il faudrait procéder comme avec les certificats racines X.509 utilisés sur le web et ailleurs : une chaîne de sécurité dont la racine est contrôlée par une autorité de confiance. C'est pour cela que les grands éditeurs ont voulu mettre en place TCPA dans les années 2000. On sait ce que ça a donné.

    La seule méthode réellement efficace est l'obsolescence : il faut publier suffisamment fréquemment pour qu'un logiciel ou une source de données perde d'elle-même tout intérêt avant que le pirate n'ait eu le temps de percer sa protection. Autant que je sache, c'est que fait Microsoft, par exemple.

  4. #4
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Autant que je sache, c'est que fait Microsoft, par exemple.
    Je ne peux pas résister à la blague : « Oui, ils s'arrangent pour que leurs produit soit obsolètes dès leur sortie, ainsi ils ne craignent pas d'être piratés. »

  5. #5
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    927
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 927
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Non.

    Aussi complexe que soit ton algorithme, il sera toujours interprété par ton ordinateur et, de là, rien n'empêche un examinateur humain de faire de même et d'adapter ton programme, si le jeu en vaut la chandelle, pour lui faire faire ce dont il a envie.

    Comme le dit prgasp77, le meilleur moyen consiste à chiffrer ses fonctions et à fournir la clé avec la licence. Cette clé peut bien sûr être dupliquée. Certains éditeurs fabriquaient alors des dongles, très difficiles à répliquer, donc, qui se chargeaient de décoder les fonctions tout en gardant secrète la clé privée. Mais là encore, rien n'empêche un utilisateur compétent de récupérer les données décodées en mémoire et de les sauver en lieu sûr.

    Pour qu'une protection par chiffrage soit réellement efficace, il faudrait procéder comme avec les certificats racines X.509 utilisés sur le web et ailleurs : une chaîne de sécurité dont la racine est contrôlée par une autorité de confiance. C'est pour cela que les grands éditeurs ont voulu mettre en place TCPA dans les années 2000. On sait ce que ça a donné.

    La seule méthode réellement efficace est l'obsolescence : il faut publier suffisamment fréquemment pour qu'un logiciel ou une source de données perde d'elle-même tout intérêt avant que le pirate n'ait eu le temps de percer sa protection. Autant que je sache, c'est que fait Microsoft, par exemple.
    Merci je chiffré bien mes fonctions , mais comment ????
    Connaissez-vous des utilitaires free pour ce genre d'opération ?

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 496
    Par défaut
    N'importe quelle bibliothèque fera l'affaire. OpenSSL est très bien pour cela.

    La vraie question est : ton logiciel est-il vraiment si exceptionnel qu'il vaille la peine d'être protégé de cette façon ? Si, en plus, tu monnaies ton application et que tu la rends complètement propriétaire et fermée, c'est un peu gonflé de vouloir recourir à des solutions libres pour la protéger.

    Publie plutôt une application en freeware (voire en licence libre) limitée dans ses fonctions et propose la version complète moyennant finances avec un prix adapté à ce que les différentes catégories de personnes seraient prêtes à payer.

    Surtout que :

    En disassemblant (décompilant) il est 98% impossible à un cracker de développer un générateur de licence digital à mon format reconnaissable par mes applis, trop complexes d'ou il faut une durée de 5 à 10 ans pour le décrypter ...... bref.
    C'est peut-être vrai mais je demande à voir quand même. À moins d'avoir un doctorat en mathématiques qui te permette de prouver scientifiquement que ce n'est pas faisable en un temps raisonnable (même compte tenu de l'évolution en puissance des machines futures), « compliquer » arbitrairement la fonction n'est pas un gage de sécurité. Les cryptologues sont habitués à ce genre de facétie et finissent par retomber sur leurs pattes assez rapidement.

  7. #7
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    927
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 927
    Par défaut
    OpenSSL ?
    non , elle gére plutot des certificats X509 et crypter mais elle ne crypte pas spécialement des DLL (library) , et je ne pense pas si je me trompe qu'elle crypte des DLL.

    Si elle crypte ceux-ci , comment fait t'on ? car je connais pratiquement rien sur OpenSSL.

    Merci

  8. #8
    Membre expérimenté Avatar de Acrim
    Profil pro
    En recherche d'emploi
    Inscrit en
    Septembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Septembre 2010
    Messages : 134
    Par défaut
    Il existe effectivement des outils qui 'cryptent' les fonctions que tu veux protéger ,qui mettent en place des mécanismes de défenses (antidebug, antidesassamblage, antidump, anti-vm, émulation etc), création de centaines de couches pour ralentir l'analyse, decryptage à la volée des parties cryptées et recryptage direct derrière pour que le code ne soit jamais totalement présent en mémoire, création de clefs dépendantes de la machine sur laquelle le logiciel est installée etc.

    On arrive à un tel point qu'il arrive parfois que la protection devient une plaie pour les utilisateurs "légitimes". Et qui dit méthodes génériques de protection dit aussi méthodes génériques pour casser la protection. Mais effectivement cela complique l'analyse.

Discussions similaires

  1. Réponses: 10
    Dernier message: 01/08/2006, 14h16
  2. Réponses: 7
    Dernier message: 12/07/2006, 10h24
  3. Protection de l'application Delphi
    Par marcus333 dans le forum Débuter
    Réponses: 2
    Dernier message: 28/03/2006, 21h47
  4. Réponses: 10
    Dernier message: 16/03/2006, 11h31
  5. Protection de son application
    Par FFF dans le forum Sécurité
    Réponses: 14
    Dernier message: 22/11/2005, 14h55

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