2010-07-05 6 views
1

J'ai une application de bureau (winforms), et je cherche le linker .net qui lie l'assemblée au niveau d'assembleur (inférieur à IL) afin d'empêcher la rétro-ingénierie. une autre solution pourrait aussi être acceptable. est-ce que quelqu'un sait d'un tel linker?linker pour l'application .net

+2

Etes-vous sûr qu'un éditeur de liens est ce que vous recherchez réellement? Si votre but ultime est d'empêcher l'ingénierie inverse, il y a plus d'obfuscateurs et de solutions similaires disponibles qu'il n'y a de véritables linkers pour .NET. En d'autres termes, si votre objectif est de lier votre application au code natif, vous risquez de ne pas être suffisamment proche de cet objectif pour l'appeler une solution. –

+0

vous avez raison, je suis intéressé par l'éditeur de liens pour la seule raison de la sécurité. le problème est que obfuscator ne sont pas assez solides. –

Répondre

2

Qu'est-ce que vous cherchez est un obfuscateur. Il mélange le code compilé afin qu'il fasse toujours ce qu'il est censé faire, mais si vous le décompilez, il est incompréhensible pour la plupart.

Notez que toute tentative pour le rendre sûr à 100% est garantie d'échouer, tout ce que vous pouvez faire, c'est le rendre aussi dur que possible.

Il y a de nombreuses solutions qui vont faire de diverses façons:

Note, le dernier n'est pas un obfuscateur, il virtualise sur ton application. Certains des avantages sont qu'il est un peu plus difficile d'obtenir le code sous-jacent, mais c'est avant tout un produit qui résout différents problèmes, à savoir la nécessité de séparer l'application du reste des applications installées (c.-à-d. besoin pour .NET à installer, pas de paramètres de registre en conflit, etc.)

+0

merci, mais ce sont obfuscator/fusions, il ne lie pas. le lien acctual est fait pendant l'exécution –

+0

C'est entièrement correct. Il n'y a pas beaucoup de vrais linkers pour .NET. Je vous suggère de regarder la réponse de Roman, Mono, il a un éditeur de liens. Mais comme il le dit, il y a beaucoup de restrictions en descendant cette route. Je voudrais examiner l'ensemble des problèmes que vous essayez de résoudre, il se peut que vous ayez besoin d'une solution différente d'un vrai linker. –

0

Xenocode a un super outil qui vous aidera à le faire:

http://www.xenocode.com

+0

merci mais, il conduit à cuillère serveur. Je ne suis pas sûr que vous vouliez dire ça. –

+0

Apparemment, ils ont changé leur nom. Mais l'application fait toujours ce que l'utilisateur veut. –

0

.Net Reactor est ce que vous cherchez, je suppose (il est piratable - mais beaucoup plus difficile que l'obscurcissement classique).

2

Vous pouvez jeter un oeil à la mono AOT (Ahead of Time) compilateur:

Il existe des limites bien: vous pouvez évidemment » t compiler un ensemble qui utilise les fonctions dynamiques du CLR, la réflexion, etc.

+0

merci, je suis à la recherche –

0

L'obscurcissement est peut-être bon pour vos besoins. Mais c'est toujours bidouillable. Je ne connais pas les programmes et utilitaires que vous demandez mais j'ai un conseil pour vous. Si vous devez protéger non pas tout le code de l'application mais uniquement les sections critiques, vous pouvez implémenter ces sections en C++/C et utiliser Platform Invoke pour interopérer avec le code non managé. Jeffrey Richter a recommandé cette approche.