Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » Comment empêcher la triche ?
21uos25 Hors ligne Membre Points: 95 Défis: 11 Message

Comment empêcher la triche ?

Posté le 08/12/2015 17:10

Bonjour,

Y a t-il un moyen simple et efficace d’empêcher la triche ? Par exemple d’empêcher la modification de variables, de listes ou de matrices ; ou de vérifier rapidement quelles n'ont pas été modifiées ?
Comment faites-vous pour empêcher cela dans vos programmes ?
On peut mettre un code à la création du programme, mais à part cela ?


Eltoredo Hors ligne Modérateur Points: 4301 Défis: 35 Message

Citer : Posté le 08/12/2015 17:15 | #


Mettre un code est "inutile" dans la mesure où ceux qui s'y connaissent un peu savent le cracker via FA-124. Tu ne peux pas protéger tes jeux en basic, inutile, pense seulement que ceux qui le font n'ont aucun mérite à gagner en faisant ça.

En C, c'est différent, il faut directement toucher au code pour tricher et c'est pas facile pour ceux qui ne s'y connaissent pas
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
Dynasty Hors ligne Membre Points: 464 Défis: 2 Message

Citer : Posté le 08/12/2015 17:58 | #


Sinon tu peux crypter les valeurs que tu stockes dans tes matrices. Si les valeurs ne sont pas cryptées, il est facile de retrouver des nombres important dans la liste des matrices, cependant si tu y appliques un cryptage (même simple) une personne qui n'a pas accès au code (donc quelqu'un qui ne connait pas F1-124...) ne pourra pas facilement retrouver les variables à modifier.

Ou alors comme Eltoredo le dit, tu fais du C et du partages pas ton code
Le monde ne tourne pas rond.... sa m'en donne le tourni U_u'

Mon projet actuel
Un combat au tour par tour !

Projet de combat au tour par tour type DOFUS mais totalement orienté sur le PvP. Le projet va demander un peu de temps mais soyons patient...

Menus
   85%

Gestion des Caractéristiques
   90%

Gestion des déplacements
   100%

Implémentation des sorts
   50%

Création carte
   100%



Mon ancien projet (en attente)
Revenge
Il s'agit d'un RPG assez gros, je ne sais pas si j'aurais la place suffisante sur une calto... peut être ferais-je des programmes à installer séparément pour les donjons/instances...
Menus/présentation
   75%
Systèmes niveaux/sorts...
   65%

Système de combat
   10%
Map
   1%

Donjons/Instances
   1%





Mon autre projet
Laby3D

Le titre (laby3D) en dit long sur son contenu : il s'agit d'un simple moteur de labyrinthe en "3D" (enfin on va dire juste un effet de profondeur ). il aura la particularité d'être aggrémenté de superbes petites animations sur les rotations d'angles de vue ! j'y bosse pas mal et j'espère bien le réussir !
Editeur de niveaux
   100%

Graphismes
   95%

Moteur du jeu
   95%

Animations
   100%

Level Design
   80%


Le jeu devrait sortir bientôt


Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 09/12/2015 12:48 | #


21uos25 a écrit :
Y a t-il un moyen simple et efficace d’empêcher la triche ? Par exemple d’empêcher la modification de variables, de listes ou de matrices ; ou de vérifier rapidement quelles n'ont pas été modifiées ?
Comment faites-vous pour empêcher cela dans vos programmes ?
On peut mettre un code à la création du programme, mais à part cela ?

En fait on se dit surtout que si l'utilisateur a envie de modifier le programme ou les variables pour tricher c'est son problème.
Personnellement je publie même le code de mes add-ins, si quelqu'un a envie de les modifier pour son usage personnel rien ne l'en empêche.

Mettre un code sur ses programmes est frustrant pour l'utilisateur qui voudrait, pour progresser, voir comment quelque-chose est implémenté...
Dark storm Hors ligne Labélisateur Points: 11634 Défis: 176 Message

Citer : Posté le 09/12/2015 13:07 | #


Si c'est juste pour éviter que quelqu'un booste ses stats en modifiant une matrice, un truc facile à faire est une sorte de checksum :

Tu as ta valeur V, que tu veux mettre sécurisée dans la variable M. Une idée est d'ajouter une partie décimale correspondant au modulo de 7 fois ta valeur par 10. Si à la lecture la propriété n'est pas validée, alors il y a eu modification. C'est un peu lourd, mais si tu teste sur des listes, ça se fait vite.

NB : j'utilise ici une astuce qui consiste à nommer les listes, mais ça marche aussi avec "List 1" etc.

// Écriture : List "STATS" contient les valeurs brutes, List "SAUV" celles qui seront stockées
List "STATS" + 0.7 * List "STATS" Mod 10 -> List "SAUV" // On ajoute 7 / 10 = 0.7 fois le modulo aux valeurs

// Lecture : List "TMP" est une liste temporaire, on peut s'en passer en mettant tout en une ligne
Frac List "SAUV" - (0.7 * Int List "STATS" Mod 10) -> List "TMP" // On fait la différence du checksum enregistré par celui calculé, et on met ça dans une liste
If Sum List "TMP" ≠ 0 // Si cette somme est non nulle, c'est sans doute qu'une valeur a été modifiée à la main
Then "Vous avez triché ?"
Stop
IfEnd

Je n'ai pas testé, mais ça devrait fonctionner.

Si t'as des questions, n'hésite pas à les poser.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Ninestars Hors ligne Membre Points: 2461 Défis: 24 Message

Citer : Posté le 09/12/2015 20:12 | #


Hmm ça ne semble pas fonctionner Dark Storm :/
Sinon plus simple, tu rajoutes une case à la fin de ta liste qui correspond à la somme de toutes les valeurs de la liste.
Genre la liste {3, -9, 7, 1} 3 + -9 + 7 = 1
Ensuite quand tu lis la liste dans ton programme, tu vérifies si le dernier nombre correspond à la somme.
Tu sais d'office que la liste a été modifiée.

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 44 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd