Stocker des variables dans le code [Résolu]

Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
- 13 avril 2012 à 14:45 - Dernière réponse :
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
- 23 avril 2012 à 10:07
Bonjour,

En éditant un exécutable avec notepad, on peut voir que les propriétés des composants utilisés sur la form apparaissent en clair. Pas terrible... J'aimerais masquer certaines valeurs desdites propriétés. Je vais regarder si ça change quelque chose en stockant certaines de ces valeurs dans un fichier .res. Connaissez-vous sinon un composant qui stockerait ça de manière cryptée (enfin, de façon à ce qu'on ne puisse pas le voir dans l'exécutable) ? Un genre de TCryptedStrings ?

Simon
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
4996
Date d'inscription
dimanche 26 février 2006
Dernière intervention
27 mars 2018
- 14 avril 2012 à 17:30
3
Merci
Bonjour,

essaie comme ça:

Composant.caption := 's' + 'e' + 'c' + 'r' + 'e' + 't';



cantador

Merci cs_cantador 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de cs_cantador
Meilleure réponse
- 15 avril 2012 à 09:53
3
Merci
Salut,

Si c'est juste les captions et autre textes que tu veux cacher, tu peux tres bien les définir à l'ouverture de ton executable compilé : cela te permettrait de crypter et décrypter ces derniers.

Concrètement tu les cryptes et tu fais dans le OnCreate de ta fiche :

Edit1.text:=Decrypt('Mon-Text-Cryptée');


C'est lourd mais ca répond pleinement à ta demande

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Meilleure réponse
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
- 18 avril 2012 à 12:45
3
Merci
Salut,

regarde aussi cette page


[hr]@+Cirec
[hr]

Merci Cirec 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de Cirec
Meilleure réponse
Messages postés
4304
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
9 mars 2018
- 21 avril 2012 à 15:19
3
Merci
ZLib -> ZCompressString et ZDecompressString (fournie avec Delphi : Uses ZLib)

Sinon on peux aussi stocker en base64 ( http://www.delphifr.com/codes/BASE64-BASE64URL-ENCODE-DECODE_51156.aspx )

________________________________________________________
besoin de câbles audio, vidèo, informatique pas cher ?

Merci f0xi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de f0xi
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
- 16 avril 2012 à 09:54
0
Merci
Bonjour Cantador et Francky,

Désolé Cantador, mais ta solution ne marche pas

Je vais plutôt m'orienter vers la solution de Francky

Merci pour vos réponses !

Simon
Commenter la réponse de sp40
Messages postés
692
Date d'inscription
jeudi 17 avril 2008
Dernière intervention
14 septembre 2018
- 16 avril 2012 à 13:00
0
Merci
Bonjour
" Edit1.text:=Decrypt('Mon-Text-Cryptée'); "
Je pense que dans l'EXE créé, le texte 'Mon-Text-Cryptée' apparaitra en clair également !
cordialement
Dubois77
Commenter la réponse de dubois77
Messages postés
4996
Date d'inscription
dimanche 26 février 2006
Dernière intervention
27 mars 2018
- 16 avril 2012 à 14:40
0
Merci
Bonjour,

Désolé Cantador, mais ta solution ne marche pas

Ce n'était pas une solution mais une simple pichenette permettant d'éviter l'association entre la propriété du composant et son texte..

Maintenant, si tu veux plus, il faut passer par les ressources
et charger toutes les propriétés par un load :
[b]
Res := TResourceStream.Create(hinstance, 'CAPTION', RT_RCDATA);
jpg.LoadFromStream(Res);/b

mais c'est très lourd à gérer..

tu peux aussi stocker avec TFileStream (il y a plein d'exemples sur le net)
chaque composant avec ses propriétés,
il faudra ajouter un cryptage de chaque propriété (avant) et mettre une fonction de décryptage avant le chargement.
tu auras caption := decrypt (crypt)

lourd également..

Autre idée, plus simple et d'utiliser un compresseur d'exe, ce qui entre autre présente l'avantage d'accélérer l'ouverture du programme (la compression est rapide)

Inconvénient, il faut compresser à chaque fois, avant de mettre l'appli en service.

Je pense que l'on peut automatiser, s'agissant d'un exe externe.

cantador
Commenter la réponse de cs_cantador
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
- 16 avril 2012 à 18:03
0
Merci
Bonjour Monsieur Dubois,

A priori, vu que c'est le texte crypté qu'il faut mettre en paramètre de Decrypt, je pense qu'on verra plutôt un truc avec des hiéroglyphes.
Bonne nouvelle avec XE2, la valorisation de variables n'apparait pas dans l'exécutable... par contre on voit toujours les propriétés des composants.

A Cantador :
Je suis effectivement passé par des ressources cryptées. ça m'a permis de réviser les fichier .res ...
merci encore




Simon
Commenter la réponse de sp40
Messages postés
692
Date d'inscription
jeudi 17 avril 2008
Dernière intervention
14 septembre 2018
- 21 avril 2012 à 16:08
0
Merci
Finalement c'est Francky qui a raison comme le dit simonpelloquin !
et c'est simple à faire !
cordialement
Dubois77
Commenter la réponse de dubois77
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
- 23 avril 2012 à 10:07
0
Merci
Merci à tous pour vos solutions, ça m'a bien aidé.

Simon
Commenter la réponse de sp40

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.