93 votes

Obfuscation du code C/C++

Quels sont les outils disponibles pour obscurcir le code C/C++. Je préférerais une solution open source. Merci

Mise à jour : Concernant les réponses "utilisez le compilateur".

Je suis conscient de cela, mais j'ai un client qui veut obscurcir son code C/C++ ; néanmoins, je ne comprends pas pourquoi, je suis simplement chargé de mettre en œuvre une solution.

Existe-t-il des outils pour effectuer une telle tâche ?

En ce qui concerne les votes négatifs, si vous avez un problème avec la question, merci de laisser un commentaire ou une réponse.

66voto

JesperE Points 34356

Vous avez intérêt à comprendre pourquoi, sinon vous ne serez qu'un singe de code faisant un mauvais travail pour votre client. Si vous voulez que le client continue à vous embaucher, je vous suggère de discuter avec lui des raisons pour lesquelles il veut obscurcir son code.

N'oubliez pas que votre le client a un problème qu'il veut voir résolu . L'obfuscation du code est ce qu'ils pensent être la solution mais cela peut ou non résoudre leur problème. Et si cela ne résout pas leur problème, ils vous en voudront et vous aurez perdu un client.

Je sais que Joel en a parlé dans l'un des récents podcasts de Stackoverflow.

39voto

Alex Martelli Points 330805

Je ne sais pas combien vous êtes payé pour cette recherche, mais Mangle-It Les licences de C++ Code Obfuscator pour 69,99 $ - quelques heures de votre temps coûtent sûrement plus que cela au client !

39voto

mlvljr Points 1281

Suivez la norme à la folie.

Ce sera suffisant :)

15voto

Mikhail Glushenkov Points 10348

Une autre solution commerciale est Morpher (avertissement : je travaille sur ce projet). Il s'agit essentiellement d'une version de llvm-gcc avec des passes d'obfuscation supplémentaires - protection constante, maillage d'arcs CFG, clonage de blocs de base et autres. Les passes disponibles sont décrites dans le section de la documentation avec des exemples d'assemblages générés. Il est prévu que Morpher soit utilisé comme un remplacement immédiat de gcc / g++ ; les langages officiellement supportés sont C/C++/Obj-C/Obj-C++, bien que nous puissions ajouter le support de tout ce qui compile vers LLVM IR si le besoin s'en fait sentir.

11voto

sharth Points 25625

Une possibilité serait d'utiliser LLVM pour lire la source d'entrée, puis de faire en sorte que LLVM génère du C++ en utilisant son backend C++. D'après ce que j'ai entendu, le code généré ne devrait pas être trop lisible.

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