Pergunta

Escrevi (a maior parte) um aplicativo em Flex e estou preocupado em proteger o código-fonte.Eu lancei uma demonstração de Descompilador swf Trillix e abri o arquivo swf que foi instalado no meu diretório Arquivos de Programas.Vi que todos os pacotes actionscript que escrevi estavam lá.Não estou muito preocupado com os pacotes, embora haja uma quantidade substancial de código, porque ainda parece bastante inutilizável sem os arquivos mxml.Acho que eles foram convertidos para ActionScript, ou pelo menos espero.No entanto, eu ainda gostaria de explorar a ofuscação.

Alguém tem alguma experiência com ofuscadores Flash/Actionscript 3/Flex?Você pode recomendar um bom produto?

Foi útil?

Solução

Aqui está o que eu faria.

  • Compile seu aplicativo em um arquivo SWF.Em seguida, criptografe o SWF usando AES.

  • Faça um aplicativo "wrapper" que carregue o SWF criptografado em um ByteArray usando URLLoader

  • Use o as3crypto biblioteca para descriptografar o swf em tempo de execução.

  • Depois de descriptografado, use Loader.loadBytes para carregar o swf descriptografado no aplicativo wrapper.

Isso tornará muito mais difícil obter seu código.Não é impossível, mas é mais difícil.

Para aplicativos AIR, você pode deixar o SWF criptografado ao entregar o aplicativo ao usuário final.Em seguida, você poderá fornecer uma chave de registro que contenha a chave usada para descriptografar o SWF.

Além disso, aqui está um link para um ofuscador AS3.Não tenho certeza de quão bem isso funciona.http://www.ambiera.com/irrfuscator/index.html

Outras dicas

O procedimento sugerido por maclema não impedirá realmente que nenhum invasor obtenha a fonte - o "aplicativo wrapper" precisará ser descriptografado para que o invasor possa descobrir que você usa AES (ou qualquer outro algoritmo) e obterá o chave de descriptografia de maneira semelhante (porque precisa estar em texto simples em algum lugar).Assim que tiver isso, ele poderá descriptografar seu arquivo SWF facilmente.

A única solução confiável (bem...) é algum tipo de ofuscador - usamos Amayeta que funciona para Flex na versão mais recente - consulte http://www.amayeta.com/software/swfencrypt/ .

Bem, na minha opinião, a solução mais fácil e segura é uma mistura de maclema e resposta de Borek:

Ofuscar código pode ser uma grande dor de cabeça se você não o incluiu em seu processo desde o início e se sua aplicação for muito grande:é provável que a ofuscação corrompa seu aplicativo se você usou pacotes remotos (e não declarou isso para o ofuscador) se você usou muitas variáveis ​​​​não digitadas em objetos ou classes dinâmicas ....

Então:se você usar a solução do maclema em seu grande aplicativo e usar ofuscação em seu wrapper (que é um aplicativo pequeno que provavelmente será muito fácil de ofuscar), seu código será o mais seguro e menos complicado.Somente um pirata muito zangado gastaria tempo fazendo engenharia reversa da ofuscação para então descriptografar o pacote....Bem, se alguém quer tanto o código do seu aplicativo, ou é relacionado à CIA ou você já é muito rico (ou ambos)

Obrigado a todos por suas respostas

Recentemente lancei um jogo para iOS e Android usando Flash.Procurei na Internet um bom programa gratuito para proteger o código-fonte do meu SWF e não consegui encontrar nada, então escrevi um.Ainda está em desenvolvimento e "use por sua conta e risco", mas funcionou para mim.

É lançado no github.Confira e me diga o que você pensa.

https://github.com/Teesquared/flasturbate

Carreguei um binário do Windows, mas recomendo que você siga as instruções para construí-lo sozinho, se quiser tentar.

Este ofuscador funciona diretamente no arquivo SWF.Atualmente, ele apenas renomeia símbolos, mas é construído em uma estrutura que pode suportar a alteração de bytecodes no futuro.

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