Comment choisir un code numérique pour un programme. Clé de licence d'un programme ou d'un jeu. Piratage physique du programme

Lorsque vous devinez un mot de passe, personne ne garantit le succès. de cette entreprise). Cependant, certaines règles peuvent augmenter considérablement vos chances d'obtenir une issue favorable à cette affaire.

Où commencer

  1. Souvent, non seulement un mot de passe est requis, mais également un identifiant. Si vous cherchez un identifiant, par exemple pour pénétrer dans l’ordinateur de votre collègue, utilisez son nom. Si cela ne fonctionne pas, regardez comment cette personne s'appelle sur les réseaux sociaux (Twitter, Facebook, Vkontakte, etc.) - souvent cela fonctionne à 100 %.
  2. Vérifiez s'il existe des restrictions sur la longueur du mot de passe que vous saisissez ou sur les caractères utilisés. Souvent, le mot de passe doit comporter au moins six caractères et contenir au moins un chiffre. Si vous ne savez pas s'il existe de telles restrictions, essayez de créer votre propre compte, par exemple sur le site pour lequel vous sélectionnez un mot de passe - lors de l'inscription, vous serez informé des exigences relatives aux mots de passe.
  3. Demandez une question d'indice. Les pages de saisie de mot de passe ont souvent cette fonctionnalité. En règle générale, des questions telles que « Nom de jeune fille de la mère ? », « Quel est le nom de votre animal de compagnie ? », « Dans quelle ville êtes-vous née ? » sont utilisées comme questions d'incitation. etc. Cela réduira considérablement options possibles mots, surtout si vous savez au moins quelque chose sur la personne !

Utiliser des astuces

  1. Devinez simplement le mot de passe. Le plus souvent, les gens utilisent la même chose mots de passe standards. Leur liste est connue depuis longtemps et est constamment mise à jour). Vous trouverez ci-dessous les 25 mots de passe les plus courants (selon Splash Data) :
    mot de passe
    123456
    12345678
    abc123
    qwerty
    singe
    laisse moi entrer
    dragon
    111111
    base-ball
    Je t'aime
    numéro de confiance1
    1234567
    soleil
    maître
    123123
    accueillir
    ombre
    Ashley
    football
    Jésus
    Michael
    ninja
    mustang
    mot de passe1

    Voici quelques statistiques :
    4,7 % des utilisateurs utilisent un mot de passe ;
    8,5 % des utilisateurs choisissent l'une des deux options suivantes : mot de passe ou 123456 ;
    9,8 % des utilisateurs choisissent l'une des trois options suivantes : mot de passe, 123456 ou 12345678 ;
    14 % des utilisateurs choisissent l'un des 10 mots de passe les plus populaires ;
    40 % des utilisateurs choisissent l'un des 100 mots de passe les plus populaires ;
    79 % des utilisateurs choisissent l'un des 500 mots de passe les plus populaires ;
    91 % des utilisateurs choisissent l'un des 1 000 mots de passe les plus populaires.

  2. Appliquer des règles de sélection connues. Il a été établi expérimentalement que si un mot de passe contient des chiffres, alors ce sera le chiffre 1 ou 2, et ce sera à la fin de celui-ci. De plus, si le mot de passe comporte une majuscule, elle se trouvera au tout début du mot, suivie d'une voyelle.
  3. Le sexe d'une personne peut fournir un indice. On sait que les femmes préfèrent utiliser des noms personnels (le nom de leur mari ou de leur amant) comme mots de passe, et les hommes préfèrent utiliser leurs passe-temps et leurs intérêts (le nom de leur équipe sportive préférée, de leur marque de voiture, etc.).

Utiliser les informations pertinentes pour la personne

  1. Noms propres : noms des conjoints, des membres de la famille, des animaux de compagnie, des athlètes, surnoms des enfants, etc.
  2. Loisirs et intérêts : noms de programmes préférés, personnages de films, métiers, plats culinaires, etc.
  3. Numéros et dates importants : anniversaire, adresse, numéro de téléphone, etc.

