Protection du code : Protection contre la décompilation du nouveau langage MQL4 (Build 600+) et autres techniques de craquage.
D'après ce que Renat (CEO de Metaquotes) a dit :
- Les nouveaux ex4 sont du code natif (comme les DLL) et non plus du pseudo code. Ils sont donc plus difficiles à décompiler.
- Les ex4 sont compressés (ou autre technique d'obfuscation non connue) donc après décompilation il est difficile de les comprendre.
- ex4 pour Market sont cryptées. La technique exacte utilisée n'est pas publiquement disponible.
Je rapporte ces informations de mémoire, donc j'espère que je ne fais pas d'erreur. Je ne vérifie pas non plus ces informations dans la pratique.
Merci pour la réponse mais elle n'a pas ajouté grand chose à mes connaissances. Est-il possible de décompiler ? Cela pourrait-il être possible dans un avenir proche ? (des paris ?)
A ma connaissance, un produit crypté ne peut pas être décompilé. Vous devez d'abord le décrypter. Un produit peut toujours être décompilé. Mais c'est une question de coûts. Si cela vous a coûté 10$ pour décompiler un ancien ex4, peut-être que le nouvel ex4 aura besoin de 1,000,000$ (juste pour dire quelque chose). Vous avez saisi l'idée ?
StrToTime("2014.09.30 00:00");
Une chaîne pure est facile à pirater. Essayez de le compiler et de voir si la chaîne est visible dans l'ex4. Il est censé être crypté maintenant (Build 6xx). Vérifier.
Aussi, pourquoi utiliser une chaîne de caractères ? Utilisez une date réelle de 8 octets.
#define EXPIRATION D'2014.09.30 00:00'
Bonjour,
J'ai lu à propos du nouveau mql4 (Build 600+) et j'ai déjà mis à jour mes EAs, maintenant j'ai une question. Quelle est la sécurité de la nouvelle protection contre les crackers et autres types de craquage d'exécutable et de modification du code. EX : modification hexagonale de la date d'expiration, vidage de la mémoire, etc. Quelle est la sécurité d'une simple restriction de temps (date d'expiration) sur un EA maintenant ? Comment mettre en œuvre de nouvelles techniques de protection en utilisant le nouveau langage ?
ex :
Merci
AFAIK, il n'y a pas la possibilité, jusqu'à présent, d'un décompilateur travaillant actuellement pour les .ex4 compilés avec Build 6xx
MAIS, le problème avec votre code, pour quiconque est vraiment intéressé à le craquer, est qu'il est très facile de tourner votre
if (condition...)
de
if (!condition
Ou encore plus facile, de NOP que return(1)
Pour résumer, la décompilation n'est pas possible actuellement.
Mais ce qui est encore possible est de désassembler le code. Et pour quelqu'un ayant peu de connaissances en assembleur, faire de l'ingénierie inverse de votre code et le craquer serait assez facile.
AFAIK, il n'y a pas la possibilité, jusqu'à présent, d'un décompilateur travaillant actuellement pour les .ex4 compilés avec Build 6xx
MAIS, le problème avec votre code, pour quiconque est vraiment intéressé à le craquer, est qu'il est très facile de transformer votre fichier .ex4 en fichier .ex4.
de
Ou encore plus facile, de NOP que return(1)
Pour résumer, la décompilation n'est pas possible actuellement.
Mais ce qui est encore possible est de désassembler le code. Et pour quelqu'un ayant peu de connaissances de l'assembleur, faire de l'ingénierie inverse de votre code et le craquer serait assez facile.

- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Bonjour,
J'ai lu à propos du nouveau mql4 (Build 600+) et j'ai déjà mis à jour mes EAs, maintenant j'ai une question. Quelle est la sécurité de la nouvelle protection contre les crackers et autres types de craquage d'exécutable et de modification du code. EX : modification hexagonale de la date d'expiration, vidage de la mémoire, etc. Quelle est la sécurité d'une simple restriction de temps(date d'expiration) sur un EA maintenant ? Comment mettre en œuvre de nouvelles techniques de protection en utilisant le nouveau langage ?
ex :
Merci