criptografia de executável
gostaria de saber como faço para criptografar meu executavel com a finalidade de ele não ser facilmente editado num editor hexadecimal ou num disassembly e também para os dfm´s e as strings constantes não ficarem legiveis. Sei que é possivel compactar com o upx, mas se ele é compactado, isso quer dizer que tambem pode ser descompactado, certo? queria proteger mais meu EXE, e usando algum software open source ou GNU, se possível.
Vitor Luiz Rubio
Vitor Luiz Rubio
Vitor Rubio
Curtidas 0
Respostas
Firekiller
25/10/2005
Bom, na verdade, quando você usa o UPX ou ASPACK, ele tira espaços e compacta o executável, porém não é possível ´descompactá-lo´, pois o aplicativo teria que saber exatamente onde e o que colocar em cada posição. Mas se você quer criptografá-lo, existem aplicativos tipo o AsProtect, que criptografa o executável, obtendo o efeito que você quer, porém ele não é free.
Também teriam alguns componentes que fariam isso, lockbox (acho que é esse o nome), mas não sei se são free.
Também teriam alguns componentes que fariam isso, lockbox (acho que é esse o nome), mas não sei se são free.
GOSTEI 0
Aerreira
25/10/2005
Bom, na verdade, quando você usa o UPX ou ASPACK, ele tira espaços e compacta o executável, porém não é possível ´descompactá-lo´, ...
Discordo de você Firekiller, o UPX permite compactar e descompactar o executável sim, descompactar significa retornar o executável ao seu tamanho original após a compilação.
O que poderia ter no UPX, que seria ótimo, era uma opção de compactar com senha, isso o tornaria mais completo e serviria para o que você quer.
GOSTEI 0
Firekiller
25/10/2005
Realmente eu desconhecia essa possibilidade proporcionada pelo UPX (inclusive se possível poderia me indicar qual a linha de comando? ), mas como eu disse, existem softwares como o AsProtect e o componente LockBox que criptografam o executável, para evitar edições com programas como o PE e outros.
GOSTEI 0
Aerreira
25/10/2005
Realmente eu desconhecia essa possibilidade proporcionada pelo UPX (inclusive se possível poderia me indicar qual a linha de comando? )...
UPX arquivo.exe -D
GOSTEI 0
Firekiller
25/10/2005
Obrigado pela explicação....
GOSTEI 0
Aerreira
25/10/2005
O que poderia ter no UPX, que seria ótimo, era uma opção de compactar com senha, isso o tornaria mais completo e serviria para o que você quer.
Infelizmente o próprio UPX não recomenda isso que eu citei acima, veja:
- We will *NOT* add any sort of protection and/or encryption.
This only gives people a false feeling of security because
by definition all protectors/compressors can be broken.
And don´t trust any advertisment of authors of other executable
compressors about this topic - just do a websearch on ´unpackers´...
GOSTEI 0
Sistemald
25/10/2005
procure por um componente chamado ´Cipher´, e ja tive ele, ele faz criptografia de arquivos e texto, possui chave, e se não me engano ele faz criptografia em 128 bits
GOSTEI 0
Massuda
25/10/2005
Imaginando que fosse possível cifrar/criptografar o executável, seria necessário decifrar o conteúdo dele para poder executar.
Poderia ter algo parecido com o que os compactadores de executáveis que o pessoal citou e fazer essa decifragem em memória ao carregar o programa.
Mas para isso ser possível, necessariamente a senha de cifragem deve ser de conhecimento da parte do programa que faz a decifragem... se a senha de cifragem tem que ficar dentro do programa na parte que não está cifrada (pois precisa ser executável) e, portanto, visível ao cracker, qual a utilidade disso tudo? Consequentemente, todo esse esforço não serve para evitar a ação dos crackers.
Todo método de proteção é burlável, mas o que você pode fazer é dificultar a ação do cracker, combinando mais de um método de proteção. O LockBox, o ASProtect (citados pelo colega firekiller) e hardlocks são alternativas viáveis. Pessoalmente não acredito que soluções caseiras funcionem satisfatoriamente diante de um cracker.
Poderia ter algo parecido com o que os compactadores de executáveis que o pessoal citou e fazer essa decifragem em memória ao carregar o programa.
Mas para isso ser possível, necessariamente a senha de cifragem deve ser de conhecimento da parte do programa que faz a decifragem... se a senha de cifragem tem que ficar dentro do programa na parte que não está cifrada (pois precisa ser executável) e, portanto, visível ao cracker, qual a utilidade disso tudo? Consequentemente, todo esse esforço não serve para evitar a ação dos crackers.
Todo método de proteção é burlável, mas o que você pode fazer é dificultar a ação do cracker, combinando mais de um método de proteção. O LockBox, o ASProtect (citados pelo colega firekiller) e hardlocks são alternativas viáveis. Pessoalmente não acredito que soluções caseiras funcionem satisfatoriamente diante de um cracker.
GOSTEI 0
Sistemald
25/10/2005
Concordo plenamente, eu atualmente não tenho usado nenhuma proteção,
eu uso apenas uma proteção para 30 dias , para se proteger do usuário. e não Programadores experientes.
Não me preocupo muito em ser crackeado, dificilmente programas brasileiros são crackeados( comparando com os de fora), e se crackear tudo bem, afinal, se não fosse a pirataria onde estaria a Microsoft?
eu uso apenas uma proteção para 30 dias , para se proteger do usuário. e não Programadores experientes.
Não me preocupo muito em ser crackeado, dificilmente programas brasileiros são crackeados( comparando com os de fora), e se crackear tudo bem, afinal, se não fosse a pirataria onde estaria a Microsoft?
GOSTEI 0
Vitor Rubio
25/10/2005
pessoal, obrigado pelas dicas, mas tem uma cois: o lock box não é um componente com uns métodos pra criptografar strings? ele criptografa o EXE também?
GOSTEI 0
Massuda
25/10/2005
[quote:83bf77f5b8=´vitor^_^´]...o lock box não é um componente com uns métodos pra criptografar strings?[/quote:83bf77f5b8]Sim... na verdade, talvez fosse melhor você dar uma olhada no [url=http://sourceforge.net/projects/tponguard/]OnGuard[/url].
GOSTEI 0
Vitor Rubio
25/10/2005
Obrigadão Massuda! Esse onguard vai ser bastante útil quando eu for fazer uma aplicação Trial de 30 dias. Mas ele criptografa o EXE? porque senão, de qualquer forma, o EXE poderia ser desassemblado e modificado....
GOSTEI 0
Aerreira
25/10/2005
Posso fazer uma pergunta? Pra que tanta proteção?
Eu particularmente uso um sistema de registro que armazena dados no registro do windows, limitando o tempo que o usuário pode avaliar meu aplicativo. Expirado este prazo, o programa só funciona se o usuário adquirir uma licença de uso, quando envio uma chave que libera a aplicação sem nenhuma limitação.
Sei que a maioria das proteções são quebraveis, mas para o usuário padrão isso já é o suficiente e garante que seus clientes somente poderão usar o aplicativo se registrarem. Pra mim vem funcionando muito bem dessa forma.
Eu particularmente uso um sistema de registro que armazena dados no registro do windows, limitando o tempo que o usuário pode avaliar meu aplicativo. Expirado este prazo, o programa só funciona se o usuário adquirir uma licença de uso, quando envio uma chave que libera a aplicação sem nenhuma limitação.
Sei que a maioria das proteções são quebraveis, mas para o usuário padrão isso já é o suficiente e garante que seus clientes somente poderão usar o aplicativo se registrarem. Pra mim vem funcionando muito bem dessa forma.
GOSTEI 0
Vitor Rubio
25/10/2005
Posso fazer uma pergunta? Pra que tanta proteção?
Meu objetivo não é proteger minha aplicação, nem pretendo desenvolver uma aplicação trial de 30 dias ou com qualquer periodo de validação.
Meu intuito é apenas aprender mesmo.
A minha dúvida é a seguinte: Usando um disassembler ou editor Hexa, paciencia e conhecimento, qualquer programa pode ser aberto e modificado. O algoritmo pode ser modificado (trocar jz por jnz por exemplo inverte a validação de um IF) mas o que é mais fácil de modificar são strings fixas, como caption de labels, mensagens do showmessage(´blablabla´), variaveis flag, constantes string etc. Não é viável criptografar cada string que você usa no seu programa.
Existem programas que são bem mais difíceis de se crackear, abrindo num editor hexa ou num disassembler, nada pode ser entendido ou mechido. Esses programas são criptografados com um criptografador de EXE, mas eu não conheço nenhum que seja free ou gnu.
GOSTEI 0