Avertissement : tout ce qui est écrit ci-dessous est rédigé uniquement à des fins éducatives et de recherche, ainsi que pour comprendre les mécanismes de protection contre le piratage. L'auteur ne recommande en aucun cas d'utiliser cette information pour les programmes de piratage.

Dans cet article, je souhaite parler de trois façons principales et demie de pirater des programmes .NET. L'objectif que je poursuis est d'aider les développeurs à mieux comprendre les mécanismes de sécurité de leurs programmes, c'est-à-dire identifier les menaces les plus évidentes et prendre les mesures appropriées (ou non).

Je n'entrerai pas dans les détails ni n'utiliserai d'outils de piratage complexes. Tout sera décrit « pour les nuls », c'est à dire tous les outils seront simples, facilement accessibles et gratuits. Et le principal sera Reflector, un décompilateur de programmes pour .NET

Comme cobaye, j'ai choisi Expresso - un analyseur expressions régulières. Ce programme C’est gratuit, la licence ne semble rien dire sur le piratage, mais sans inscription, cela ne fonctionnera que 60 jours. En d’autres termes, les dommages liés au piratage de ce programme sont minimes et sa structure interne est très bien adaptée à la formation. J'espère que l'auteur de ce programme ne sera pas offensé par moi.


Tout d'abord, un bref programme éducatif sur la structure du programme .NET, pour ceux qui ne sont pas familiers avec le développement de ce Framework : tout le code écrit dans n'importe quel langage .NET (C#, Visual Basic, F#, Delphi.NET) est compilé dans un langage intermédiaire spécial, généralement appelé IL ou MSIL. C'est quelque chose comme un assembleur, mais très intelligent et avec des instructions très puissantes. Et c'est, en principe, le même langage que C#, seule la syntaxe est pire (et il y a plus de possibilités). De plus, le programme .NET utilise activement les métadonnées, c'est-à-dire toutes les informations sur les classes, méthodes, propriétés, attributs et tout le reste sont enregistrées dans le fichier exécutable.
Ceux. en fait, décompiler un programme n'est pas un concept très correct dans ce cas. Tout est déjà sous forme ouverte et des outils sous la forme de Reflector sont chargés d'amener les constructions MSIL aux constructions correspondantes de C# ou d'un autre langage, augmentant ainsi la lisibilité du code.

Passons au piratage proprement dit.

0. Réinitialisation de l'essai

En fait, ce n'est même pas un hack, mais un moyen semi-légal de prolonger la durée de vie d'un programme inactivé. Cela consiste dans le fait qu'il existe un endroit où la date du premier lancement est stockée et modifiée/détruite. Après cela, vous pourrez toujours utiliser le programme jusqu'à la prochaine date limite.

Regardons notre sujet de test avec un réflecteur :
Après avoir parcouru un peu le code, nous trouvons une ligne intéressante dans le constructeur MainForm


Ouvrez l'éditeur de registre, accédez à HKEY_CURRENT_USER\Software\Ultrapico\Expresso et consultez les clés suivantes :


Nous les supprimons et obtenons encore 60 jours de travail.

Cette option, bien sûr, est simple et évidente, mais même si elle était plus compliquée, il faudrait un peu plus de temps au réflecteur pour découvrir tous les endroits où les informations sont écrites et les effacer.

Conseil aux développeurs qui tenteront d'écrire des données dans un endroit caché : écrivez plus soigneusement, sinon tout peut se transformer en problèmes utilisateurs ordinaires, qui, pour une raison quelconque, n'ont pas cet endroit, ou n'y ont pas suffisamment de droits.

1. Écriture de keygen

L'option la plus terrible pour le développeur et la plus agréable pour l'utilisateur final malveillant. Le programme se considère sous licence, aucun geste effrayant ne doit être fait.

Nous ouvrons le réflecteur et recherchons le code des classes contenant Licence ou Enregistrement, nous voyons :

Lorsque vous saisissez un nom et un code, un hachage est calculé par nom et comparé au code.


Ce hachage utilise DES et toutes sortes de préfixes


Les octets sont convertis en chaîne à l'aide de cette méthode.

Maintenant, tout est clair, ouvrez l'IDE et copiez tous les morceaux de code nécessaires (ou implémentez-le nous-mêmes). Il ne reste plus qu'à découvrir quelles sont les valeurs des paramètres d'implémentation Prefix, Suffix et MyDES. Je ne les donnerai pas, ce sont des détails techniques.

En conséquence, nous générons une clé pour n'importe quel nom et voyons :


Bingo !

La protection contre les keygens est simple et évidente : utilisez une forme de cryptage asymétrique. Ceux. faites en sorte qu'il soit impossible de générer un code sans connaître la clé privée, et cette clé ne se trouve qu'à un seul endroit - chez l'auteur du programme.

2. Utiliser un emballage

Vérifier l'exactitude de la licence est une tâche assez fastidieuse et lente. Par conséquent, les développeurs de programmes vérifient généralement la licence une fois, puis utilisent l'indicateur résultant - valide/invalide (en option, quelle est sa validité, si plusieurs types de licences, différant par leurs capacités, sont autorisés). Ici, vous pouvez jouer là-dessus en utilisant l'algorithme suivant :
  1. Indiquez au programme que la licence a déjà été vérifiée
  2. Indiquez au programme que la licence est correcte
Comment faire? J'ai déjà évoqué la présence de métadonnées dans fichiers exécutables au début, nous utiliserons ceci. Voyons comment le programme est lancé et comment la licence est vérifiée :


Il n'y a rien d'intéressant avec le lancement, mais la vérification montre que si le programme est déjà enregistré, alors il considère que tout va bien et n'effectue aucun travail supplémentaire pour déterminer l'exactitude de la licence.

Utilisons ceci :
Faisons-le nouveau projet, ajoutez une référence à Expresso.exe et exécutez-le par nous-mêmes :


Voyons ce qui se passe:


Eh bien, qui en douterait.

Dans ce cas, tout s'est avéré simple, mais si l'auteur du programme avait remplacé les propriétés publiques par des propriétés privées, il n'aurait alors eu qu'à utiliser Reflection pour y accéder et tout serait revenu au problème initial.

Je pense qu'il est clair comment vous pouvez essayer de vous protéger contre cela - vérifiez périodiquement la licence, examinez l'environnement à partir duquel le programme est exécuté, rendez impossible la définition de la variable requise.

Mais toutes ces protections conduiront l'attaquant à utiliser

3. Piratage physique du programme

Ici, tout devient sérieux. L'ensemble du programme est décompilé en MSIL puis réassemblé à partir de celui-ci (rappelez-vous, j'ai écrit que MSIL est le même langage que C# ?). Pour décompiler, nous avons besoin d'un utilitaire du SDK appelé ildasme, et pour la compilation, le compilateur provient du .NET Framework ilasme.

Lancez ildasm, ouvrez Expresso.exe et enregistrez le dump dans un fichier .il. Nous retrouvons la méthode IsRegistered déjà évoquée et ajoutons un peu de notre code (sans étiquettes) :

Ensuite on prend l'ilasm et on remonte le tout (sans oublier de connecter les ressources).

Ce que fait ce code : installe nom désiré pour l'enregistrement (facultatif) et renvoie le statut indiquant que tout va bien.
Pour que ce soit plus clair, voici à quoi cela ressemble dans le réflecteur, en C#

Ceux. Il est bien évident que maintenant tout ira bien :

Un peu sur le code dans MSIL : c'est une machine à pile qui n'a pas de registres, toutes les opérations ont la forme : pousser le nombre de paramètres requis sur la pile, exécuter une fonction qui prend le nombre de paramètres requis et met le résultat. Eh bien, et vice versa : définissez la valeur de la variable sur ce qui se trouve sur la pile. Pour mieux comprendre comment tout cela fonctionne, je recommande une technique simple : écrire un petit programme dans un langage familier, le compiler, voir ce qui se passe dans MSILe et comprendre les constructions du langage.
En même temps, certaines choses dans MSIL peuvent être très bien faites, par exemple, échanger deux variables - 4 belles lignes (moins en C#, mais moche).

Ce que l’attaquant sacrifie : la signature du programme, désormais elle n’est plus celle de l’auteur, mais la sienne. Dans certains cas, cela pose un problème si le programme utilise de nombreuses bibliothèques. Ensuite, le méchant hacker devra tous les démonter et les remonter, mais s'il y parvient, il aura alors « sa propre » version signée du programme. son clé.

Il y a en fait peu de protection contre toute cette honte : effectuez une obscurcissement ou déplacez une partie des contrôles logiques/sécurité dans le code natif.

Conclusion

Je pense vous avoir dit avec quelle facilité tout peut être cassé sur .NET si le créateur n'a pas fait un effort pour protéger son programme. Et vous décidez si cela vaut la peine de créer une protection et d’y consacrer du temps et des ressources. Ou peut-être simplement créer un système basé sur le Web ou une version limitée gratuite. C'est aux développeurs de décider.

Divers générateurs (mots de passe, pseudos, nombres aléatoires et codes) sont très populaires, car ils sont largement utilisés par les administrateurs publics, les propriétaires d'organisations et les utilisateurs ordinaires à diverses fins.

Générateur de codes promotionnels– un service spécifique qui peut être utilisé par les propriétaires d'organisations et d'entreprises commerciales pour organiser des promotions et des tirages au sort.

Par exemple, à l'aide d'un code promotionnel, des réductions peuvent être accordées, des chèques-cadeaux peuvent être valables dans les magasins et sur d'autres services, ils peuvent être utilisés pour donner accès à une gamme de services plus large.

Choix

Pour les utilisateurs qui utilisent assez souvent les codes promotionnels, il est important de trouver un générateur fonctionnel et pratique qui répond à toutes les exigences.

Ces services sont mis en œuvre à la fois sous forme d'applications pour réseaux sociaux(ce qui est particulièrement pratique lors de la réalisation de promotions auprès des abonnés publics par exemple), aussi bien en ligne que sous forme de programmes installés sur un ordinateur (ce qui dans la plupart des cas est totalement gênant).

Ils diffèrent par les paramètres et la liste des fonctionnalités.

Un générateur correctement choisi peut simplifier considérablement le processus d'organisation de promotions et d'offres spéciales, ainsi que de tirages au sort.

Caractéristiques principales

Tous les générateurs populaires (et moins populaires) diffèrent les uns des autres par un certain nombre de paramètres.

Parmi eux figurent des indicateurs tels que le nombre de caractères dans le code, la présence d'un préfixe et d'un suffixe (ce qui simplifie la classification et la division des codes en groupes), utilisés dans, etc.

De plus, différents services proposent différents nombres de codes pour la génération simultanée (en appuyant sur un bouton).

Basique Caractéristiques les services discutés ci-dessous sont présentés dans le tableau.

Tableau 1 . Caractéristiques comparatives de divers services de génération de codes promotionnels
NomLicencePréfixe, suffixeSélection des symboles à utiliserSélection du nombre de caractèresGénération rapide de plusieurs codes
GetEasyCode.ruEssai gratuit, avancé payantOuiOuiOuiOui
RandomiserGratuitNonOuiOuiOui
Prenez le codeGratuitPréfixe uniquementOuiOuiOui
AcadémieGratuitNonNonNonNon
Générateur ukrbio.comGratuitNonLimitéOuiOui
Studio F1GratuitNonLimitéOuiOui
Dans le mondeGratuitPréfixe uniquementLimitéOuiOui

Sur la base de ces caractéristiques, il est plus facile de faire le bon choix.

GetEasyCode.ru

Il s'agit d'un site Web d'une page à chargement rapide avec un générateur rapide et stable.

Presque toujours disponible.

La principale caractéristique distinctive du service– fonctionnalité maximale et vitesse élevée.

Le menu est simple et intuitif, le design est agréable et ne détourne pas du travail.

  • Vous permet de créer un préfixe et un suffixe ;
  • Vous pouvez générer plusieurs codes à la fois (de 1 à 100) ;
  • L'utilisateur peut choisir les symboles à utiliser dans le code.
  • Changement peu pratique du nombre de codes ;
  • Fourniture payante de 100 à 999 codes - coûte 299 roubles (au moment de la rédaction) ;
  • Fourniture payante de 1 000 codes ou plus - coûte 999 roubles (également au moment de la rédaction) ;
  • Vous devez constamment appuyer sur le bouton « Je ne suis pas un robot ».

Voici ce que disent les utilisateurs qui ont déjà utilisé ce générateur : « Service pratique et multifonctionnel », « Prix de production assez élevés », « C'est pratique d'utiliser ce générateur - je ne l'utilise que ».

Randomiser

Ce site est conçu pour générer aléatoirement divers mots de passe, codes promotionnels, numéros, etc.

Il est multifonctionnel et pratique pour ceux qui font diverses farces ou utilisent de nombreux mots de passe.

Ce générateur se positionne comme un service premium pour les boutiques en ligne.

Ce n'est pas le plus simple à utiliser, mais c'est un service vraiment riche en fonctionnalités et gratuit.

La principale caractéristique du service est le mode de génération de code dit « individuel ».

Dans ce mode, vous pouvez écrire du code existant, indiquant que seuls certains caractères doivent être modifiés.

  • Possibilité d'enregistrer un préfixe ;
  • Possibilité de saisir manuellement les symboles utilisés ;
  • Disponibilité d'un mode de paramétrage de génération « individuel » ;
  • Vous pouvez générer jusqu'à 10 millions de codes et les télécharger dans un format ou un autre ;
  • Indique la probabilité de sélection pour des codes de différents types.
  • Impossibilité d'enregistrer un suffixe ;
  • Petit nombre de caractères limité (de 4 à 16) ;
  • Au moins 1000 codes sont générés.

Les utilisateurs réagissent au service de la manière suivante : « C'est pratique de pouvoir générer beaucoup de codes à la fois », et le menu n'est pas très pratique.

Académie

Ce générateur est disponible sur le lien https://academy.ru/personal/promo-gen/.

Il s'agit d'un site multifonctionnel, parmi ses nombreuses fonctions il y a, entre autres, un générateur de codes promotionnels.

Une conception assez complexe et de nombreuses pages conduisent au fait que le service prend beaucoup de temps à charger.

Il est important de comprendre que ce site n'est pas un générateur spécialisé. Cela peut aider pour une génération unique.

Mais il est impossible de l’utiliser à grande échelle.

  • Génération rapide sans paramètres inutiles ;
  • Copie de code pratique en appuyant sur un bouton ;
  • Base de données prête à l'emploi des codes promotionnels inutilisés.
  • Un très petit nombre de fonctions - vous ne pouvez pas sélectionner le nombre ou le nombre de codes générés simultanément, etc. ;
  • Vous ne pouvez pas spécifier de préfixe ou de suffixe ; la conception du code est également sélectionnée par le système par défaut ;
  • Il y a beaucoup de liens différents et de complications de conception sur la page, ce qui rend le travail pas trop simple.

Les utilisateurs parlent du générateur comme ceci : « Il est peut-être acceptable de recevoir un code promotionnel, mais on ne sait pas comment l'utiliser plus largement », « Très peu pratique et peu de fonctions ».

Générateur ukrbio.com

Il s'agit d'un générateur d'une page avec un menu simple et une interface intuitive.

Il a un design simple et agréable, grâce auquel la page se charge rapidement.

Le service fonctionne de manière stable et fournit un ensemble suffisant de fonctions.

Ce service vous permet de générer des combinaisons uniquement à partir de chiffres, uniquement à partir de lettres, mixtes, dont ou.

Vous pouvez également ajuster la casse des lettres et afficher tous les codes dans un format ou un autre.

  • Menu simple et conception minimaliste des pages du site Web ;
  • Création gratuite d'un très grand nombre de codes (de 1 à 9999 pièces) ;
  • Il existe des possibilités assez larges pour personnaliser le format et l'apparence des futurs codes.
  • <Рис. 8 Studio F1>

    Ce service de génération multifonctionnel est disponible sur https://studiof1.ru/blog/developing/passgen/.

    Le site Web est une ressource multifonctionnelle proposant des services de promotion de sites Web, etc.

    La ressource a une conception assez simple et est pratique à utiliser dans les cas où l'utilisateur, en plus des promotions, organise des tirages au sort et d'autres événements pour attirer un public.

    À proprement parler, ce service s'appelle un générateur de mots de passe, il est capable de créer des combinaisons assez complexes et variées pouvant être utilisées comme codes promotionnels.

    Après tout, ce service vous permet d'utiliser presque tous les mêmes paramètres que ceux proposés par le générateur de code promotionnel.

    • Possibilité de sélectionner la longueur du mot de passe et sa composition (lettres minuscules et majuscules, chiffres, signes) ;
    • Possibilité de générer plusieurs codes de mot de passe à la fois ;
    • Ce site met à votre disposition de nombreuses fonctions auxiliaires, souvent nécessaires.
    • Impossibilité de définir le préfixe et le suffixe ;
    • Il n'est pas possible de limiter ou de sélectionner les caractères utilisés ;
    • Tous les codes sont écrits en un mot sans espaces et ont à peu près le même apparence, ils ne peuvent pas être téléchargés - seulement copiés sous forme de texte brut, ce qui n'est pas pratique s'il y en a un grand nombre.

Imaginons une situation dans laquelle vous deviez « détruire Windows » (supprimer le système d'exploitation système Windows) et installez-en un nouveau. Si vous y parvenez, un problème peut survenir, tel que l'installation de programmes et de jeux qui vous sont déjà familiers. C'est bien s'ils sont disponibles gratuitement et gratuitement, mais que faire lorsque vous avez payé pour un programme (ou un jeu), et lorsque vous le réinstallez, cela vous oblige à clé de licence(et c'est tout à fait normal) ? C'est bien si vous l'avez enregistré quelque part et l'avez noté, mais que se passe-t-il si vous avez perdu ou n'avez pas laissé la clé ? Dans ce cas, il existe deux solutions.

1) Écrivez en faveur de ce programme et expliquez la situation. Si les développeurs sont normaux et que vous leur prouvez que vous avez réellement acheté leur produit, alors ils vous aideront.
2) Utilisez-en un programme gratuit, sur lequel il y aura du texte ci-dessous.

Le programme s'appelle donc Belarc Advisor - Audit PC personnel gratuit

Le processus d'installation est normal.
Tout d'abord, nous sommes d'accord avec le message d'information selon lequel ils disposent également d'une version pour Android

Ensuite, nous acceptons le contrat de licence


Ensuite, cliquez sur le bouton Installer (le programme ne demande pas où installer) et acceptez d'analyser le système pour rechercher des clés :


Nous attendons la fin


Et finalement, une fenêtre (ce type de rapport) s'ouvrira avec diverses informations (système d'exploitation, tous les composants, utilisateurs, réseaux, etc.). Ici, nous recherchons l'élément Licences logicielles en bas et voyons tout ce que le programme a trouvé :

Je n'ai pas grand-chose, parce que... J'utilise principalement des solutions gratuites, mais le sens est clair.

Ainsi, en utilisant ce programme, vous pouvez trouver les clés de licence non seulement pour système opérateur et programmes, ainsi que des statistiques détaillées sur votre ordinateur (jusqu'aux dernières clés USB connectées). Par conséquent, je pense que ce programme vous sera utile et qu'il vaut la peine de le connaître.




Haut