Un moyen pour protéger les variables de la décompilation

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Farstone
Messages : 187
Inscription : 04 Déc 2016 09:38

Un moyen pour protéger les variables de la décompilation

Message par Farstone » 27 Avr 2017 06:06

Bonjour/Bonsoir, je me suis renseigné sur la décompilation étant donné que j'ai besoin de stocker des informations sensible dans mes codes. J'ai donc vérifié ce qu'il est possible de voir et comment cacher son code contre les application qui permettent de décompiler et voir les sources des dll en csharp, on peux effectivement voir tout les scripts dans notre projet mais j'ai noté une choses.
Imaginons que j'ai mon script sous Unity qui contient une variable, par exemple

Code : Tout sélectionner

string test = "ma phrase";
Cette ligne pourras être lu facilement tel qu'elle a été écrit par un décompiler (et un obfuscator ni changera rien).
Par contre si j'écrit

Code : Tout sélectionner

public string test;
que je place le script sur un EmptyGO et entre ma phrase manuellement dans l'éditeur, on ne peux pas voir cette phrase sur un décompiler, mais la variable nécessite d'être public.

Ma question est de savoir si on peux avoir accès a cette phrase qui doit sûrement être dans les fichiers asset ou ressources du dossier une fois compilé, et si non, comment le fait de mettre ma variable en public peux affecté son moyen d'obtention ?
Dans mes cours on ma dit que le fait de mettre une variable "private" empêchait sa modification, mais en soit je m'en fiche un peux si le texte est modifié, je ne veux juste pas qu'il soit lu.
J'espère que j'ai été assez clair dans ma question :gene: mais je pense qu'elle est importante pour n'importe qui voulant par exemple communiquer avec sa base de donnés depuis son script sous unity.
Merci pour vos futur réponses !

Avatar de l’utilisateur
DevAmat
Messages : 435
Inscription : 23 Nov 2016 11:50

Re: Un moyen pour protéger les variables de la décompilation

Message par DevAmat » 27 Avr 2017 09:53

Yo! Alors ce que tu demandes c'est au delà de mes connaissances. En revanche, c'est pas fou fou de mettre ta variable en public comme ça. Avec Unity, tu peux la laisser private et la faire apparaître dans l'éditeur:

Code : Tout sélectionner

[SerializeField]
private string test;

Farstone
Messages : 187
Inscription : 04 Déc 2016 09:38

Re: Un moyen pour protéger les variables de la décompilation

Message par Farstone » 27 Avr 2017 11:47

Oui je connaissait ce bout de code, mais je le voyait plus comme un debug, mais si il permet de changé la variable en gardant celle-ci private je voie pas vraiment l’intérêt de mettre des variables en private , je me renseignerait sur ça fonctionnalité en détails. Mais une choses me titille, il doit y avoir un problème quelques part car sa parait trop beau pour être vraie, comment sa pourrait être aussi simple de cacher des variables alors que sa fait des mois que je cherche un moyen de protéger les identifiants de ma bases de données dans mon codes, sans trouver de sujet dessus (j'ai peux être mal cherché aussi). Et je discutait avec des gens du forum sur la question de comment protéger c'est identifiants de bases de donnés contre la décompilation personnes n'avait l'air au courant de cette méthode.
A vraie dire je me suis penché sur la question quand j'ai remarqué que l'ID secrète que tu obtient quand tu travail avec Photon ne pouvait pas être trouvé dans le code source, surement car elle est stocker de la même manière, une variable directement dans le moteur.
Mais c'est quand même un point qui m'aurait fait basculer vers Unreal qui a l'air plus protéger au niveau de la décompilation, sa ne m'étonnerais donc pas que les dev de Unity ait justement pensé a ce système de rentrer c'est variables directement dans le moteur pour les protéger, reste a savoir a quel point elle le sont. Mais si quelqu'un pouvait éclairer ma lanterne, pourquoi une chose aussi fondamental n'est elle pas misent en avant, je ne pense pas que tout le monde irait vérifier si l'on voie leur variables en décompilant leur codes, si elle son rentré directement dans le script.

Avatar de l’utilisateur
Max
Messages : 8772
Inscription : 30 Juil 2011 13:57
Contact :

Re: Un moyen pour protéger les variables de la décompilation

Message par Max » 27 Avr 2017 11:53

Bonjour,

as tu parcouru ce sujet du forum: Comment protéger les données sensibles
Tu y trouveras peut-être quelques éléments de réponse.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Farstone
Messages : 187
Inscription : 04 Déc 2016 09:38

Re: Un moyen pour protéger les variables de la décompilation

Message par Farstone » 27 Avr 2017 12:04

Max a écrit :Bonjour,

as tu parcouru ce sujet du forum: Comment protéger les données sensibles
Tu y trouveras peut-être quelques éléments de réponse.
J'ai participé a ce sujet, mais il n'y a pas vraiment de réponse concrète, on parlait de crypter les données mais c'est trop simple a cracker, pareil pour l'obfuscation, mais par contre les données sur le moteur qui son stocker dans les fichiers asset ou ressources (pas sûr a 100% mais il n'y a pas vraiment d'autres endroits) me parait une alternative très bonne qui a été voulue par Unity et beaucoup plus difficile d'accès en clair qu'un décompiler trouvable en 1 mot sur google et en ayant chercher un peu si c'était possible de décompiler c'est fameux fichier une fois le projet build, ça parait extremement compliqué (voir même presque impossible, mais rien n'est impossible côté client).

Répondre

Revenir vers « Unity le logiciel »