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

Développement 2D, 3D et Jeux Discussion :

Protection des fichiers de vos projets


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Points : 622
    Points
    622
    Par défaut Protection des fichiers de vos projets
    Bonsoir,

    Je réfléchit au moyen de protéger les différents fichier utilisé par mon prochain projet, les images, fichiers texte, scripts ou autre. Il me semble important d'empêcher la modification de ces fichiers, en effet si ils étaient corrompus, cela pourrait modifier le fonctionnement du jeu, voir pire.

    J'aimerais savoir comment vous procédez pour empêcher la modification de ces fichiers ou au moins en contrôler le contenu? Cryptage? "Certificats d'authenticités"? autre chose?

    Comment mettre en place ces protections?

    merci pour vos réponses!

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Euh, bah, euh, non je ne fais pas ça sur mes projets.
    Si c'est pour évité une corruption du à des défaillances techniques ( genre la clé USB qui devient corrompu ), je dirai que l'utilisation d'un serveur de controle de version est une bonne chose ( SVN / CVS / ... )
    Mettre son projet en ligne ( google, sourceforge ) ça peut aussi être pas mal.

    Sinon, si c'est juste une protection ( pour empecher des pirates ), j'aurais l'intention de dire vous avez déjà perdu. Mais vous pouvez tout de même commencé avec un md5sum.

    Et pour finir, dans les cas d'une corruption, il y a de forte chance que cela plante lamentablement
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Points : 622
    Points
    622
    Par défaut
    En fait j'ai du mal m'exprimer :/

    Je pas de protéger mes sources et ressources du projet en lui même, plutôt les ressources du jeu une fois fini.

    Dans l'idée, avec le jeu je distribue des fichier lua pour les scripts, ainsi que des fichiers qui décrivent les différents menu, niveau ect... et des images. Sans protection, ces fichiers pourraient êtres très facilement modifiés par le joueur... et c'est pas souhaitable...

    Imaginez qu'il suffise d'un simple éditeur de texte pour modifier une sauvegarde et arriver devant le boss final de votre jeu... c'est pas terrible ^^ Dans le cas d'un jeu en réseau, ça peut poser d'autres problèmes encore...

    Après c'est évident qu'il n'y a pas de protection absolue, et qu'il y a des contrôles a faire dans l'application elle même, mais une protection sur ces fichiers sensibles est la bienvenue.

    Des idées?

  4. #4
    Membre averti
    Profil pro
    Responsable technique
    Inscrit en
    Février 2006
    Messages
    363
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable technique

    Informations forums :
    Inscription : Février 2006
    Messages : 363
    Points : 353
    Points
    353
    Par défaut
    Deja tu peux commencer par mettre tes fichiers en mode binaire (pour les sauvegardes par exemple). Ca permettra d'éviter qu'un utilisateur qui ne connait pas la programmation mais assez futé puisse facilement passer au boss de fin.

    Pour tes ressources, un truc courant qui se fait dans les jeux commerciaux c'est de tout regrouper dans un seul fichier. Cette technique est loin d'etre sans faille, mais celui qui voudrai modifier les ressource avec cette technique, doit savoir programmer un minimum, utiliser un éditeur hexa pour repérer la Table of Content, comprendre comment elle marche, faire un programme pour extraire les ressources et un autre pour reconstruire le fichier. Si tu souhaite diffuser ton programme sur internet gratuitement, je pense que cette solution est suffisante. Voila un lien vers un tutorial pour faire ca:
    http://www.sfml-dev.org/wiki/fr/tutoriels/formatdat

    Si toutefois ca ne te suffit pas, tu peux en plus donner des extensions bidon à tes fichier pour tromper l'utilisateur.

    Enfin, tu peux utiliser une librairie qui zip les fichiers et y mettre un mot de passe.

    Et si tu es vraiment parano, tu fais tout ces truc là et tu pourras dormir sur tes 2 oreilles lol.

  5. #5
    Membre actif
    Profil pro
    Directeur technique
    Inscrit en
    Juillet 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 107
    Points : 200
    Points
    200
    Par défaut
    Citation Envoyé par drcd Voir le message
    Pour tes ressources, un truc courant qui se fait dans les jeux commerciaux c'est de tout regrouper dans un seul fichier. Cette technique est loin d'etre sans faille, mais celui qui voudrai modifier les ressource avec cette technique, doit savoir programmer un minimum, utiliser un éditeur hexa pour repérer la Table of Content, comprendre comment elle marche, faire un programme pour extraire les ressources et un autre pour reconstruire le fichier.
    En général c'est surtout fait pour n'avoir qu'un seul accès au disque dur ( afin d'accélérer les temps de chargement )


    J'aurai tendance a dire que tu t'en fous complètement si l'utilisateur modifie le comportement du jeu
    Soit il arrive directement au boss de fin et c'est tant pis pour sa tronche ( il perd l'intérêt du jeu, il avais qu'a pas tricher )

    Soit il essaie en réseau et le jeu deviendra injouable pour lui ( seul le serveur connais la vérité, et ce que le tricheur verra n'affectera que lui ) donc même remarque qu'au dessus.


    De plus, avoir un format assez ouvert et pas de protection te permet de pouvoir avoir une communauté de moddeur ( pourquoi pas ) plus facilement qu'avec un jeu qui possède des protections partout.

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Points : 622
    Points
    622
    Par défaut
    Merci pour vos réponses.

    Citation Envoyé par drcd Voir le message
    Pour tes ressources, un truc courant qui se fait dans les jeux commerciaux c'est de tout regrouper dans un seul fichier.
    J'ai pas l'impression que ce soit le meilleur moyen, j'y ai penser, mais dans le cas de fichiers contenant du texte, ils seront quand même lisibles et modifiables je pense.

    Que penser du cryptage?

    Citation Envoyé par drcd Voir le message
    Enfin, tu peux utiliser une librairie qui zip les fichiers et y mettre un mot de passe.
    C'est peut être une bonne solution, je me renseigner.

    Citation Envoyé par Christuff Voir le message
    J'aurai tendance a dire que tu t'en fous complètement si l'utilisateur modifie le comportement du jeu
    Soit il arrive directement au boss de fin et c'est tant pis pour sa tronche ( il perd l'intérêt du jeu, il avais qu'a pas tricher )
    c'est quand même dommage...

    Citation Envoyé par Christuff Voir le message
    Soit il essaie en réseau et le jeu deviendra injouable pour lui ( seul le serveur connais la vérité, et ce que le tricheur verra n'affectera que lui ) donc même remarque qu'au dessus.
    Dans la théorie oui, dans les faits non.. regarde le nombre de speedhack et autres exploits qui trainent sur le web pour les jeux en lignes. Le serveur ne peut surement pas tout vérifier en temps réel pour chaque joueur.

    Citation Envoyé par Christuff Voir le message
    De plus, avoir un format assez ouvert et pas de protection te permet de pouvoir avoir une communauté de moddeur ( pourquoi pas ) plus facilement qu'avec un jeu qui possède des protections partout.
    Les protections n'empêches pas forcément les mods, c'est pas parce-que le cœur du jeu est protégé qu'on interdit l'ajout d'autre contenu. En plus, ma priorité est de faire un jeu qui tient la route, je penserai aux mods plus tard...

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Citation Envoyé par bebaijhi Voir le message
    En plus, ma priorité est de faire un jeu qui tient la route, je penserai aux mods plus tard...
    Alors pourquoi chercher à protéger les fichier
    Le md5sum est une bonne technique pour savoir si tes fichiers ont été modifié, par contre, pour les sauvegarde, faut trouver ou placer la somme ... dans le fichier?
    Sinon, le fichier binaire, je pense que c'est un bon truc. Par contre, ça casse un peu votre code pour la lecture :s
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  8. #8
    Membre actif
    Avatar de Mikmacer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 116
    Points : 241
    Points
    241
    Par défaut
    Premièrement, faudrait savoir pour quel genre de projet tu souhaites protéger les fichiers ? Si c'est un jeu en ligne, c'est beaucoup plus complexe. De plus, il faut savoir qu'il est IMPOSSIBLE de protéger les fichier pour quelqu'un avec un peu de motivation et qui a les connaissances requises. Il faut dire que, peu importe ton moyen d'encryption et de décryption, ton pire décodeur est le jeu lui-même puisqu'une fois les données décodées, ou est-ce qu'elles se ramassent ? Elles se ramassent dans la mémoire alloué par l'application, qui peu être lu, et les données seront à ce moment pleinement décryptés, et tout tes efforts d'encryption seront veins. Alors tu dois encrypter la mémoire en ram aussi, et non seulement au niveau des fichiers.

    Pour le reste, je n'ai pas assez de connaissance pour te conseiller, mais si on regarde les méga productions vidéoludiques, dans lesquels les développeurs travaillent par centaines avec un budget de plusieurs dizaines de millions, je ne connais aucun projet dans lequel on a réussi a protéger les ressources à 100%.....

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Points : 622
    Points
    622
    Par défaut
    @LittleWhite

    C'est un objectif qui me semble important pour un jeu serieux voila tout

    @Mikmacer

    Le but n'est pas la protection absolue... mais la meilleur protection possible face au l'utilisateur de base. Tout le monde ne sais pas lire le contenu de la ram, d'autres n'ont aucunes idée de ce qu'est l'hexadécimal.

    Qu'un ptit malin qui s'y connait bien arrive a péter ma protection, je m'en fou, toute façon j'y échapperais pas...

  10. #10
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Citation Envoyé par bebaijhi Voir le message
    Le but n'est pas la protection absolue... mais la meilleur protection possible face au l'utilisateur de base. Tout le monde ne sais pas lire le contenu de la ram, d'autres n'ont aucunes idée de ce qu'est l'hexadécimal.

    Qu'un ptit malin qui s'y connait bien arrive a péter ma protection, je m'en fou, toute façon j'y échapperais pas...
    Bah alors je trouve qu'il n'y a pas besoin de faire tout ça. Avez vous un objectif commercial ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  11. #11
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par bebaijhi Voir le message
    @LittleWhite
    C'est un objectif qui me semble important pour un jeu serieux voila tout
    Pas forcément. Certains joueurs aiment tricher d'autre non. Laisse les joueurs faire d'eux-même les choses.

    Pour l'instant, je laisse tout ouvert, et ca sera sûrement le cas pour la suite.

    Mon code est en OpenSource, les fichiers en texte. Peut-être que je passerai à une version binaire, peut-être pas.

    Pour l'instant, mon but : avoir un jeu fini qui tienne la route.

    Que tu veuilles vendre ton jeu, le changement des sauvegardes n'est vraiment qu'un souci dans les jeux en réseau. Et cela est résolu en ayant les sauvegardes sur un serveur chez toi et non chez le joueur.

    Jc

  12. #12
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Points : 622
    Points
    622
    Par défaut
    Pas de but commercial dans l'immédiat, mais j'y pense, c'est pour ça que j'essaye de développer d'une façon la plus sérieuse possible, en faisant quelques recherches sur ce genre de sujet.

    C'est donc une sorte d'examen de mes connaissances, pour voir les connaissances qu'il me manque, et essayer de les approfondir. Je ne sait même pas si le jeu que je développe en ce moment est mono/multijoueur, j'essayerai les deux je pense... cette démarche n'est pas limitée a un seul projet.

    Quoi qu'il en soit, je manque encore d'expérience sur pas mal de point et c'est bien pour ça que je cherche à comprendre de genre de mécanismes.

    pour en revenir à nos moutons, je pense que dans la mesure ou le jeu est en réseau, il est important que certains joueurs ne viennent pas pourrir le plaisir de jouer des autres. Que le jeu soit commercial ou non. Dans un jeu solo, c'est sur que ça ne regarde que je le joueur mais bon.

    Je vais essayer de tout mettre dans un seul fichier comme proposait drdt, et de crypter le tout.

    ça pourrait être fun un jeu dont le but serait de gagner en trichant!

  13. #13
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut
    je poussoie pour le jeu en mono joueur et les ressources:
    - si le joueur veut tricher et se pourrir lui-même le gameplay, tant pis pour lui.
    - aucune solution ne sera infaillible, donc fais une protection minimale (genre le zip avec mdp) et ne perd pas trop de temps là-dessus.
    je pense que dans la mesure ou le jeu est en réseau, il est important que certains joueurs ne viennent pas pourrir le plaisir de jouer des autres
    C'est exactement ca.

    Citation Envoyé par bebaijhi Voir le message
    Le serveur ne peut surement pas tout vérifier en temps réel pour chaque joueur.
    pour le multi, le serveur doit TOUT vérifier. C'est long a implémenter, ça demande de l'expérience et beaucoup de méthode, des ressources serveur supplémentaires (car le serveur doit 'jouer' la partie lui aussi) mais au moins en théorie la protection parfaite est de l'ordre du possible.

    Les exploits ne sont finalement que l'exploitation de carences de protection, mais ce n'est en aucun cas une fatalité.
    Mon projet du moment: BounceBox, un jeu multijoueurs sur Freebox, sur PC et depuis peu sur smartphone/tablette Android.

  14. #14
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Points : 622
    Points
    622
    Par défaut
    Citation Envoyé par nouknouk Voir le message
    ça demande de l'expérience et beaucoup de méthode, des ressources serveur supplémentaires (car le serveur doit 'jouer' la partie lui aussi) mais au moins en théorie la protection parfaite est de l'ordre du possible.
    J'ai chercher sur google des articles sur ça, la façon dont un serveur gère le jeu, mais je me souvient pas avoir trouver quelque chose qui me plaisait vraiment. Aurais tu des liens a refiler?

  15. #15
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 217
    Points : 228
    Points
    228
    Par défaut
    Si tu en as vraiment besoin je pense qu'il faudrait faire un truc comme ceci:
    pour chaque fichier, faire un header (ou mettre dans un fichier externe) contenant une somme md5 ou sha1 cryptée par RSA ou dans le genre (une technique de cryptage asymétrique).

    Au chargement il suffirait de faire la somme md5 ou sha1 du fichier, décrypter grâce à la clé publique celle dans le header ou fichier de contrôle, charger le fichier si elles sont identiques.

    Comme tu seras le seul à posséder la clé permettant de crypter les sommes md5 ou sha1 tu seras tranquille un bon moment: la plupart des pirates ne vont pas s'embêter à retrouver cette clé privée pour faire leur propre contenu modifié.
    Et si tu utilises différentes clés (une clé pour chaque fichier, mais il faut placer la clé publique dans le fichier de contrôle), alors là tu peux t'estimer encore plus tranquille.

    Mais après tout, tes joueurs font ce qu'ils veulent de ton jeux, cela ne te concerne pas du moment que ça n'affecte pas les autres joueurs .

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/02/2006, 14h49
  2. Réponses: 1
    Dernier message: 14/02/2006, 00h40
  3. Désactiver la protection des fichiers systéme
    Par cartonis dans le forum Sécurité
    Réponses: 6
    Dernier message: 13/08/2005, 19h17
  4. [Eclipse 2.1] Encodage des fichiers pour un projet
    Par _-Sky-_ dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 26/05/2005, 22h26

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