Friday 7 July 2017

Forex Rpc


MetaTrader 5 - Exemplos Protegendo o código MQL5: proteção por senha, geradores de chaves, limites de tempo, licenças remotas e técnicas avançadas de criptografia de chave de licença de EA Introdução A maioria dos desenvolvedores precisa ter seu código protegido. Este artigo apresentará algumas maneiras diferentes de proteger o software MQL5. Todos os exemplos no artigo se referirão a Expert Advisors, mas as mesmas regras podem ser aplicadas aos Scripts e Indicadores. O artigo começa com uma simples proteção por senha e segue com geradores de chave, licenciando uma determinada conta de corretores e proteção de limite de tempo. Em seguida, introduz um conceito de servidor de licença remota. O meu último artigo sobre o framework MQL5-RPC descreveu chamadas de procedimento remoto do MetaTrader 5 para qualquer servidor XML-RPC. Eu usarei essa solução para fornecer um exemplo de uma licença remota. Também descreverei como aprimorar esta solução com codificação base64 e fornecer aconselhamento para suporte PGP para tornar a proteção ultra-segura para MQL5 Expert Advisors and Indicators. Estou ciente de que a MetaQuotes Software Corp. está fornecendo algumas opções para licenciar o código diretamente da seção MQL5 Market. Isso é realmente bom para todos os desenvolvedores e não invalidará as idéias apresentadas neste artigo. Ambas as soluções usadas juntas só podem tornar a proteção mais forte e mais segura contra o roubo de software. 1. Proteção por senha Permite começar com algo simples. A primeira solução mais usada para proteção de software de computador é a proteção de senha ou chave de licença. Durante a primeira execução após a instalação, o usuário é consultado com uma caixa de diálogo para inserir uma senha vinculada com uma cópia de software (como a chave serial Microsoft Windows ou Microsoft Office) e se a senha inserida corresponder ao usuário é permitido usar uma única cópia registrada de Um software. Podemos usar uma variável de entrada ou uma caixa de texto direta para inserir o código. Um exemplo de código de stub é mostrado abaixo. O código abaixo inicializa um campo CChartObjectEdit que é usado para inserir uma senha. Existe uma matriz predefinida de senhas permitidas que é compatível com uma senha inserida por um usuário. A senha é marcada no método OnChartEvent () após receber o evento CHARTEVENTOBJECTENDEDIT. Este método é simples, mas é impossível para alguém publicar a senha em um site com números de série pirateados. O autor da EA não pode fazer nada até que um novo consultor especialista seja lançado e a senha roubada esteja na lista negra. 2. Geradores de chaves Os geradores de chaves são um mecanismo que permite usar um conjunto de senhas com base em regras predefinidas. Vou dar uma visão geral, fornecendo um talão para um gerador de chaves abaixo. No exemplo apresentado abaixo, a chave deve consistir em três números separados por dois hifens. Portanto, o formato permitido para uma senha é XXXXX-XXXXX-XXXXX. O primeiro número deve ser divisível por 3, o segundo número deve ser divisível por 4 e o terceiro número deve ser divisível por 5. Portanto, as senhas permitidas podem ser 3-4-5, 18000-20000-20000 ou as mais complicadas 3708-102792- 2844770. Claro que o número de dígitos em um número pode ser definido para um determinado valor e os cálculos podem ser mais complicados. Pode-se também adicionar uma variável que seja válida apenas com um determinado hardware, adicionando o número de série do disco rígido ou ID da CPU ao cálculo. Nesse caso, a pessoa para executar a EA teria que gerar um gerador adicional calculado com base no hardware. A saída seria uma entrada para um keygen e a senha gerada seria válida apenas para um determinado hardware. Isso tem uma limitação de alguém que altera o hardware do computador ou usa o VPS para executar a EA, mas isso pode ser resolvido com duas ou três senhas válidas. Este também é o caso na seção Market do site MQL5. 3. Licença de conta única Uma vez que o número de conta do terminal de qualquer corretor é exclusivo, isso pode ser usado para permitir o uso da EA em um ou em um conjunto de números de conta. Nesse caso, basta usar os métodos AccountInfoString (ACCOUNTCOMPANY) e AccountInfoInteger (ACCOUNTLOGIN) para obter os dados da conta e compará-los contra os valores permitidos pré-compilados: Esta é uma proteção simples, mas bastante poderosa. A desvantagem é que é necessário recompilar a EA para cada novo número de conta adicionado ao banco de dados da conta. 4. Proteção de limite de tempo A proteção de limite de tempo é útil quando a licença é concedida temporariamente, por exemplo, usando a versão de avaliação do software ou quando a licença é concedida mensalmente ou anualmente. Uma vez que isto é óbvio que isso pode ser aplicado para consultores e indicadores de especialistas. A primeira idéia é verificar a hora do servidor e, com base nisso, permitir que o usuário use o Indicador ou o Consultor Especial em um determinado período de tempo. Depois de expirar, o licenciante pode desativar parcial ou totalmente sua funcionalidade para o licenciado. A única desvantagem é que a solução precisaria ser compilada separadamente para cada licenciado. 5. Licenças remotas Não seria bom ter um controle total para desativar a licença ou estender o período de teste por base de usuário. Isso pode ser feito simplesmente usando a chamada MQL5-RPC que enviaria uma consulta com o nome da conta e receberia o valor Seja para executar o script no modo de teste ou desativá-lo. Consulte o código abaixo para uma implementação de exemplo: Este é um servidor XML-RPC simples implementado no Python com duas licenças predefinidas para o MetaTrader 5. As licenças são definidas para RemoteProtectedEA consultor especial em execução no servidor de demonstração MetaQuotes padrão (access. metatrader5: 443) Com números de conta 1024221 e 1024223. Uma solução industrial provavelmente faria uso de um banco de dados de licenças no Postgresql ou em qualquer outro banco de dados, mas o exemplo acima é mais do que suficiente para este artigo, já que ele lida muito bem com as licenças remotas. A EA que usa a licença remota simplesmente precisa preparar uma chamada MQL5-RPC remota para o método isValid () que retorna valores booleanos verdadeiros ou falsos, dependendo se a licença for válida. O exemplo abaixo mostra uma EA de amostra baseada em proteção de conta: se você executar ambos os scripts, você poderá adicionar uma licença remota para seu número de conta. A licença remota também pode ser usada para obter uma licença de prazo ou uma licença de senha que pode ser desativada remotamente após um período de avaliação. Por exemplo, você daria uma EA para alguém por 10 dias de teste, se ele não se satisfizer com o produto que você desativou a licença ou no caso de ele estar satisfeito, você pode ativar a licença por um determinado período de tempo. 6. Criptografia de licença segura As idéias apresentadas no último parágrafo usaram chamadas de procedimento remoto para trocar informações entre o servidor de licenças e o terminal do cliente. Isso pode ser possivelmente cortado usando pacotes de sniffer em uma cópia registrada da EA. Ao usar o hacker de aplicação sniffer é capaz de capturar todos os pacotes TCP que são enviados entre duas máquinas. Vamos superar esse problema usando a codificação base64 para enviar dados da conta e receber mensagens criptografadas. Para uma pessoa qualificada, também seria possível usar PGP e colocar todo o código em uma DLL para proteção adicional. Eu vim com a idéia de que a mensagem será de fato outra mensagem RPC (como na boneca russo Matryoshka) que será mais convertida em dados MQL5. O primeiro passo é adicionar suporte de codificação e decodificação base64 para MQL5-RPC. Felizmente, isso já foi feito para MetaTrader 4 no mql5encode8098 por Renat, portanto, eu só precisava convertê-lo para MQL5. Para uma descrição detalhada da codificação base64, você pode querer visitar um artigo da Wikipédia. Um exemplo de teste do script de codificação e decodificação MQL5 base64 é apresentado abaixo: O script produz o seguinte resultado. A validade da codificação pode ser simplesmente verificada em Python em 4 linhas de código: O segundo passo é criptografar o resultado XMLRPC em base64 (também conhecido como técnica Matryoshka): Depois que a licença é criptografada, podemos usar o método MQL5-RPC para converter mensagens descriptografadas de volta para Dados MQL5: o resultado da execução do script desde que o servidor RemoteLicenseExampleBase64 esteja sendo executado é o seguinte: como você pode ver, a carga útil XML-RPC contém uma seqüência de caracteres que, de fato, é uma mensagem XML-RPC codificada por base64. Esta mensagem codificada base64 é decodificada em cadeia XML e posteriormente descodificada em dados MQL5. 7. Diretrizes avançadas de anti-descomplicação Assim que o código MQL5 é descompilado, mesmo as proteções mais seguras que estão expostas a um engenheiro reverso qualificado serão vulneráveis ​​a serem quebradas. Depois de algum google, encontrei um site que oferece um descompilador MQL5, mas eu simplesmente suspeito que este é um falso feito para tirar dinheiro de pessoas ingênuas que gostariam de roubar um código de alguém. De qualquer forma, não tentei e posso estar errado. Mesmo que essa solução existisse, você deve ser capaz de proteger mais forte enviando parâmetros de entrada de EAindicator criptografados ou passagem de índices de objeto. Será muito difícil para um hacker obter parâmetros de entrada corretos para a EA protegida ou ver valores de entrada corretos do indicador protegido, o que, por sua vez, tornará inútil. Também é possível enviar parâmetros corretos se a identificação da conta corresponder ou enviar parâmetros falsos não criptografados se a identificação da conta não for válida. Para essa solução, pode querer usar PGP (Pretty Good privacy). Mesmo que o código seja descompilado, os dados serão enviados criptografados com chave PGP privada e os parâmetros de EA serão descriptografados somente quando a ID da conta e a chave PGP coincidirem. Conclusão Neste artigo, eu apresentava algumas maneiras de proteger o código MQL5. Eu também introduzi o conceito de licença remota via chamada MQL5-RPC e adicione suporte de codificação base64. Espero que o artigo sirva de base para novas ideias sobre como proteger o código MQL5. Todo o código-fonte é anexado ao artigo. O Google FXAS SYSTEM desenvolvido pela Rpchost é um sistema completo de Forex Trading que ajuda os comerciantes em seus negócios de Forex. Este sistema de Forex de negociação tem muitas tarefas, ele publica sinais instantâneos com alerta de som notificando aos comerciantes que um novo sinal chegou, os sinais são gerados por um robô Forex automatizado projetado por Rpchost e entregue de imediato ao FXAS SYSTEM. O comércio de moeda é um negócio complicado, esse sistema é uma necessidade para cada comerciante da FX que procura fazer uma renda monetária constante. Nos próximos dias, vamos fazer esses sinais forex ter a capacidade de ser executado diretamente na sua plataforma de negociação de corretores (FXCM.), Será em breve o sistema de negociação de automóveis FOREX número um. O mercado de câmbio está crescendo rápido e você pode enfrentar suas dificuldades sozinho, colocamos em suas mãos o melhor software de negociação Forex que é quase gratuito, instale este software on-line de negociação de moeda estrangeira e concorra o mercado FX. O FXAS SYSTEM será em breve a ferramenta FX número um no mercado Forex em todo o mundo. O RPCHOST é o melhor consultor de Forex no Oriente Médio. Ásia. América. EUA. Canadá. Alemanha. França. Espanha. Brasil. REINO UNIDO. Líbano. Beirute. Peru. Egito. Japão. China. Arábia Saudita e todos os países ARABES. O FXAS SYSTEM exibe o sinal Forex para as seguintes moedas EURUSD e GBPUSD. Euro. A libra esterlina eo Dólar são as principais moedas do Forex Trading hoje. FXAS, Rpchost Forex Trading Forex. , Forex Rpchost FXAS. , FX Trader,. (FXCM.), FOREX. , ... FXAS FX. RPCHOST,,,,,,,,,,,,,,,,. FXAS EURUSD GBPUSD. ,. A calculadora de probabilidade de risco forex (RPC) foi projetada para trabalhar lado a lado com os níveis de retração Fibonacci. Portanto, é importante que você tenha alguma compreensão sobre o funcionamento básico da Fibonacci. Clique aqui para obter mais informações sobre como usar a calculadora RPC corretamente. Os seus detalhes são estritamente protegidos, seguros e nunca são vendidos ou compartilhados. Odiamos spam tanto quanto você. Mais informações sobre nossa Política de Privacidade. Free Forex Strategies Systems Uma coleção de sistemas de forex, indicadores e estratégias, inclui o Forex Analyzer PRO. 100 Download grátis. Forex Brokers Revelado Tudo o que você deve saber sobre corretores de negociação forex. Saiba como selecionar o melhor corretor para você. Baixe Forex Analyzer PRO For Free Baixe um dos melhores sistemas fx grátis para negociação forex lucrativa. Todos os artigos, sistemas, estratégias, avaliações, avaliações, notícias, pesquisas, análises, preços ou outras informações contidas em Este site, da Aboutcurrency, dos seus parceiros ou contribuidores, é fornecido como comentário geral do mercado e não constitui um conselho de investimento. A Aboutcurrency não aceita a responsabilidade por qualquer perda ou dano, incluindo, sem limitação, qualquer perda de lucro, que possa surgir direta ou indiretamente do uso ou dependência de tais informações. Copyright copy 2017 Aboutcurrency. Todos os direitos reservados. Divulgação de Risco: o trading forex na margem comporta um alto nível de risco e pode não ser adequado para todos os investidores. O alto grau de alavancagem pode funcionar contra você, bem como para você. Antes de decidir investir em divisas, você deve considerar cuidadosamente seus objetivos de investimento, nível de experiência e apetite de risco. Existe a possibilidade de que você possa sustentar a perda de algum ou todo seu investimento inicial e, portanto, você não deve investir dinheiro que não pode perder. Você deve estar ciente de todos os riscos associados à negociação cambial e procurar o aconselhamento de um consultor financeiro independente se tiver dúvidas.

No comments:

Post a Comment