Protegendo o código fonte antes da compilação

Pavel Izosimov  

Qualquer desenvolvedor sabe muito bem quanto esforço e tempo leva para desenvolver um algoritmo eficaz por conta própria, e tendo-o criado, tem o direito incondicional de protegê-lo.

Estamos certos de que muitos usuários, comonós, testemunharam tais situações comuns:

1. descompilação *.ex4 com o propósito deinvestigar a lógica de trabalho de outra pessoa e/ou modificações posteriores. Com as últimasconstruções do terminal MT4, este processo se tornou mais complicado, mas mesmo assim os hackers experientes analisam com sucesso seu conteúdo e fazem mudanças não autorizadas, incluindo a desativação da proteçãoexperimental e várias amarrações.

2. Renomeação trivial de arquivos compilados, nome do fabricante (#propriedadede direitos autorais) a fim de passá-los como outros produtos ou produtos "proprietários".

Desenvolvemos umasolução de software para ajudar qualquer desenvolvedor de código e seus clientes a proteger seu código fonte contra exame, modificação, renomeação e revenda não autorizados.

Esta proteção é realizada no nível primário do código fonte por meio de sua codificação dinâmica de acordo com algoritmos, desenvolvidos por nós, semutilizar quaisquer bibliotecas adicionais ou ferramentas externas de proteção contra descompilação, ou seja, o código fonte em si é convertido em *. formatomq4.

Todo programador experiente pode ver por si mesmo, a partir do exemplo acima, que a recompilação de talcódigo fonte criptografado em *. O formatoex4 tornamuito difícil estudá-lo e analisá-lo ou mesmo impossível. Além disso, qualquer pessoa pode testar o algoritmo decriptografia de segurança absolutamente sem custos, enviando qualquer* código fonte em *. formatomq4por e-mail codeprotector@ypy.cc (detalhes abaixo)

Características atuais (versão beta):

1. criptografia dinâmica do código fonte usando um algoritmo exclusivo de propriedade

Exemplo 1. este é o aspecto do código fonte antes da criptografia (arquivo anexado)

código original

Exemplo 2. este é o aspecto do código fonte após a criptografia dinâmica (arquivo anexado)

código protegido

2. Para proporcionar proteção adicional ao proprietário do código, cada código fonte criptografado integra automaticamente a complexa proteção de informações do proprietário do código com o bloco de informações (ele é exibido no diagrama no canto inferior direito).

O gráfico mostra:

+informações contendoo número deidentificação decriptografia do código fonte (pelo qual o proprietário pode sempre individualizar uma determinada instância de seu produto). Isto pode ser muitoútil, por exemplo, para que o proprietário do código compreenda cujo exemplo particular do produto foi publicado ou pirateado sem autorização.

+nome de arquivo original, que foi usado pelo proprietário do código fonte durante a criptografia. Qualquer adulteração posterior do nome de arquivo seguro original quebrará a lógica (apenas a adição do nome de arquivo original é permitida por conveniência). Isto tornará muito difícilpara um atacante mudar completamente o nome do arquivo.

+nome do fabricante (#propertycopyright). Durante a criptografia, esses dados são lidos a partir do código fonte e armazenados de forma criptografada.Assim, mesmo que os intrusos façam alterações no arquivo *.ex4 compilado, especificando um fabricante diferente, o gráfico continuará a exibir os dados do fabricante, conforme especificado originalmente pelo proprietário.

Qualquer modificação não autorizada subseqüente das informações exibidas no gráfico no bloco de informações resultará em violação da lógica.

Exemplo 3: Este é o aspecto do bloco de informações

info

Assim que alcançarmos um alto percentual de compatibilidade de criptografia dinâmica com diferentescódigos, planejamos criar um produto de software com um sistema de licenciamento flexível e conveniente (restrições de uso por tempo, número de conta, nome do proprietário, servidor comercial, etc.), que possa ser usado por cada usuário localmente em seu computador para proteger seu código sem passá-lo para ninguém.

Aqueles desenvolvedores que cooperarão ativamente conosco testando exaustiva e profissionalmente nosso algoritmo dinâmico decriptografia obterão um statuspremium de usuários profissionais com características avançadas e limites de uso.

Para os desenvolvedores quecooperam com os clientes regularmentepara desenvolver vários códigos, será mais conveniente e seguro compartilhar o código fonte de uma forma já codificada.

A experiênciatem mostrado que mesmo que você não forneça o código a ninguém e o use apenas para suas próprias necessidades emum VPS, é muito mais seguro usá-lo de forma criptografada com vínculos com suas contas.

Como você pode criptografar qualquer* código fonte em *.mq4?

Atualmente, durante a depuração, você podefazer isso utilizando os seguintes passos simples:

1. Envie qualquer e-mail para codeprotector@ypy.cc.

2. receber uma resposta, respondê-la (para a resposta salvar o código de ativação que você recebeu)

3. então você receberá um e-mail confirmando que você pode enviar para este endereço qualquer* código fonte em *. formatomq4para criptografia de segurança.

4. você envia um arquivo *.mq4e depois de um tempo você recebe um e-mail com o código fonte já codificado (o nome do código fonte adicionado aonúmero deidentificaçãoe "_protegido", que pode ser removido com segurança).

O processamento de todos os arquivos é automático, não analisamos ou usamos arquivos enviados de nenhuma forma, exceto para criptografia de segurança, remoção e depuração técnica para compatibilidade do algoritmo de criptografia, iniciadopelo usuário no caso do código fonte sercriptografado com erros ounão criptografado de forma alguma. Se você preferir não enviar nenhum código fonte por e-mail e/ou não confiar em ninguém, você pode simplesmenteesperar até que criemos um software separado para proteger o código fonte localmente em seu computador por conta própria.

*Um código-fonte enviado para *.mq4deve ser previamente descriptografado e compilado em *.ex4sem avisos ou erros. Você mesmo deve verificar isso com antecedência.

Caso o código fontetenha sido criptografado com erros ou nãocriptografado de forma alguma, e antes da criptografia ele estava totalmente operacional (você mesmo tem que verificar isso) e tem certeza de que não fez nenhuma alteração nele, por favor nos informe sobre isso informando o seguinte

1.o número deidentificação dacriptografia.

2. o que não está funcionando ou não está funcionando corretamente.

3. Descreverdetalhadamente como podemos reproduzir o erro, anexandocapturas de tela, se possível.

P.S. Uma vez que muitas vezes recebemos vários pedidos e sugestões, favor notar que não aceitamos nenhum pedido de programação, pois estamos envolvidos em software de auto-desenvolvimento para suas próprias necessidades e produtos finais. Há muitosdesenvolvedores terceirizados qualificados prontos para cumprir qualquer uma de suas ordens de desenvolvimento de software na seção "Freelance"do Marketplace. Também não temos e não planejamos ter uma solução de software para decodificar códigos-fonte de volta à sua forma original. Quaisquer pedidos para nos enviar previamente o código fonte original, incluindopessoas que se fazem passar por seus proprietários, serão ignorados. Por favor, também não entre em contato conosco com estas perguntas.

Favor colocar neste tópico todos aqueles que entendem para que é e para quem realmente pode ser útil.

Arquivos anexados:
Renat Fatkhullin  
Pavel Izosimov:

Com as últimasconstruções do terminal MT4, este processo se tornou mais complicado, mas mesmo assim, especialistas experientes em hacking analisaram com sucesso seu conteúdo e fizeram edições não autorizadas para eles, incluindo a desativação da proteçãoexperimental e várias amarrações.

Você pode provar esta afirmação?
Vasiliy Sokolov  
Pavel Izosimov:

...

Tenho uma pergunta: que garantia existe de que sua utilidade não é, em si mesma, um Trojan e não vazará o código de criptografia enviado a ele? Respostas como "você pode confiar em nós" e "somos muito, muito, muito honestos" não são aceitas.

Em segundo lugar, o que impede o programador de escrever um obfuscador - que, pelo que entendi, é o seu software? O mais simples obfuscador pode ser escrito em pouco tempo. Por exemplo, defina a lista de substituição de variáveis assim: #define m_list x03928473 - não tanto, mas o suficiente para proteção básica.

Renat Fatkhullin  
Vasiliy Sokolov:

Um simples obfuscador pode ser escrito em um instante. Por exemplo, eu crio uma lista de substituição de variáveis como esta: #define m_list x03928473 - não muito, mas o suficiente para uma proteção de base.

Não vale a pena ofuscar os nomes das variáveis - elas não estão no código resultante. Somente nomes de funções exportadas publicamente são salvos.

A ofuscação só faz sentido se você realmente mude seu código ou, o que é ainda melhor, se você o virtualizar. Mas a virtualização não é feita em nível de código fonte, ela está disponível apenas em nível de objeto ou código binário.

TheXpert  
Pavel Izosimov:

Qualquer modificação não autorizada subseqüente das informações exibidas no gráfico na caixa de informações fará com que a lógica se decomponha.

Isto soa um pouco assustador.
[Excluído]  
Renat Fatkhullin:

Use o Marketplace para vender produtos e o problema de possível hacking desaparece completamente.

Os produtos comprados através da loja de aplicativos têm um sistema de codificação/segurança completamente diferente, e são criptografados para o hardware de cada cliente.

Então ex4, ex5 a proteção de arquivos já foi contornada? E é pior do que a proteção pós-publicação no mercado?
Renat Fatkhullin  
Tapochun:
Então a proteção de arquivos ex4, ex5 já foi contornada? E é pior do que a proteção pós-publicação no mercado?

Não, claro que não o fizeram.

A proteção no mercado é melhor devido à ligação com o hardware. Sem o Mercado, você pode incorporar proteção em seu código, limitando a funcionalidade ou as condições de uso. E eles funcionarão porque existe uma séria proteção por código objeto. Mas no mercado, você coloca programas sem restrições que o próprio mercado, além das proteções básicas, reencripta para o hardware do comprador.

Pavel Izosimov  
Renat Fatkhullin:
Ok, obrigado.
Enviou alguns exemplos com um link para a fonte original
Razão: