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

Langage Delphi Discussion :

cryptage en delphi


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut cryptage en delphi
    Bonjour à tous,

    Pour des raisons de sécurité dans tout mes programmes le mot de passe administrateur est crée préalablement dans le programme et fait partie de l’exécutable crée. Cependant, je me rappelle il ya une vingtaine d'année quant je travaillais avec turbo pascal, en pouvait trouver le mot de passe seulement on éditant l’exécutable dans un éditeur de texte et je ne sais pas si delphi à un cryptage plus complexe.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 091
    Points : 41 069
    Points
    41 069
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Delphi sensu stricto ne crypte rien, un constante reste une constante, un épluchage de l'exécutable ou l'utilisation un décompilateur permet de retrouver tout ce qui est en clair.

    je me rappelle il y a une vingtaine d'année quant je travaillais avec turbo pascal,
    pour faire péter l'expérience, il y a 30 ans ou peu s'en faut, un petit tour dans l'exe avec un éditeur hexadécimal permettait le plus souvent de trouver l'unique test de licence et de le changer pour débrider n'importe quel logiciel ! avec windows c'est juste devenu un peu plus complexe
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    Donc il ya pas moyen de cacher le mot de passe!?

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 091
    Points : 41 069
    Points
    41 069
    Billets dans le blog
    62
    Par défaut
    Rien n'empêche de crypter le mot de passe !

    exemple :
    142SYZ9JDB0A731323E5DED8FEEFECF7FDF6FB24
    2FCF2758F7EC424DA29DF3C0EA0A5AD97A6D49EC
    E35C0D0D0E0A410C9CEF9618A6C44124727EC661
    08CCFDD51C0D4844A7F372F656B933C7204D405A
    je vous défie de trouver le mot de passe en moins d'une heure sachant qu'en plus il y a une notion de n°de série

    le plus compliqué est de ne pas utiliser qu'un seul test pour éviter ce que j'ai expliqué plus haut.
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    bonjour,

    ce que je voudrais comprendre c'est est-ce que delphi crypte de la même manière les bloques de commande (procédure, fonction, variables) et les champs texte. En effet, avec le pascal tout texte saisie préalablement dans le programme reste comme il est après compilation et création de l’exécutable.

  6. #6
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 153
    Points : 73
    Points
    73
    Par défaut
    Pour la gestion des mots de passe j'utilise la suite de composants "DCPcypt" disponibles ici : https://github.com/SnakeDoctor/DCPcrypt

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 091
    Points : 41 069
    Points
    41 069
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    encore une fois, Delphi ne crypte rien

    En effet, avec le pascal tout texte saisie préalablement dans le programme reste comme il est après compilation et création de l’exécutable.
    je ne comprends pas ce que vous voulez dire !

    Delphi n'est autre qu'un EDI qui utilise des sources (en pascal évolué) pour compiler un exécutable. Toute constante (aussi bien dans vos sources .pas que .dfm) reste telle que définie (par là j'entends sans cryptage puisque c'est votre fixation) fournir un exécutable.

    En mode debug l'exe, plus gros, fourni encore plus de renseignements à un bidouilleur qu'en mode release.
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  8. #8
    Membre émérite Avatar de Cpt Anderson
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 625
    Points : 2 479
    Points
    2 479
    Par défaut
    Perso, pour l'encodage de mes mots de passes, j'utilise les composant Indy, notamment l'unité IdCoderMIME.pas.
    Voici la méthode de mon chef:

    copy (DateTimeToStr(Now),7,4)+
    copy (DateTimeToStr(Now),4,2)+copy (DateTimeToStr(Now),1,2)+copy (DateTimeToStr(Now),12,2)+
    copy (DateTimeToStr(Now),15,2)+copy (DateTimeToStr(Now),18,2)

    Je lui ai dit que FormatDateTime irait surement mieux


  9. #9
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 534
    Points : 25 082
    Points
    25 082
    Par défaut
    Ce sujet revient si souvent Protection contre la décompilation des applis ou Je voudrais proteger mon application par un générateur de clé par ID de machine



    Citation Envoyé par chekkal Voir le message
    ce que je voudrais comprendre c'est est-ce que delphi crypte de la même manière les bloques de commande (procédure, fonction, variables) et les champs texte. En effet, avec le pascal tout texte saisie préalablement dans le programme reste comme il est après compilation et création de l’exécutable.
    Tu confonds compilation et cryptage (d'ailleurs c'est plutôt du chiffrement dans ce cas, en français, généralement on désigne le chiffrement comme est réversible comme AES, le cryptage ne l'est pas MD5)

    les procédures, fonctions, variables c'est converti en Code machine, cela correspond à des Code opérateur dans le processeur
    Si l'on connait le processeur cible, on peut décompiler ce code machine pour en retrouver les mnémoniques assembleur mais tu n'auras pas les noms des fonctions ni les noms des variables
    on vé éviter de te perdre avec les notions de RTTI (comme published) de Delphi qui l'on peut comparer à la Reflexion en Java

    Ensuite, les chaines, aussi bien les valeurs dans le code mais aussi les DFM (qui sont converti d'un format texte à un format binaire plus compact mais on y retrouve beaucoup de chose)
    Tu as aussi les ressources chaines (quasiment tous les messages internes de la VCL\RTL) mais aussi des choses comme la version, le copyright mais aussi le XML Manifest de Windows ... on trouve même le nom du compilateur !



    IdCoderMIME c'est pas juste un encodage pour le Base64 ?


    Pour un chiffrement d'un mot de passe en dur dans le code, j'utilise pour ma part un petit AES128, mais du coup c'est la clé (un GUID) qui est en dur dans le code mais va savoir à quoi il sert ce GUID alors que j'en utilise plein pour les interfaces.
    Alors on pourrait être vicieux comme le suggère Sergio

    Tu encode ton MDP en Base64 puis tu le chiffre avec une clé 256 Bits, tu réencode le tout en Base64 pour faire joli
    la clé 256, tu fais un algo de XOR dessus avec une autre clé et tu encode le tout en Base64

    Tout ça pour protéger un programme dont personne n'en a rien à carrer, c'est tellement présomptueux de croire que l'on fera l'objet de piratage
    C'est en criant sur les toits que l'on est super-sécurisé que cela va intéresser un pirate qui s'ennui juste pour le défi
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. cryptage compatible entre Delphi XE2 et PHP
    Par Bernard B dans le forum Composants VCL
    Réponses: 6
    Dernier message: 20/06/2013, 09h18
  2. Cryptage rsa sous Delphi
    Par hocine77 dans le forum Langage
    Réponses: 5
    Dernier message: 27/12/2010, 18h30
  3. Cryptage, adresse MAC et Delphi Configuration Manager
    Par Naga2 dans le forum Composants VCL
    Réponses: 13
    Dernier message: 30/01/2010, 11h39
  4. [delphi 7 perso] Cryptage XOR et assembleur
    Par Loran dans le forum Langage
    Réponses: 5
    Dernier message: 18/08/2005, 10h44
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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