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

Lazarus Pascal Discussion :

Sécuriser mon application [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre éclairé
    Avatar de FOCUS77
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 680
    Points
    680
    Par défaut Sécuriser mon application
    Bonjour à tous

    En vue de sécuriser mon application, je veux que celle ci vérifie l'IdMachine.
    J'ai téléchargé et exécuté un utilitaire 'MIDDemo' depuis
    http://www.ionworx.com/machineid.html il a donné le résultat suivant:
    7FF4-1EA1-D4DA-7650
    La question est comment intégrer cet Id dans un Code afin que l'application l'utilise.

    merci d'avance.

  2. #2
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Salut, je vois pas trop pourquoi tu cherche à faire ça ! Car ton Application sera utilisable que sur ta machine mais bon

    Tu peux toi même récupérer des infos genre Type d'os, nom d'utilisateur du système, version de l'os ect..... tu fais une belle chaîne de caractères ou de Bytes et tu fais un hash dessus. Tu pourras ainsi identifier une machine grâce à ça avec une simple comparaison. Attention une fois cet ID unique créé tu devras le crypter pour plus de sécurité et l'insérer dans ton application avec Const mySecureID = MyUID pas exemple ou un grâce à autre mécanisme (dans un ficher caché par exemple).
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  3. #3
    Membre éclairé
    Avatar de FOCUS77
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 680
    Points
    680
    Par défaut
    Salut Beanz

    Mon application est à usage commercial, elle sera distribuée sur plusieurs machines et je veux préserver mes droits d'auteur.
    en fait j'ai trouvé une petite doc ici
    mais j'ai pas su utiliser ses fonctions.

    merci.

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Bonjour !

    En suivant l'un des liens donnés plus haut, j'ai trouvé cette solution basée sur la fonction GetVolumeInformation de l'unité Windows. C'est une fonction qui permet d'obtenir le n° de série d'un disque. Ça peut peut-être faire l'affaire ?

    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
    (* http://www.phidels.com/php/index.php3?page=../php/pagetelechargementzip.php3&id=148 *)
     
    Function NumSerieDisque(RepertoireRacine:String):DWord;
    var
      Repertoire:PChar;
      NomVolume: array[0..255] of Char;
      NumSerie:DWORD;
      LongeurMaxNomFichier:DWORD;
      TypeCase:DWORD;
      FileSystem: array[0..255] of Char;
    begin
      Repertoire:=PChar(RepertoireRacine);
      if not GetVolumeInformation(Repertoire,NomVolume,SizeOf(NomVolume),@NumSerie,
                     LongeurMaxNomFichier,TypeCase, FileSystem,sizeOf(FileSystem))
      then ShowMessage('erreur');
      Result:=NumSerie;
    end;
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  5. #5
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Bonjour,

    Ne perdez pas votre temps avec ce genre de protection, c'est complètement illusoire ...

    ... ça se cracke en quelques minutes maximum : ça fait partie des premiers trucs qu'on apprend pour cracker.
    Si les cons volaient, il ferait nuit à midi.

  6. #6
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Bonjour droggo !

    Citation Envoyé par droggo Voir le message
    ... ça se cracke en quelques minutes maximum
    Sans doute, pourvu qu'on ait le temps, la motivation et les connaissances nécessaires, ce qui exclut quand même pas mal de monde n'est-ce pas ? D'autant que cet hypothétique craqueur, contrairement aux lecteurs de cette discussion, n'est pas censé savoir de quelle méthode on s'est servi pour protéger le programme.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  7. #7
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Bonjour,
    Citation Envoyé par Roland Chastain Voir le message
    Bonjour droggo !



    Sans doute, pourvu qu'on ait le temps, la motivation et les connaissances nécessaires, ce qui exclut quand même pas mal de monde n'est-ce pas ? D'autant que cet hypothétique craqueur, contrairement aux lecteurs de cette discussion, n'est pas censé savoir de quelle méthode on s'est servi pour protéger le programme.
    Certes, mais ces méthodes basiques sont celles que l'on cherche en premier lieu, et elles sont plutôt faciles à trouver et à contourner : elles finissent toujours par la comparaison de 2 valeurs pour renvoyer le résultat considéré comme ok.

    Mais après tout, si ça vous amuse...

    ... avec petite précision : les applications crackées sont celles que les utilisateurs trouvent utiles mais trop chères pour ce quelles font, tenez-en compte.
    Si les cons volaient, il ferait nuit à midi.

  8. #8
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 469
    Points : 1 100
    Points
    1 100
    Par défaut
    Bonjour

    Oui, droggo a raison, ce genre de protection et d'autres se craquent très facilement.

    Elles ont surtout, avant cela, pour effet de compliquer les installations et réinstallations et occupent souvent beaucoup de temps en SAV, tout en gênant les utilisateurs.
    Et bien souvent, elles découragent tout simplement les achats car, outre le coût, un système de protection réalisé par un développeur isolé ou une toute petite structure n'est pas perenne.

    La diffusion des binaires seuls ne remet pas en cause les droits d'auteur.
    En l'absence de protection, il pourra évidemment exister des copies sauvages, mais de toutes façons, ceux qui les font n'achèteraient pas.

    Aujourd'hui tout cela est dépassé et le modèle économique consiste plutôt à faire payer des services, et aussi à s'attacher ses clients par le stockage de données sur des sites.
    Cordialement,
    Tintinux

    Initiateur de Gestinux, une comptabilité gestion open-source, pour Linux, Windows et Mac OS.
    Une version stable et une autre en développement, avec Lazarus : vous pouvez aider à la tester, la traduire et à la développer.

  9. #9
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Tout ceci est vrai au niveau sécurité. Il existe de nombreux logiciel connus qui utilise un système de clef.
    De plus pour cracker faut avoir les connaissances et le temps ce qui n'est pas la majorité des gens.

    "ce genre de protection est facile"
    Ben la tout dépend du système mis en place car si tu te fait ton propre algo + cryptage + des "HoneysPot" (cad des truc qui servent a rien dans ta génération et/ou vérification du code) perso le Cracker à plutôt à être bon et pas être de Belin ou de Ben et Nuts. Et surtout faut qu'il est du temps à perdre. Car le ratio temps perdu / coût du logiciel est à prendre en compte. Cela dépendera du publique visé et si tu vend ton logiciel 3000€ y'aura peut-être un petit malin qui s'y essayera.

    Pour m'être essayé par curiosité à ce genre de pratique étant plus jeune, ce n'est pas si simple (debuggeur+disassambleur+Editeur Hexa) + si Apres vérification par le net faut sniffer les données envoyées et reçues. C'est tout de même pas une mince chose à faire.

    A mon avis si tu veux distribuer et protéger ton logiciel le mieux cela serai soit de passer par une protection qui passerai par une connexion internet pour la vérification du code et des données comme on le voit souvent depuis quelques temps. Soit tu réalises une version Demo bridée gratuite et si l'utilisateur est intéressé il t'achete ton logiciel et tu lui fais parvenir la version complète.

    Le problème avec un clef qui bride ton logiciel au niveau machine c'est que si l'ordinateur de ton client tombe en rade et qu'il veut le résinstaller sur un portable par exemple ca sera impossible. Tu devra donc prévoir soit un bon SAV soit une licence pour plusieurs poste.

    Voila tout ceci n'engage que moi bien sur

    A+
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  10. #10
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Bonjour,
    Citation Envoyé par BeanzMaster Voir le message
    Ben la tout dépend du système mis en place car si tu te fait ton propre algo + cryptage + des "HoneysPot" (cad des truc qui servent a rien dans ta génération et/ou vérification du code) perso le Cracker à plutôt à être bon et pas être de Belin ou de Ben et Nuts
    Il n'y a pas besoin de comprendre le mécanisme générant la clé, il peut faire des pages de code, voire même être réparti dans différentes positions du code : ça se termine toujours par une comparaison renvoyant le code désiré pour savoir si c'est ok ou non, et bingo.
    Si les cons volaient, il ferait nuit à midi.

  11. #11
    Membre éclairé
    Avatar de FOCUS77
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 680
    Points
    680
    Par défaut
    Bonsoir à tous

    Tous d'abord laissez moi vous dire que j'étais privé de connexion internet pour près de 24 h
    J'ai lu et respecté les points de vue de chacun de vous.
    Moi je suis optimiste pour la question de cryptage, je n'adopte pas une position passive envers les pirates informatiques,
    bien au contraire un simple code peut éliminer une certaine couche.

    et bien je vous propose un code proche de celui de 'Roland.C' que j'ai trouvé dans ce site et en ajoutant
    Windows à USES.

    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
    function FindVolumeSerial(const Drive : PChar) : string;
    var
       VolumeSerialNumber : DWORD;
       MaximumComponentLength : DWORD;
       FileSystemFlags : DWORD;
       SerialNumber : string;
    begin
       Result:='';
     
       GetVolumeInformation(
            Drive,
            nil,
            0,
            @VolumeSerialNumber,
            MaximumComponentLength,
            FileSystemFlags,
            nil,
            0) ;
       SerialNumber :=
             IntToHex(HiWord(VolumeSerialNumber), 4) +
             ' - ' +      // notant qu'il ya 2 blanc autour de caractère (-).
             IntToHex(LoWord(VolumeSerialNumber), 4) ;
     
       Result :=SerialNumber ;
    end; (*FindVolumeSerial*)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.FormShow(Sender: TObject);
    begin
      if FindVolumeSerial('C:\')<>'067F - D6CC' then
      Application.Terminate ;
    end;
    merci pour vos participations

  12. #12
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par droggo Voir le message
    Bonjour,

    Il n'y a pas besoin de comprendre le mécanisme générant la clé, il peut faire des pages de code, voire même être réparti dans différentes positions du code : ça se termine toujours par une comparaison renvoyant le code désiré pour savoir si c'est ok ou non, et bingo.
    Oui c'est vrai aucune protection à l'heure actuelle n'est pas crackable mais encore faut-il trouver le point d'entré ou s'effectue la comparaison et la c'est beaucoup moins drôle quand tu fais un debuggage et qu'il y a plein de jump et d'appel à des procedures et des tests de comparaison différentes (JNE, JGE ect....) qui servent a rien. Faut quand même être relativement patient. Et comme je le disais faut vraiment s'y connaitre quand même. Et il existe des méthodes pour en faire baver et tenter de décourager un peu plus notre petit biscuit salé.
    Un exemple vite fais trouvé http://www.bases-hacking.org/protect...ecutables.html ensuite il y'a des règles comme ne pas afficher un message du genre "merci vous êtes bien enregistré" ou mettre des TEdit avec des TLabel avec comme texte "Entrez le code"... Ne pas effectuer la comparaison du code lorsque l'on clique sur OK de notre petite boite de saisie (on peut tres bien le faire via notre ou un programme externe s'executant au demarrage de l'os par exemple).
    On pourrais faire une vérification voir plusieurs en 2 ou 3 temps. (une via le net + plus tard au démarrage et encore une plus tard 5 minutes après l'ouverture de notre programme...)
    Faut aussi Crypter aussi les chaines de caractères de la solution pour ne pas qu'elles soient visibles dans W32DASM, ou encore SoftIce, OllyDBG et IDA par exemple.

    Et la franchement si t'arrive à cracker un prog avec toutes ces barrières en moins de 2 t'es un champion

    Bref il existe quand même pas mal de chose à mettre en place pour une "Bonne" protection et d'essayer de décourager le 1er noob venu à cracker le programme. Le truc c'est que c'est long de mettre en place un systeme de ce genre et cela alourdi grandement le travail à faire.
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sécuriser mon application
    Par cho7 dans le forum Général Java
    Réponses: 4
    Dernier message: 12/03/2010, 15h55
  2. sécuriser mon application .net
    Par louzorios dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 20/01/2010, 12h39
  3. sécuriser mon application
    Par louzorios dans le forum VB.NET
    Réponses: 2
    Dernier message: 24/12/2009, 08h59
  4. Sécuriser mon application
    Par sofiane_bfm007 dans le forum Forms
    Réponses: 2
    Dernier message: 04/05/2008, 00h03
  5. [Spring MVC] Sécuriser mon application Web
    Par pinacola dans le forum Spring Web
    Réponses: 16
    Dernier message: 17/03/2007, 23h28

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