2017-01-13 7 views
0

Je crée une vérification basée sur les ID de PC pour le générateur de licence & - programme permettant de créer un matériel PC basé sur la licence.Vérification de la licence - comment vérifier la sécurité de la réponse du serveur

Il envoie l'identifiant du pc (tel que l'adresse MAC, l'uuid, le numéro de série bios, etc.) à un serveur qui crée la licence et la renvoie au client.

Lorsque le client veut activer le programme, il envoie sa licence au serveur et obtient une réponse - essentiellement vrai ou faux. Toutes les données chiffrées par clé AES et signées par le serveur ....

Voici le problème - Puis-je vous assurer un inverseur n'a pas changé la réponse du contrôle de code serveur? Il y a toujours cette «condition if» (ou cmp dans l'assemblage) qui peut être changée

J'ai pris soin de l'obfuscation, de l'emballage, de l'anti-débogage, etc., autant que je peux, mais un bon inverseur peut changer et le transmettre

Merci

Avinoam

Répondre

0

assez simplement: c'est impossible. Comme vous l'avez dit, il y aura toujours des «conditions».

Je vais énumérer quelques-unes des méthodes dont je me souviens que les applications utilisent pour le rendre plus difficile pour les biscuits salés:

  • checksums sur le code. Si un pirate change une partie du code, il devra également trouver la somme de contrôle appropriée (qui peut être obscurcie)
  • en exécutant plusieurs contrôles dans le code, et possible dans de nombreux threads/tâches à des moments spécifiques/aléatoires (par exemple vérifier le CDKEY toutes les 1 minutes via un chemin de code différent)
  • cryptez une partie du code en utilisant le CDKEY (donc si vous n'en avez pas, vous n'avez pas vraiment le code de l'application)
  • avoir le code approprié stocké sur votre serveur. Lorsque l'utilisateur essaie d'accéder à une "nouvelle" fonctionnalité (par exemple, la prochaine étape d'un jeu), l'application va gérer le serveur, et si le serveur est convaincu que ce n'est pas un pirate, le serveur enverra le code approprié à l'application. , qui l'exécutera ensuite.
  • ont un dispositif semblable à la carte SIM à distance qui est physiquement obscurcie (comme une carte SIM) qui fournira une API physique à l'ordinateur et le serveur interrogera cet appareil pour vérifier son genuinity. Il suffit de lire sur les cartes SIM.