Je les ai vus de nombreuses fois, avec de nombreux types de logiciels différents, mais la seule chose que je me suis toujours demandé, c'est comment les keygens logiciels savent quelle clé générer. Je connais le principe de base de celui-ci: le keygen regarde quelque part dans les fichiers d'installation du logiciel et crée une clé qui correspond à un fichier crypté qui permet au programme de fonctionner. Mais je voulais savoir comment ils font ça et comment l'empêcher. C'est vraiment une question en plusieurs parties.
- Comment fonctionne le système de clés?
- Comment les programmeurs créent-ils généralement des logiciels qui fonctionnent sur la base d'une clé. Je suis un programmeur intermédiaire, mais je n'ai jamais beaucoup appris sur l'aspect sécurité/anti-piratage. Comment créent-ils et/ou reconnaissent-ils les clés pour permettre au logiciel de commencer à fonctionner?
Où cherche-t-on habituellement pour trouver ce "fichier crypté"?
- Est-ce dans un fichier physique sur l'ordinateur ou dans une base de données hors site qu'il appelle?
Que font les entreprises pour crypter ce fichier?
- J'imagine que la clé doit être stockée dans plus qu'un simple texte en clair, que font-ils pour la garder cryptée?
- Quelle méthode le keygen utilise-t-il pour créer la clé?
- J'ai joué un peu avec un logiciel de piratage de mot de passe tel que "cain & able" et j'ai remarqué qu'avec certaines des méthodes de piratage de mot de passe, telles que la force brute et le dictionnaire, cela me donne des ETA en années, cependant les keygens semblent créer des clés instantanément. Utilisent-ils entièrement des méthodes différentes?
- Quelles mesures les entreprises peuvent-elles prendre pour empêcher l'utilisation de keygens dans les logiciels piratés?
- Je commence à écrire mon propre logiciel à distribuer, je me demandais quelles méthodes existantes et faciles à utiliser pour éviter
Eh bien, cela dépend, il existe de nombreuses implémentations. L'un d'eux a été discuté dans stackoverflow :
En supposant que vous ne voulez pas faire de build spécial pour chaque utilisateur, alors:
Remarque: chaque schéma de clé peut être craqué. C'est pourquoi de nombreux outils utilisent la validation en ligne.
Il n'y a généralement pas de fichier crypté lors de l'utilisation de la méthode précédente. Il peut y avoir d'autres méthodes pour générer des clés avec un autre algorithme, mais elles ne stockent jamais toutes les clés dans le programme.
Eh bien, si vous faites référence au stockage de la clé que l'utilisateur a tapée dans votre système, il est parfois enregistré en clair dans un fichier de configuration. Parfois, ils utilisent un cryptage symétrique (comme AES) avec une clé codée en dur pour crypter ce fichier.
Parce qu'il y a des gens qui peuvent comprendre le schéma que le programme utilise et simplement l'implémenter dans leur propre keygen.
Activation en ligne, mais plus il est difficile pour le client d'utiliser le logiciel, moins il est probable qu'il l'achètera. En fin de compte, il n'y a pas un seul logiciel qui soit à l'épreuve du piratage . S'il y en avait, des sociétés comme Adobe et Microsoft vous embaucheraient instantanément.
Les numéros de série des logiciels informatiques ont un schéma spécifique, qui permet à l'installateur ou à l'application de détecter s'il s'agit ou non d'une clé légitime. Un exemple très simple serait que chaque numéro de série contient exactement trois occurrences du nombre 5 - donc 1932-1253-2319-5512 serait un numéro de série fonctionnel. Dans un scénario réel, les relations entre les nombres seraient bien sûr plus compliquées.
Le logiciel livré contient un algorithme qui vérifie si une série est valide ou non. Le créateur du logiciel possède un logiciel qui lui permet de créer des numéros de série pour le produit.
Pour créer un keygen, un groupe de crackers (personnes spécialisées dans la rupture des schémas de protection contre la copie) analyse l'exécutable du programme pour trouver la partie qui vérifie la série. Ils reconstruisent ensuite l'algorithme pour créer les séries basées sur le code de vérification. Le keygen terminé est une application appliquant l'algorithme pour créer un numéro de série.
Parfois, les keygens ne contiennent pas vraiment l'algorithme, mais plutôt une liste de numéros de série valides, dont l'un est sélectionné au hasard.
Le keygen pour Windows XP dans les derniers Service Packs était plus compliqué, car Microsoft vérifiait non seulement si une clé était valide, mais également si elle avait été vendue avec une copie et n'était pas déjà utilisée sur un autre ordinateur. Le keygen a envoyé des demandes de masse au serveur Microsoft pour vérifier s'il s'agissait ou non d'une clé de travail.
Comment fonctionne le système de clés?
Sous la forme la plus courante if (some-complex-or-not conditions-here) then (OK)
. Complexité de l'état vérifié limité uniquement par votre fantaisie
Où cherche-t-on habituellement pour trouver ce "fichier crypté"?
Il il n'y a pas de modèles courants, où et comment stocker et lire ces informations. Il peut s'agir d'un fichier et non d'un fichier (clé de registre, par exemple, dans le cas de Windows)
Que font les entreprises pour crypter ce fichier?
Pratique habituelle - ne stockez jamais en texte brut, utilisez des méthodes de transformation irréversibles avant de stocker, mais - avec l'activation de clé, même le stockage de clé en texte brut peut être à l'épreuve des balles: la clé volée, une fois activée, ne fonctionnera pas à partir du deuxième enregistrement (abusif et méthode piratable, mais peut fonctionner dans une certaine mesure)
Quelle méthode le keygen utilise-t-il pour créer la clé?
La méthode d'ingénierie inverse de vérification de la validité aide à la rétro-ingénierie l'algorithme de création données clé
Quelles mesures les entreprises peuvent-elles prendre pour empêcher l'utilisation de keygens dans les logiciels piratés?
Non technique - prix raisonnable pour les produits. Dans ce cas, les keygens apparaîtront (peuvent) de toute façon, mais ce sera plus "juste pour le plaisir" jeu pour les crack-équipes, que demandé (et tilisé avec impact direct) par le produit de grande consommation .
Techniquement - empêchant de s'exécuter sous le débogueur, combiné avec du code crypté dans le fichier (avec décryptage en mémoire, possible - multicouche pour certaines parties sensibles), chaînes de manipulations de mémoire, vérification en ligne des clés dans le stockage externe (voir les méthodes précédentes, qui sont applicables séparément au vérificateur également) ...