Protéger le code source avant la compilation

 

Tout développeur sait très bien combien d'efforts et de temps il faut pour mettre au point un algorithme efficace par ses propres moyens et, après l'avoir créé, il a le droit inconditionnel de le protéger.

Nous sommes sûrs que de nombreux utilisateurs, commenous, ont été témoins de telles situations courantes :

1. décompilation *.ex4 dans le but d'étudier la logique du travail de quelqu'un d'autre et/ou de le modifier ultérieurement. Avec les dernièresversions du terminal MT4, ce processus est devenu plus compliqué, mais les pirates expérimentés réussissent néanmoins à analyser leur contenu et à effectuer des modifications non autorisées, notamment en désactivant la protection contre lesessais et diverses liaisons.

2. renommage trivial des fichiers compilés, nom du fabricant (#propertycopyright) afin de les faire passer pour des produits autres ou "propriétaires".

Nous développons unesolution logicielle pour aider tout développeur de code et ses clients à protéger leur code source contre l'examen, la modification, le renommage et la revente non autorisés.

Cette protection est réalisée au niveau primaire du code source au moyen de son cryptage dynamique selon des algorithmes que nous avons développés, sansutiliser de bibliothèques supplémentaires ou d'outils externes de protection contre la décompilation, c'est-à-dire que le code source lui-même est converti en *. formatmq4.

Tout programmeur expérimenté peut constater par lui-même, à partir de l'exemple ci-dessus, que la recompilation d'un telcode source crypté en *. Le formatex4rend son étude et son analyse très difficiles, voire impossibles. En outre, tout le monde peut tester gratuitement l'algorithme decryptage de sécurité en envoyant n'importe quel* code source en *. formatmq4par e-mail codeprotector@ypy.cc (détails ci-dessous)

Caractéristiques actuelles (version bêta) :

1. cryptage dynamique du code source à l'aide d'un algorithme propriétaire unique

Exemple 1: Voici à quoi ressemble le code source avant le cryptage (fichier joint).

code original

Exemple 2: Voici à quoi ressemble le code source après le cryptage dynamique (fichier joint).

code protégé

2. pour fournir une protection supplémentaire au propriétaire du code, chaque code source crypté intègre automatiquement la protection des informations complexes du propriétaire du code avec le bloc d'informations (il est affiché sur le diagramme dans le coin inférieur droit).

Le graphique s'affiche :

+ desinformations contenantle numéro d'identification ducode source (grâce auquel le propriétaire peut toujours individualiser une instance particulière de son produit). Cela peut être trèsutile, par exemple, pour le propriétaire du code, afin de comprendre à qui appartient l'instance particulière du produit qui a été publiée ou piratée sans autorisation.

+nom de fichier original, qui a été utilisé par le propriétaire du code source lors du cryptage. Toute modification ultérieure du nom de fichier sécurisé d'origine rompra la logique (seul l'ajout du nom de fichier d'origine est autorisé par commodité). Il sera donc très difficilepour un attaquant de modifier complètement le nom du fichier.

+nom du fabricant (#propertycopyright). Lors du cryptage, ces données sont lues à partir du code source et stockées sous une forme cryptée.Ainsi, même si des intrus apportent des modifications au fichier *.ex4 compilé, en spécifiant un autre fabricant, le tableau continuera à afficher les données du fabricant, telles que spécifiées à l'origine par le propriétaire.

Toute modification ultérieure non autorisée des informations affichées sur le graphique dans le bloc d'informations entraînera une violation de la logique.

Exemple 3: Voici à quoi ressemble le bloc d'information

info

Dès que nous aurons atteint un pourcentage élevé de compatibilité du cryptage dynamique avec différentscodes, nous prévoyons de créer un logiciel doté d'un système de licence souple et pratique (restrictions d'utilisation par temps, numéro de compte, nom du propriétaire, serveur commercial, etc.), qui pourra être utilisé par chaque utilisateur localement sur son ordinateur pour protéger son code sans le transmettre à quiconque.

Les développeurs qui coopéreront activement avec nous en testant de manière approfondie et professionnelle notre algorithme decryptage dynamique obtiendront un statutpremium d'utilisateur professionnel avec des fonctionnalités avancées et des limites d'utilisation.

Pour les développeurs quicoopèrent régulièrementavec des clients pour développer divers codes, il sera plus pratique et plus sûr de partager le code source sous une forme déjà cryptée.

L'expériencea montré que même si vous ne fournissez le code à personne et ne l'utilisez que pour vos propres besoins surun VPS, il est beaucoup plus sûr de l'utiliser sous forme cryptée avec des liaisons avec vos comptes.

Comment pouvez-vous crypter n'importe quel* code source dans *.mq4?

Actuellement, pendant le débogage, vous pouvez lefaire en suivant les étapes simples suivantes :

1. envoyez un e-mail à codeprotector@ypy.cc.

2. recevoir une réponse, y répondre (pour que la réponse enregistre le code d'activation que vous avez reçu)

3. vous recevrez ensuite un courriel confirmant que vous pouvez envoyer à cette adresse tous les codes sources en *. formatmq4pour le cryptage de sécurité.

4. vous envoyez un fichier *.mq4et après un certain temps vous recevez un email avec le code source déjà crypté (le nom du code source ajouté aunuméro d'identificationet "_protégé", qui peut être supprimé en toute sécurité).

Le traitement de tous les fichiers est automatique, nous n'analysons ni n'utilisons en aucune façon les fichiers envoyés, à l'exception du cryptage de sécurité, de la suppression et du débogage technique pour la compatibilité de l'algorithme de cryptage, à l'initiative del'utilisateur dans le cas où le code source estcrypté avec des erreurs oun'est pas crypté du tout. Si vous préférez ne pas envoyer de code source par courrier électronique et/ou ne faites confiance à personne, vous pouvez simplementattendre que nous créions un logiciel distinct pour sécuriser le code source localement sur votre ordinateur par vous-même.

*Tout code source envoyé à *.mq4doit être préalablement non crypté et compilé en *.ex4sans avertissement ni erreur. Vous devez le vérifier vous-même au préalable.

Si le code sourcea été crypté avec des erreurs ou n'a pas étécrypté du tout, et qu'avant le cryptage il était pleinement opérationnel (vous devez le vérifier au préalable) et que vous êtes sûr de n'y avoir apporté aucune modification, veuillez nous le signaler en indiquant ce qui suit :

1.le numéro d'identification duchiffrement.

2. ce qui ne fonctionne pas ou ne fonctionne pas correctement.

3. décrivezen détail comment nous pouvons reproduire l'erreur, en joignant descaptures d'écran si possible.

P.S. Comme nous recevons souvent des demandes et des suggestions diverses, veuillez noter que nous n'acceptons pas de commandes de programmation, car nous sommes engagés dans le développement autonome de logiciels pour leurs propres besoins et produits finaux. De nombreuxdéveloppeurs tiers qualifiés sont prêts à répondre à toutes vos commandes de développement de logiciels dans la section "Freelance"de la Place de marché. De même, nous ne disposons pas et ne prévoyons pas de disposer d'une solution logicielle pour décoder les codes sources et les ramener à leur forme originale. Toute demande visant à nous envoyer le code source original, y compris lespersonnes se faisant passer pour leurs propriétaires, sera ignorée. Ne nous contactez pas non plus avec ces questions.

Veuillez poster dans ce fil de discussion tous ceux qui comprennent à quoi il sert et pour qui il peut vraiment être utile.

 
Pavel Izosimov:

Avec les dernièresversions du terminal MT4, ce processus est devenu plus compliqué, mais des experts en piratage informatique ont néanmoins réussi à analyser leur contenu et à les modifier sans autorisation, notamment en désactivant la protection contre lesessais et divers liens.

Pouvez-vous prouver cette affirmation ?
 
Renat Fatkhullin:
Pouvez-vous prouver cette affirmation ?

Renat, bonjour !

Oui, bien sûr, je vous enverrai par message privé quelques exemples de codes piratés que nous avons trouvés sur le web. En outre, je peux vous donner le nom exact d'un spécialiste et de son site, qui porte régulièrement et publiquement préjudice aux développeurs en supprimant leur protection.

J'apprécierais votre analyse.

 
OK, merci.
 
Pavel Izosimov:

...

J'ai une question : quelle garantie y a-t-il que votre utilitaire n'est pas lui-même un cheval de Troie et qu'il ne divulguera pas le code de cryptage qui lui est envoyé ? Les réponses telles que "vous pouvez compter sur nous" et "nous sommes très, très, très honnêtes" ne sont pas acceptées.

Deuxièmement, qu'est-ce qui empêche le programmeur d'écrire un obfuscateur - qui, si je comprends bien, est votre logiciel ? L'obfuscateur le plus simple peut être écrit en un rien de temps. Par exemple, définissez la liste de substitution des variables comme suit : #define m_list x03928473 - pas tellement, mais assez pour une protection de base.

 
Vasiliy Sokolov:

Un obfuscateur simple peut être écrit en un rien de temps. Par exemple, je crée une liste de substitution de variables définies comme suit : #define m_list x03928473 - pas trop, mais assez pour une protection de base.

Il est inutile d'obscurcir les noms des variables - ils ne figurent pas du tout dans le code résultant. Seuls les noms de fonctions exportés publiquement sont enregistrés.

L'obscurcissement n'a de sens que si vous faites réellement muter votre code ou, ce qui est encore mieux, si vous le virtualisez. Mais la virtualisation ne se fait pas au niveau du code source, elle n'est disponible qu'au niveau du code objet ou binaire.

 
Pavel Izosimov:

Toute modification ultérieure non autorisée des informations affichées sur le graphique dans la boîte d'information entraînera une rupture de la logique.

Ça a l'air un peu effrayant.
 

Utilisez la place de marché pour vendre des produits et le problème du piratage éventuel disparaît complètement.

Les produits achetés par l'intermédiaire de l'app shop ont un système de codage/sécurité complètement différent, et sont cryptés pour le matériel de chaque client.

 
Renat Fatkhullin:

Utilisez la place de marché pour vendre des produits et le problème du piratage éventuel disparaît complètement.

Les produits achetés par l'intermédiaire de l'app shop ont un système de codage/sécurité complètement différent, et sont cryptés pour le matériel de chaque client.

Donc la protection des fichiers ex4, ex5 est déjà contournée ? Et est-ce pire que la protection post-publication sur le marché ?
 
Tapochun:
La protection des fichiers ex4, ex5 a donc déjà été contournée ? Et est-ce pire que la protection post-publication sur le marché ?

Non, bien sûr qu'ils ne l'ont pas fait.

La protection sur le marché est meilleure grâce à la liaison avec le matériel. Sans le marché, vous pouvez intégrer une protection dans votre code, en limitant la fonctionnalité ou les conditions d'utilisation. Et ils fonctionneront parce que le code objet est sérieusement protégé. Mais sur le marché, vous mettez des programmes sans restriction que le marché lui-même, en plus des protections de base, ré-encrypte pour le matériel de l'acheteur.

 
Renat Fatkhullin:
Ok, merci.
Envoi de quelques exemples avec un lien vers la source originale