36 votes

Comment masquer mon script Perl pour rendre difficile le reverse engineering?

J'ai développé un script Perl doté d'une logique métier confidentielle.

Je dois donner ce script à un autre codeur Perl pour le tester dans son environnement. Il peut essayer d'extraire la logique dans mon programme. Je veux donc rendre mon script très difficile à comprendre.

Aucune suggestion?

124voto

Stephen C Points 255558

Je suggère que vous demandiez à cette personne et à sa direction de signer un accord juridiquement contraignant interdisant toute forme d'ingénierie inverse, ainsi que tout autre moyen d'accéder aux éléments que vous souhaitez protéger.

L'obscurcissement ne peut vous protéger contre une tentative déterminée d'ingénierie inverse. C'est théoriquement et pratiquement impossible.

43voto

brian d foy Points 71781

N'essayez pas de dissimuler votre Perl. Vous perdez votre temps là-bas. Je montre beaucoup de gens comment briser ce genre de choses dans le Mastering Perl juste pour ne pas essayer de le faire.

Avez-vous envisagé la mise en œuvre de l'sensible des trucs en C et d'expédition binaires pré-compilés avec une interface Perl? Il est relativement facile de le faire et a le même effet sans compter sur une astuce. Déterminé, l'homme du métier peut toujours inverser ingénieur, mais c'est vrai pour n'importe quelle solution. Vous ne devez compiler la bibliothèque pour chaque plate-forme, mais si ce genre de choses est assez important de le protéger, il est important assez pour charger assez pour les gens à les utiliser.

Sinon, mettre le sensible des trucs derrière un web service afin de ne jamais obtenir le code.

Une habile tactique que j'ai vu implique un fichier qui est adapté à chaque client, que ce soit par le biais de mise en forme ou de contenu. Cela sert à quelque chose comme une faible teneur en filigrane à l'aide de banal code, des commentaires, ou des documents. Trouver un curieux texte de la séquence et vous savez que la source de la fuite.

L'entreprise de réponse est de ne pas donner le programme à des personnes que vous n'avez pas confiance, ou pour rendre les sanctions assez rigide pour les en dissuader.

15voto

Michael Carman Points 21983

9voto

tsee Points 4371

Tout d’abord, laissez-moi vous dire que vous aboyez le mauvais arbre. Ce que vous voulez faire est la mauvaise approche pour plusieurs raisons.

Deuxièmement, consultez Filter :: Crypto (et PAR :: Filter :: Crypto ). Lisez tout le manuel avant de commencer.

7voto

Alan Haggai Alavi Points 34260

Utilisez Acme :: Bleach pour blanchir le code. Puis obscurcissez le code blanchi résultant. Cependant, tout code encodé / obscurci peut être décodé, car l'interpréteur Perl doit le décoder de toute façon.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X