Pergunta

Como eu poderia proteger meu aplicativo Delphi de ser descompilado? Eu sei que existem alguns softwares como a Themida que eu acho que farão isso, mas depois o exe protegido aciona o antivírus.

Foi útil?

Solução

Depende de qual é o seu objetivo.
Se está realmente apenas protegendo a fonte, já está pronto! Desde que você não inclua informações de depuração e símbolos e adicione um pouco de boa sorte para reconstruir algum código Pascal utilizável de desmontar o EXE.
Se está impedindo que as pessoas vejam como ele funciona e o invadir, você deve incluir alguma proteção anti-desmontagem. É mais difícil, mas factível. Freqüentemente feito como garantia à proteção contra a piratia.

Outras dicas

Tudo o que uma CPU pode ler também pode ser "descompilado", para que não haja segurança final. Mas geralmente é muito difícil descompilar o código Delphi compilado, e quase todos os identificadores e todos os comentários se foram, é claro.

As partes publicadas das classes, as informações do arquivo DFM e as constantes (incluindo constantes de string) estão presentes no arquivo EXE, de uma maneira facilmente legível. Você pode reduzir esse problema criptografando suas strings e não usando os arquivos DFM publicados e não usar. No entanto, todas as informações ainda estarão presentes em seu arquivo exe, muitas vezes isso será um trabalho árduo que não oferece segurança real.

Se você apenas deseja que partes do seu código -fonte sejam difíceis de ler, dificultem seus algoritmos ...

No final, tudo pode ser invadido. A única maneira real de evitar que seu aplicativo seja descompilado, é manter o arquivo exe longe daqueles que podem fazê -lo, como quando você o implanta em seu próprio servidor, mas não no servidor do cliente.

Se você estiver usando o Delphi Prism, uma das muitas ferramentas de descompilação .NET tornará uma tarefa trivial para obter acesso (uma forma) do seu código -fonte.

A única solução é usar uma das inúmeras ferramentas de ofuscação .NET. Infelizmente, não posso fazer uma recomendação, pois nunca tive que usar uma, mas o Google deve mostrar o caminho ...

Se você está compilando com o Win32 nativo, qualquer forma de ofuscação, ou mesmo mecanismo anti-debutação, é praticamente uma perda de tempo. Existem pessoas por aí que podem ler a Assembléia tão facilmente quanto você ou eu lemos nosso idioma nativo. Essas coisas diminuem apenas o processo de engenharia reversa (e apenas mal nisso).

Alguns anos atrás, tive que reescrever um aplicativo, o que abandonou o desenvolvedor.

Eu posso recuperar todas as coisas do DFM-S, formulários (com componentes) strings de consulta armazenados em txyzqueries, bitmaps de listas de imagens, algumas strings com decompilador, mas a lógica do aplicativo não pode ser recuperada, apenas nomes de métodos com fonte ASM interna.

Existem carregadeiras (como UPX http://upx.sourceforge.net), o que extrai aplicação compactada e criptografada para a memória e o carrega no início, mas o AV geralmente marca aplicativos como infectados. :(

Você pode escrever um pequeno aplicativo como esse, algumas dicas:

www.codeproject.com/kb/cs/loadexeiintoassembly.aspx (.net) www.joachim-bauch.de/tutorials/load_dll_memory.html (para dll-s)

Somente aplicativos protegidos com roubado As teclas Themida devem desencadear um antivírus (Win32.Black detectado por Kaspersky, por exemplo).

Em geral, você não pode realmente proteger seu código da decomposição. No entanto, usando uma ferramenta como Código virtualizador Você pode proteger áreas -chave, como o decodificador de código de instalação. O código que é virtualizado é muito mais lento e tem certas restrições, mas adiciona um obstáculo adequado aos problemas de hackers casuais. É melhor fazer isso em um script de compilação para que seja adicionado constantemente para liberação - assim você garante a proteção adequada sempre.

Eu recomendo separar o código de instalação do Protection BTW, para que você possa alternar a proteção a qualquer momento sem se preocupar com os usuários existentes.

Finalmente, os formulários Delphi são facilmente acessados, mas geralmente não são úteis para mudar.

Uma desmontagem completa nunca é alcançada, acho para a plataforma de vitória nativa. Se você não incluir símbolos de depuração, etc. durante o tempo de compilação ou ocultá -los usando alguma ferramenta, é muito improvável que seu exe possa ser decodificado. Não faço ideia sobre a coisa do .NET.

Uma maneira fácil de proteger o executável é executá -lo como um aplicativo da Web em um servidor da Internet. Com Delphi e um Ajax Biblioteca (por exemplo Extjs sobre extpascal, ou intraweb/VCL para a Web), é possível converter aplicativos de desktop e cliente/servidor em aplicativos da Web. (Exemplos) - Isso também disponibiliza o aplicativo para outros sistemas operacionais e dispositivos móveis.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top