Question

Je veux dire, je me suis toujours demandé comment quelqu'un pourrait développer des algorithmes pour casser / contourner les contraintes de l'utilisation légale dans de nombreux programmes de shareware.

Juste pour la curiosité.

Était-ce utile?

La solution

En plus d'être illégal, c'est une tâche très complexe.

Parlant simplement à un niveau théorique, le moyen le plus courant consiste à désassembler le programme pour résoudre les problèmes et à essayer de trouver le lieu où la clé ou le code série est vérifié.

Plus facile à dire qu'à faire, car tout système de protection sérieux vérifiera les valeurs à plusieurs endroits et tirera également des informations essentielles de la clé de série pour une utilisation ultérieure. Ainsi, lorsque vous penserez l'avoir deviné, le programme se bloquera.

Pour créer une fissure, vous devez identifier tous les points où une vérification est effectuée et modifier le code d'assemblage de manière appropriée (en inversant souvent un saut conditionnel ou en stockant des ressources dans des emplacements de mémoire).

Pour créer un keygen, vous devez comprendre l'algorithme et écrire un programme permettant de refaire exactement le même calcul (je me souviens d'une ancienne version de MS Office dont la série avait une règle très simple, la somme du chiffre aurait dû être un multiple de 7, donc écrire le keygen était plutôt trivial).

Pour les deux activités, vous devez suivre l’exécution de l’application dans un débogueur et essayer de comprendre ce qui se passe. Et vous devez connaître l'API de bas niveau de votre système d'exploitation.

Certaines applications fortement protégées ont le code crypté afin que le fichier ne puisse pas être désassemblé. Il est déchiffré lorsqu’il est chargé en mémoire, mais ensuite, ils refusent de démarrer s’ils détectent qu’un débogueur en mémoire a démarré.

En substance, cela nécessite une connaissance très approfondie, de l'ingéniosité et beaucoup de temps! Oh, ai-je dit que c'était illégal dans la plupart des pays?

Si vous voulez en savoir plus, Google pour les + ORC Cracking Tutorials est très vieux et probablement inutile de nos jours mais vous donnera une bonne idée de ce que cela signifie.

En tout cas, une très bonne raison de savoir tout cela est si vous voulez écrire votre propre schéma de protection.

Autres conseils

Les malfaiteurs recherchent le code de vérification de clé en utilisant un désassembleur. C’est relativement facile si vous savez comment faire cela.

Ensuite, vous traduisez le code de vérification de clé en C ou dans une autre langue (cette étape est facultative). Inverser le processus de vérification de clé vous donne un générateur de clé.

Si vous connaissez l'assembleur, il faut environ un week-end pour apprendre à le faire. Je l'ai fait il y a quelques années à peine (je n'ai encore rien publié. C'était juste une recherche pour mon travail de développement de jeu. Pour écrire une clé difficile à déchiffrer, vous devez comprendre comment les gens abordent la fissuration).

Le message de Nils traite des générateurs de clés. Pour les fissures, vous trouvez généralement un point de branche et inversez (ou supprimez la condition) la logique. Par exemple, vous allez tester pour voir si le logiciel est enregistré et le test peut renvoyer zéro si tel est le cas, puis sauter en conséquence. Vous pouvez modifier le "saut si égal à zéro (je)". "Sauter si non-égal à zéro (jne)" en modifiant un seul octet. Ou vous pouvez écrire sans opération sur différentes parties du code qui font des choses que vous ne voulez pas faire.

Les programmes compilés peuvent être désassemblés et avec suffisamment de temps, des personnes déterminées peuvent développer des correctifs binaires. Une fissure est simplement un correctif binaire pour que le programme se comporte différemment.

Tout d’abord, la plupart des systèmes de protection contre la copie ne sont pas très avancés, c’est pourquoi vous ne voyez pas beaucoup de gens se lancer eux-mêmes.

Il existe quelques méthodes pour cela. Vous pouvez parcourir le code dans un débogueur, ce qui nécessite généralement une connaissance décente de l'assemblage. En utilisant cela, vous pouvez avoir une idée de l'endroit où sont appelées les méthodes de protection contre la copie / programme du programme. Avec cela, vous pouvez utiliser un désassembleur comme IDA Pro pour analyser le code plus en détail et essayer pour comprendre ce qui se passe et comment vous pouvez le contourner. J'ai déjà craqué les Betas dont la durée de vie était limitée en insérant des instructions NOOP lors de la vérification de la date.

Il s’agit vraiment d’une bonne compréhension du logiciel et d’une compréhension de base de l’assemblage. Hak5 a réalisé une série en deux parties sur les deux premiers épisodes de cette saison sur les bases du reverse engineering et du cracking. C'est vraiment basique, mais c'est probablement exactement ce que vous recherchez.

Un pirate informatique éventuel désassemble le programme et recherche la "protection contre la copie". bits, en particulier pour l'algorithme qui détermine si un numéro de série est valide. A partir de ce code, vous pouvez souvent voir quel modèle de bits est nécessaire pour déverrouiller la fonctionnalité, puis écrire un générateur pour créer des nombres avec ces modèles.

Une autre alternative consiste à rechercher des fonctions qui renvoient " true " si le numéro de série est valide et " faux " si ce n’est pas le cas, développez un correctif binaire pour que la fonction retourne toujours "true".

Tout le reste est en grande partie une variante de ces deux idées. La protection contre la copie est toujours par définition cassable - à un moment donné, vous devez vous retrouver avec un code exécutable ou le processeur ne peut pas l'exécuter.

Le numéro de série que vous pouvez simplement extraire l’algorithme et commencer à lancer "Devine". et cherchez une réponse positive. Les ordinateurs sont puissants, il ne faut en général que peu de temps avant de commencer à cracher des hits.

En ce qui concerne le piratage informatique, j’étais capable de passer en revue les programmes à un niveau élevé et de rechercher un point où ils ne fonctionnaient plus. Ensuite, vous revenez au dernier "Appel". qui a réussi et y entrer, puis répétez. À l'époque, la protection contre la copie écrivait généralement sur le disque et vérifiait si une lecture ultérieure réussissait (dans ce cas, la protection contre la copie échouait car elle gravait une partie de la disquette avec un laser afin de ne pas pouvoir l'écrire).

Ensuite, il suffisait de trouver le bon appel et de coder en dur la valeur de retour correcte pour cet appel.

Je suis sûr que cela reste similaire, mais ils déploient beaucoup d'efforts pour cacher l'emplacement de l'appel. La dernière fois que j’ai essayé, j’ai abandonné parce que le chargement de code continuait à se faire par le code que je suivais seul, et je suis sûr que c’est devenu beaucoup plus compliqué depuis.

Je me demande pourquoi ils ne distribuent pas uniquement des fichiers binaires personnalisés, où le nom du propriétaire est stocké quelque part (crypté et obscurci) dans le binaire ou mieux distribué sur tout le binaire. AFAIK Apple le fait avec les fichiers de musique. depuis iTunes Store, mais il est beaucoup trop facile de supprimer le nom des fichiers.

Je suppose que chaque fissure est différente, mais je suppose que dans la plupart des cas, quelqu'un dépense beaucoup de temps dans le débogueur à suivre l'application en question.

Le générateur de série va encore plus loin en analysant l'algorithme qui vérifie la validité du numéro de série et effectue le reverse engineering.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top