Métodos de proteção Mq4... - página 4

 
Bem, você precisa de uma solução profissional para proteger seu código mql. Não é um tema fácil. Tudo isso discutido na dll é inútil para proteger seu código.
 

Vocês já consideraram o seguinte:

Execute o MetaTrader como você costuma fazer. Carregue seus malditos Indicadores fortemente protegidos ou o que quer que seja. Execute uma ferramenta de despejo de processo e despeje toda a memória do processo do terminal.exe em um arquivo (... e talvez outros intervalos de memória que ele aloca) use um hexeditor ou um texteditor normal e procure por fragmentos de seus Indicadores tão perfeitamente protegidos.

Eu não tentei isto, mas tenho quase 30 anos de conhecimento em programação de baixo nível (680x0 assembler, powerpc e assim por diante).

Feliz caçada.

:)

 

Ok, eu estava com um pouco de pressa quando respondi a esta linha e, portanto, gosto de estender algumas linhas. Não existe algo como uma proteção em código real. Você pode ser capaz de criptar, mover, girar, copiar seu código, mas no final está nu novamente.

Por exemplo: Em tempos anteriores eu escrevi programas e despejei o endereço inicial e final do código em um arquivo. Todos os saltos dentro do código foram definidos para um offset relativo e o código (que afinal é um dado normal) foi girado em 1 bit. O código, portanto, não existe mais. Você pode anexar uma parte do carregador ao seu código e fazer com que ele se desenrole novamente e faça com que ele reatribua os endereços das etiquetas (normalmente encontrados em palhetas). Pule para a entrada e voilá você executa o programa novamente.

Portanto, a maioria das pessoas acreditará que seu programa ou indicador está bem protegido porque você não consegue ler nenhuma etiqueta ou outras coisas da cripta (executável). No final, ele é visível novamente. Visível uma vez que você o execute e o tenha executado através de seu processo (ou programa).

Você pode aleijar, mudar o código e ou fazer a proteção que quiser. Uma vez executado o programa, a maior parte da proteção desaparece novamente (com algumas exceções, como arquivos de chaves ou números de série, etc.).

Portanto, estou assumindo o mesmo para os indicadores. Eles são compilados sim. É um binário? Não sei. É um bytecode? Eu também não sei. Mas tenho certeza de que uma vez que você o execute em terminal.exe e despeje as áreas de memória que o terminal.exe alocou para o indicador, você poderá obter traços de seu código (mesmo que sejam cordas de texto usado dentro dele ou similar).

Talvez você possa obter algum tipo de CÓDIGO de volta, como em seus arquivos *.mql4. Talvez você não consiga. Talvez você obtenha algum bytecode, talvez não. Talvez você consiga alguma coisa. Talvez o terminal.exe tenha seu próprio interpretador de código que interpreta o código gerado pelo metaeditor.exe de forma que o terminal.exe entenda. Como eu disse anteriormente, eu não tentei.

O que eu gosto de explicar é que se você quiser criptografar ou proteger seu código, então nem sempre o veja de um lado (por exemplo, os arquivos ex4 que o metaeditor compilou e cobriu com algum código desconhecido). Veja-o também do outro lado. Uma vez que você o executa, seu código protegido fica nu novamente. E esta é uma parte para colocar os dedos sobre ele. Pode funcionar. Não deve funcionar.

Um efeito negativo ao despejar o endereço inicial e final de um código em execução é este. Tudo é inicializado. As arrays são preenchidas com valores, os placeholders podem ter valores, etc.

 

Bons pontos Ali. Obrigado.

A mineração na lixeira da memória parece ser uma solução cara. Até agora, a única solução barata veio do vazamento de conhecimento de Metaquotes. Eu espero que alguém - que é capaz de extrair o código de memória - possa codificar o próprio MQL4 do zero por menos esforço. Isso me faz sentir atualmente seguro até que o novo vazamento de conhecimento pareça permitir decodificadores baratos. Então vem o plano B - codificá-lo da maneira que faz com que a adulteração do código desmontado valha alto custo.