Ofuscação do jogo HTML5

8

Jogos em HTML5 têm código fonte visível. Existe uma maneira de fazê-los como arquivo swf?

Como ocultar o algoritmo do jogo?

O que você acha do Firefox JavaScript Deobfuscator Plugin e ofuscação?

Rustam
fonte
11
Se você nos dizer o motivo que deseja ofuscar, podemos dar uma resposta muito melhor, possível (provavelmente), mostrar que você não precisa realmente ocultar seu código.
jcora
3
Além disso, um arquivo SWF também não é protegido. É possível descompilar e extrair facilmente todos os ativos e códigos. Existem ofuscadores por aí, mas eles não estão parando algo realmente determinado.
bummzack
Quanto tempo você precisa para restaurar completamente o aplicativo swf após a descompilação?
Rustam
Além disso, por que você iria querer?
Brice

Respostas:

10

Se você deseja proteger sua fonte, não a escreva em HTML / Javascript?

Parte das coisas realmente legais da Web, pois é tudo legível por humanos. Isso o torna um excelente recurso de aprendizado. Se você está me dizendo que nunca consultou a fonte de um site para saber como ele faz alguma coisa, fique à vontade para me dizer que estou errado.

Estou quase compartilhando o amor com o código, caso contrário não responderia perguntas em um site sobre oferecer ajuda, tudo de graça, não é?

Edit: Eu disse o que penso sobre isso, existe uma maneira de torná-lo ilegível? Não, não em JS / HTML puro. A razão para isso é simples: em algum lugar abaixo da linha, torna-se legível. Se você ofuscá-lo, um desobuscador o pega. Se você usa uma cifra ou a traduz de alguma forma, em algum momento você precisa convertê-lo novamente em javascript (e o código para traduzi-lo também precisa estar na sua fonte!).

O melhor que você pode fazer é proteger contra roubo de largura de banda e ofuscar se você realmente sentir a necessidade, mas isso não impedirá as pessoas se elas forem realmente determinadas.

Matt Kemp
fonte
6
flash e java podem ser descompilados, binários podem ser desmontados, javascript pode ser desativado. Sua fonte não está protegida apenas porque você não a escreveu em javascript.
Esailija 16/07/2012
2
@Esailija, o esforço médio necessário não é o mesmo, exceto que você é um engenheiro reverso / especialista em segurança / hacker / o que sempre fez.
daemonfire300
3
Apenas uma citação de qualquer lugar: "O que um homem faz com que outro homem possa desfazer". e acrescento: "Com a intenção e a vontade certas, nada está realmente protegido".
Ricardo Souza
bem, eu não chamaria isso de uma coisa muito legal; mais uma "bênção e uma maldição" situação
CobaltHex
Eu chamaria isso de 'mecânico de base': é realmente fácil roubar na web. É por isso que temos a velocidade e a complexidade da inovação que fazemos. Newton, Picasso, Eliot e tenho certeza de que todos têm máximas cunhadas em torno do roubo direto, mesmo que justamente justificado pelos ombros dos gigantes. Shakespeare foi excelente em roubo.
214122 Mattel
5

Você pode colocar muito disso no servidor via Node.js e retornar os resultados das funções. mas fora isso, é como Matt Kemp diz. O código executado é legível por um humano, é impossível ocultá-lo.

David Gillen
fonte
2

Mesmo se você não ofuscar seu código, o HTML / JS já tem o mesmo nível de dificuldade para fazer engenharia reversa que o SWF.

Os arquivos SWF contêm o código Actionscript original (IIRC), com comentários etc., a menos que sejam ofuscados. Os nomes de objetos etc. também estão contidos no SWF.

Os descompiladores / recompiladores SWF existem, e apenas porque você não pode vê-lo com um editor de texto, não significa que o SWF esteja de alguma forma a salvo da engenharia reversa.

De fato, o nível de ofuscação não é realmente diferente de um SWF. Você pode ofuscar seu código JS usando algum ofuscador, mas isso dificulta a interpretação dos relatórios de erros.

Você provavelmente deseja concentrar seus esforços em fazer algo que vale a pena roubar, em vez de impedir que as pessoas o roubem. Muitos SWFs são roubados e usados ​​para fins não autorizados (com gráficos alterados etc.)

MarkR
fonte
2

Use o compressor Yahoo YUI gratuito.

Eu o uso porque compacta meu código drasticamente (incluindo remover comentários e espaços em branco desnecessários). Isso me permite comentar e estruturar meu código exatamente como eu quero, sem me preocupar com o quão fácil eu estou facilitando para ladrões.

Além disso, se você quiser ler o Javascript de um site complexo, depois que todos os nomes de variáveis ​​e funções forem essencialmente destruídos - bem, boa sorte com isso. É muito mais difícil descobrir o que o código está fazendo quando você não tem dicas.

(Embora com o compressor YUI, você precise aumentar sua funcionalidade para também se livrar dos nomes das funções. Alterei a maneira como nomeio funções especificamente para remover automaticamente e seletivamente a maioria dos nomes de funções. Isso pode exigir algum código personalizado. .)

DAG
fonte
1

Não, e realmente não há razão para isso! Se você quer vender seu trabalho, pode fazê-lo sem ofuscar. As pessoas pagam pelo conteúdo, não pelo código. Venda seu trabalho artístico, história, música etc. e distribua o código livremente (já é, pelo menos).

alekop
fonte
1

Jogos em HTML5 têm código fonte visível. Existe uma maneira de fazê-los como arquivos swf?

Sim, use o Flash e traduza seu código para o ActionScript.

Como alguém poderia esconder os algoritmos do jogo?

Em termos absolutos, você não pode fazer isso.

O que você acha do Firefox JavaScript Deobfuscator Plugin e ofuscação?

A ofuscação nada mais é do que uma barreira muito fina para alguém que seria sério em roubar seu código. Ainda assim, é simples de configurar, ele pode repelir as crianças mais burras do script, e é a única coisa que você pode fazer para proteger o código do lado do cliente. Ele tem o benefício adicional de reduzir o tamanho do script (download mais rápido) e até otimizar o código (execução mais rápida). Verifique esta entrada no Stack Overflow para obter detalhes sobre ofuscação. Resumo: você tem muitas opções. Eu pessoalmente tentei o UglifyJS e tive resultados muito satisfatórios.

Laurent Couvidou
fonte
0

Como todos sabemos, o HTML5 depende do JavaScript como linguagem de programação. Em teoria, todas as ferramentas que protegem o JavaScript devem funcionar em HTML5.

A única ferramenta que sei que atualmente suporta HTML5 no contexto de desenvolvimento de jogos é o JScrambler . Não tenho certeza se outros funcionarão.

Para fins de discussão, ofuscação não é uma bala de prata. Temos software compilado criptografado, protegido com várias soluções anti-cópia e ainda assim podemos obtê-los sem pagar. Dito isto, acredito que a ofuscação é melhor do que deixar seu código aberto para qualquer um ler quando você não pretender.

Eu realmente amo o código aberto e apoio o movimento, mas às vezes fechar o código faz muito sentido.

rmribeiro
fonte
0

Você pode usar código nativo. Programação em C ++ e compilação para HTML5. O Cocos2d-X é uma biblioteca que funciona no iOS, Android e HTML5. Seu código ficará oculto.

vgonisanz
fonte