2011-03-11 2 views
-1

J'ai un petit programme que je veux envoyer à d'autres personnes. Mais je veux éviter qu'ils puissent facilement le partager avec d'autres. Y a-t-il une protection facile que je peux utiliser? Il n'a pas besoin d'être unhackable, juste un peu de protection que vous ne pouvez pas envoyer l'application.Protéger ma petite application

+0

Dans quelle langue est-il écrit? Quel type d'application est-ce? De ce post, je devine qu'il n'y a pas grand-chose qui vaille la peine d'être volé, donc je ne m'inquiéterais pas pour ça. – Scott

+0

Oui, vous avez raison, ce n'est pas la peine de le voler. Personne ne le craquerait. Je ne veux tout simplement pas que les gars que je l'envoie puissent le partager avec d'autres. Je n'ai pas encore décidé de la langue. Probablement C# ou python. –

Répondre

3

Il ne peut pas être incassable de toute façon :) Il y a beaucoup de différentes protections que vous pouvez utiliser, mais cela dépend toujours de l'habileté de l'ingénieur.

Une technique assez standard consiste à emballer votre logiciel avec un packer comme asprotect, tatou, aspack, upx, il y a des tonnes d'options. Cela leur rendrait difficile l'hexeditation de votre logiciel, le débogage et le démontage.

Si vous souhaitez utiliser une protection série, vous pouvez faire beaucoup de choses. L'un de mes favoris utilise la clé pour décrypter de manière dynamique des blocs de code pré-cryptés et les exécuter. C'est ce qu'on appelle le polymorphisme et, avec le code auto-modifiable, cela peut être une protection assez frustrante.

Si vous voulez garder les choses très simples, vous pouvez simplement créer une protection xor où correct_serial XOR constant == another_constant. En utilisant XOR constant another_constant, vous pouvez simplement créer une clé.

Vraiment des tonnes de choses à faire ici, c'est toujours une question de goût et de connaissance.

+0

Merci pour la réponse rapide! –

+0

La chose est, je ne me soucie même pas de quelqu'un qui le craque. C'est vraiment juste une petite application simple. Je ne pense pas que quelqu'un se soucie de le craquer. J'ai vu que certaines applications utilisent un système clé où ils obtiennent une clé pour leur hardwareid. C'est assez cool parce que je n'aurais pas besoin d'un serveur web pour vérifier la clé en ligne. Est-ce difficile de coder quelque chose comme ça? –

+0

Je suppose que vous voulez dire un dongle, une protection matérielle. Ces choses sont un peu démodées aujourd'hui puisque vous devez également regrouper le matériel. De plus, vous devez le créer aussi. Je ne le recommanderais pas. Trop de bruit pour aucune raison réelle. – Spyros

0

Il existe des approches nombreux à cela, c'est l'un:

Créer un service web d'authentification. Obtenez votre application pour générer une clé unique à partir de quelque chose qui identifie la machine. Cela vous est envoyé et vous générez une clé d'accompagnement que votre application peut vérifier par rapport à sa clé unique. Comme vous pouvez l'imaginer, ce n'est pas quelque chose que vous ajoutez rapidement. Cela nécessite de l'infrastructure et de la gestion, ce qui est délicat.

1

Il y a beaucoup de solutions libres, la plupart sont craquables. En dépit de l'opinion populaire, les dongles modernes peuvent être 1) sans problème et 2) incassable. Mais ils peuvent coûter de 25 à 100 $ chacun, donc pas un bon choix pour les logiciels de faible valeur. L'utilisation de clés est souvent liée au chiffrement à clé symétrique du fichier .exe, de sorte qu'il ne peut pas être facilement copié. La clé est unique à l'installation et peut être créée en l'attachant aux caractéristiques de la machine comme le numéro de série du CPU, l'adresse MAC, le numéro de série HD, etc. Vous pouvez également créer une petite table de ces empreintes digitales et enregistrer cette table; puis avoir l'application "téléphone à la maison" de temps en temps pour comparer à un DB de serveur. Ces deux méthodes sont craquables, mais vous avez dit que vous ne cherchiez pas quelque chose d'intraitable. L'inconvénient des empreintes digitales HW est qu'il peut échouer lorsque l'utilisateur met à niveau la carte nette ou HD. alors vous avez un client mécontent parce qu'ils ont payé la licence et qu'elle ne fonctionnera pas.

Questions connexes