Monday 27 February 2017

Forex Rpc

MetaTrader 5 - Exemples Sécurisation du code MQL5: protection par mot de passe, générateurs de clés, délais, licences à distance et techniques avancées de chiffrement par clé de licence EA Introduction La plupart des développeurs doivent avoir leur code sécurisé. Cet article présentera quelques façons différentes de protéger le logiciel MQL5. Tous les exemples dans l'article se référeront aux conseillers experts, mais les mêmes règles peuvent être appliquées aux scripts et aux indicateurs. L'article commence par la simple protection par mot de passe et suit avec les générateurs de clés, l'octroi de licences d'un compte de courtiers donné et la protection de délai. Ensuite, il introduit un concept de serveur de licences distantes. Mon dernier article sur le framework MQL5-RPC décrit Remote Procedure Calls de MetaTrader 5 vers tout serveur XML-RPC. Je vais utiliser cette solution pour fournir un exemple de licence distante. Je décrirai également comment améliorer cette solution avec l'encodage base64 et fournir des conseils pour le support PGP pour rendre la protection ultra-sécurisée pour MQL5 Expert Advisors and Indicators. Je sais que MetaQuotes Software Corp. fournit quelques options pour l'octroi de licences du code directement à partir de la section MQL5 Market. C'est vraiment bon pour tous les développeurs et ne pas invalider les idées présentées dans cet article. Les deux solutions utilisées ensemble ne peuvent que rendre la protection plus forte et plus sécurisée contre le vol de logiciels. 1. Protection par mot de passe Commençons par quelque chose de simple. La première solution la plus utilisée pour la protection des logiciels est la protection par mot de passe ou clé de licence. Lors de la première exécution après l'installation, l'utilisateur est interrogé avec une boîte de dialogue pour insérer un mot de passe lié avec une copie de logiciel (comme la clé de série Microsoft Windows ou Microsoft Office) et si le mot de passe saisi correspond à l'utilisateur est autorisé à utiliser une seule copie enregistrée de Un logiciel. Nous pouvons utiliser une variable d'entrée ou une zone de saisie directe pour saisir le code. Un exemple de code stub est illustré ci-dessous. Le code ci-dessous initialise un champ CChartObjectEdit qui est utilisé pour insérer un mot de passe. Il existe un tableau prédéfini de mots de passe autorisés qui est mis en correspondance avec un mot de passe inséré par un utilisateur. Le mot de passe est coché dans la méthode OnChartEvent () après avoir reçu l'événement CHARTEVENTOBJECTENDEDIT. Cette méthode est simple, mais est vurnelable pour quelqu'un de publier le mot de passe sur un site Web avec des numéros de série piratés. L'auteur d'EA ne peut rien faire avant qu'un nouveau Expert Advisor ne soit publié et que le mot de passe volé soit mis sur la liste noire. 2. Générateur de clé Les générateurs de clé sont un mécanisme qui permet d'utiliser un ensemble de mots de passe basés sur des règles prédéfinies. Je donnerai un aperçu en fournissant un talon pour un keygenerator ci-dessous. Dans l'exemple présenté ci-dessous, la clé doit être constituée de trois nombres séparés par deux tirets. Par conséquent, le format autorisé pour un mot de passe est XXXXX-XXXXX-XXXXX. Le premier nombre doit être divisible par 3, le second nombre doit être divisible par 4 et le troisième numéro doit être divisible par 5. Par conséquent, les mots de passe autorisés peuvent être 3-4-5, 18000-20000-20000 ou le plus compliqué 3708-102792- 2844770. Bien sûr, le nombre de chiffres d'un nombre peut être réglé à une valeur donnée et les calculs peuvent être plus compliqués. On peut également ajouter une variable qui n'est valide qu'avec un matériel donné en ajoutant le numéro de série du disque dur ou l'ID de l'unité centrale au calcul. Dans ce cas personne pour exécuter l'EA devrait exécuter générateur supplémentaire calculé sur la base du matériel. La sortie serait une entrée pour un keygen et le mot de passe généré serait valide uniquement pour un matériel donné. Cela a une limitation de quelqu'un changer de matériel informatique ou d'utiliser VPS pour exécuter EA, mais cela pourrait être résolu en donnant deux ou trois mots de passe valides. C'est également le cas dans la section Market du site MQL5. 3. Licence de compte unique Comme le numéro de compte du terminal d'un courtier donné est unique, il peut être utilisé pour permettre l'utilisation de l'EE sur un ou plusieurs numéros de compte. Dans ce cas, il suffit d'utiliser les méthodes AccountInfoString (ACCOUNTCOMPANY) et AccountInfoInteger (ACCOUNTLOGIN) pour extraire les données du compte et les comparer aux valeurs précompilées autorisées: Il s'agit d'une protection simple mais très puissante. L'inconvénient est qu'il est nécessaire de recompiler l'EA pour chaque nouveau numéro de compte ajouté à la base de données de compte. 4. Protection temporelle La protection temporelle est utile lorsque la licence est accordée sur une base temporaire, par exemple en utilisant la version d'essai du logiciel ou lorsque la licence est accordée sur une base mensuelle ou annuelle. Comme cela est évident que cela peut être appliqué pour les conseillers experts et les indicateurs. La première idée est de vérifier le temps du serveur et en fonction de ce que l'utilisateur peut utiliser l'indicateur ou Expert Advisor dans un délai donné. Après son expiration, le concédant peut désactiver partiellement ou totalement ses fonctionnalités auprès du titulaire de licence. Le seul inconvénient est que la solution aurait besoin d'être compilé séparément pour chaque titulaire de licence. 5. Licences à distance Il ne serait pas bon d'avoir un contrôle total pour désactiver la licence ou étendre la période d'essai sur la base par utilisateur Cela peut simplement être fait en utilisant MQL5-RPC appel qui enverrait une requête avec le nom du compte et de recevoir la valeur Si le script doit être exécuté en mode d'essai ou désactivé. S'il vous plaît voir le code ci-dessous pour un exemple d'implémentation: Il s'agit d'un simple serveur XML-RPC implémenté en Python avec deux licences prédéfinies pour MetaTrader 5. Les licences sont définies pour RemoteProtectedEA expert conseiller s'exécutant sur le serveur de démo MetaQuotes par défaut (access. metatrader5: 443) Avec les numéros de compte 1024221 et 1024223. Une solution industrielle serait probablement utiliser une base de données de licences dans Postgresql ou toute autre base de données, mais l'exemple ci-dessus est plus que suffisant pour cet article, car il gère les licences distantes très bien. L'EA qui utilise la licence distante doit simplement préparer un appel MQL5-RPC distant à la méthode isValid () qui renvoie des valeurs booléennes vraies ou fausses selon que la licence est valide. L'exemple ci-dessous présente un exemple d'évaluation environnementale basé sur la protection du compte: si vous exécutez les deux scripts, vous devriez pouvoir ajouter une licence distante pour votre numéro de compte. La licence distante peut être utilisée aussi bien pour une licence de limite de temps que pour une licence de mot de passe qui peut être désactivée à distance après une période d'essai. Par exemple, vous donneriez une évaluation environnementale pour quelqu'un pendant 10 jours de test, s'il ne satisfait pas avec le produit que vous désactivez la licence ou dans le cas où il est convaincu que vous pouvez activer la licence pour une période donnée. 6. Cryptage de licence sécurisé Les idées présentées dans le dernier paragraphe utilisaient des appels de procédure à distance pour échanger des informations entre le serveur de licences et le terminal client. Cela pourrait éventuellement être piraté en utilisant des paquetages sniffer sur une copie enregistrée de l'EA. En utilisant sniffer le pirate d'application est capable de capturer tous les paquets TCP qui sont envoyés entre deux machines. Nous surmonterons ce problème en utilisant l'encodage de base64 pour envoyer des données de compte et recevoir le message crypté. Pour une personne qualifiée, il serait également possible d'utiliser PGP et / ou mettre tout le code dans une DLL pour une protection supplémentaire. Je suis venu avec l'idée que le message sera en fait un autre message RPC (comme dans la poupée Matryoshka russe) qui sera encore converti en données MQL5. La première étape consiste à ajouter le support de codage et de décodage base64 pour MQL5-RPC. Heureusement, cela a déjà été fait pour MetaTrader 4 à mql5encode8098 par Renat donc j'ai seulement besoin de le convertir en MQL5. Pour une description détaillée de l'encodage base64, vous pouvez visiter un article de Wikipédia. Un exemple de test du script de codage et de décodage MQL5 base64 est présenté ci-dessous: Le script produit le résultat suivant. La validité de l'encodage peut être simplement vérifiée en Python en 4 lignes de code: La deuxième étape consiste à crypter le résultat XMLRPC dans base64 (aka Matryoshka technique): Après que la licence est cryptée, nous pouvons utiliser la méthode MQL5-RPC pour convertir le message décrypté en Données MQL5: Le résultat de l'exécution du script à condition que le serveur RemoteLicenseExampleBase64 soit en cours d'exécution est le suivant: Comme vous pouvez le voir, la charge utile XML-RPC contient une chaîne qui est en fait un message XML-RPC encodé par base64. Ce message codé en base64 est décodé en chaîne XML et décodé plus tard en données MQL5. 7. Directives anti-décompilation avancées Dès que le code MQL5 est décompilé, même les protections les plus sûres qui sont exposées à l'ingénieur inverse qualifié seront vulnérables à être fissuré. Après quelques googling j'ai trouvé un site Web qui offre le decompiler MQL5 mais je suspecte simplement que ceci est un faux fait pour emporter l'argent des personnes naïves qui voudraient voler le code de someones. Quoi qu'il en soit, je n'ai pas essayé et je pourrais avoir tort. Même si une telle solution existait, vous devriez être capable de renforcer la protection en envoyant des paramètres d'entrée EAindicator chiffrés ou des index d'objets passant. Il sera très difficile pour un pirate d'obtenir des paramètres d'entrée corrects pour l'EA protégé ou de voir les valeurs d'entrée correctes de l'indicateur protégé qui, à son tour, le rendra inutile. Il est également possible d'envoyer des paramètres corrects si l'ID de compte correspond ou d'envoyer des paramètres faux non chiffrés si l'ID de compte n'est pas valide. Pour cette solution, on peut utiliser PGP (Pretty Good privacy). Même si le code est décompilé, les données seront envoyées cryptées avec une clé PGP privée et les paramètres EA seront déchiffrés uniquement lorsque l'ID du compte et la clé PGP correspondent. Conclusion Dans cet article, j'ai présenté quelques façons de protéger le code MQL5. J'ai également présenté le concept de licence à distance via l'appel MQL5-RPC et le support d'encodage de base64. J'espère que l'article servira de base à d'autres idées sur la façon de sécuriser le code MQL5. Tout le code source est joint à l'article. Google FXAS système développé par Rpchost est un système complet de commerce de forex aider les commerçants dans leurs métiers de forex. Ce système de forex trading a de nombreuses tâches, il enregistre des signaux instantanés avec une alerte sonore avisant les commerçants qu'un nouveau signal est arrivé, les signaux sont générés par un robot Forex automatisé conçu par Rpchost et livré instantanément à FXAS SYSTEM. Trading de devises est une entreprise délicate, ce système est une nécessité pour tout trader FX cherchent à faire des revenus monétaires stables. Dans les prochains jours, nous ferons ces signaux de forex a la capacité d'être exécuté directement dans votre plate-forme de négociation courtier (FXCM.), Il sera bientôt le numéro un FOREX système de trading automobile. Le marché des changes est en croissance rapide et vous ne pouvez faire face à ses difficultés seul, nous mettons dans vos mains le logiciel de trading Forex ultime qui est presque gratuit, installer ce logiciel de trading de devises forex en ligne et de concurrencer le marché FX. FXAS SYSTEM sera bientôt l'outil FX numéro un sur le marché Forex dans le monde entier. RPCHOST est le meilleur conseiller Forex au Moyen-Orient. Asie. Amérique. ETATS-UNIS. Canada. Allemagne. France. Espagne. Brésil. ROYAUME-UNI. Liban. Beyrouth. Dinde. Egypte. Japon. Chine. Arabie Saoudite et tous les pays ARAB. FXAS SYSTEM affiche Forex Signal pour les devises suivantes EURUSD et GBPUSD. Euro. Livre sterling et Dollar sont les principales devises dans le Forex Trading aujourd'hui. FXAS, Rpchost Forex Trading Forex. ,,,, Forex Rpchost FXAS. , Trader FX,. (FXCM.), FOREX. ...... FXAS FX. RPCHOST,,,,,,,,,,,,,,,,,. FXAS EURUSD GBPUSD. ,. Le calculateur de probabilité de risque de forex (RPC) a été conçu pour travailler main dans la main avec les niveaux de retracement Fibonacci. Il est donc important que vous ayez une certaine compréhension de la façon dont fonctionne Fibonacci de base. Cliquez ici pour plus d'informations sur l'utilisation de la calculatrice RPC correctement. Vos coordonnées sont strictement protégées, sécurisées et ne seront jamais vendues ou partagées. Nous détestons le spam autant que vous. Plus d'informations sur notre Politique de confidentialité. Free Forex Strategies Systems Une collection de systèmes Forex, indicateurs et stratégies, comprend le Forex Analyzer PRO. 100 Téléchargement gratuit. Forex Brokers Revealed Tout ce que vous devez savoir sur les courtiers forex trading. Apprenez à choisir le meilleur courtier pour vous Télécharger Forex Analyzer PRO gratuitement Téléchargez l'un des meilleurs systèmes free fx pour le trading forex rentable Tous les articles, systèmes, stratégies, avis, avis, nouvelles, recherches, analyses, prix ou autres informations contenues dans Ce site Web, par AboutCurrency, ses partenaires ou contributeurs, est fourni en tant que commentaire général du marché et ne constitue pas un conseil en investissement. Aboutcurrency n'acceptera aucune responsabilité pour toute perte ou dommage, y compris, mais sans s'y limiter, les pertes de profits qui peuvent résulter directement ou indirectement de l'utilisation ou de la confiance dans de telles informations. Copyright copy 2017 À propos de la monnaie. Tous les droits sont réservés. Risque de divulgation: Trading forex sur la marge comporte un haut niveau de risque, et peut ne pas convenir à tous les investisseurs. Le haut degré de levier peut travailler contre vous ainsi que pour vous. Avant de décider d'investir en devises, vous devriez considérer attentivement vos objectifs de placement, votre niveau d'expérience et votre appétit pour le risque. La possibilité existe que vous pourriez soutenir une perte de tout ou partie de votre investissement initial et donc vous ne devriez pas investir de l'argent que vous ne pouvez pas se permettre de perdre. Vous devez être conscient de tous les risques associés aux opérations de change, et demander conseil à un conseiller financier indépendant si vous avez des doutes.


No comments:

Post a Comment