Ofuscación de juegos HTML5

8

Los juegos HTML5 tienen código fuente visible. ¿Hay alguna manera de hacer que les guste el archivo swf?

¿Cómo ocultar el algoritmo del juego?

¿Qué opinas del plugin y la ofuscación de Firefox JavaScript Deobfuscator ?

Rustam
fuente
1
Si nos dice la razón por la que desea ofuscar, podemos darle una respuesta mucho mejor, posible (probablemente), mostrarle que en realidad no necesita ocultar su código.
jcora
3
Además, un archivo SWF tampoco está protegido ... puede descompilar fácilmente y extraer todos los activos y el código de él. Hay ofuscadores por ahí, pero no están deteniendo algo que está realmente determinado.
bummzack
¿Cuánto tiempo necesita para restaurar completamente la aplicación SWF después de descompilar?
Rustam
Además, ¿por qué quieres hacerlo?
Brice

Respuestas:

10

Si desea proteger su fuente, ¿no lo escribe en HTML / Javascript?

Parte de las cosas realmente buenas de la web, ya que es legible para todos. Esto lo convierte en un excelente recurso de aprendizaje. Si me estás diciendo que nunca has mirado la fuente de un sitio web para saber cómo hace algo, entonces no dudes en decirme que estoy equivocado.

Estoy a punto de compartir el amor con el código, de lo contrario no respondería preguntas en un sitio web sobre ofrecer ayuda, todo gratis, ¿verdad?

Editar: He dicho lo que pienso, ¿hay alguna manera de que no sea legible? No, no en JS / HTML puro. La razón de esto es simple: en algún momento, se vuelve legible. Si lo ofuscas, un desobuscador te atrapa. Si usa un cifrado o lo traduce de alguna manera, en algún momento debe traducirlo nuevamente a JavaScript (¡y el código para traducirlo también debe estar en su fuente!).

Lo mejor que puede hacer es protegerse contra el robo de ancho de banda y ofuscar si realmente siente la necesidad, pero no detendrá a las personas si realmente están decididas.

Matt Kemp
fuente
66
flash y java pueden descompilarse, los binarios pueden desmontarse, javascript puede desofuscarse. Su fuente no está protegida solo porque no la escribió en javascript.
Esailija
2
@Esailija, el esfuerzo promedio que se requiere no es el mismo, excepto que usted es un ingeniero inverso capacitado / experto en seguridad / hacker / waht.
daemonfire300
3
Solo una cita de cualquier parte: "Lo que un hombre hace, cualquier otro hombre puede deshacer". y agrego: "Con la intención y la voluntad correctas, nada está realmente protegido".
Ricardo Souza
bueno, no lo llamaría una cosa realmente agradable; más de una situación de "bendición y maldición"
CobaltHex
Yo lo llamaría su 'mecánica base': es muy fácil robar en la web. Es por eso que tenemos la velocidad y la complejidad de la innovación que hacemos. Newton, Picasso, Eliot y estoy seguro de que todos tienen máximas acuñadas en torno al robo directo, incluso si los hombros de los gigantes lo justifican de manera noble. Shakespeare fue excelente en el robo.
Matt Kemp
5

Puede colocar una gran cantidad en el servidor a través de Node.js y simplemente devolver los resultados de las funciones. pero aparte de eso es como dice Matt Kemp. El código que se ejecuta es legible por un humano, es imposible ocultarlo.

David Gillen
fuente
2

Incluso si no ofuscas tu código, HTML / JS ya tiene el mismo nivel de dificultad para realizar ingeniería inversa que SWF.

Los archivos SWF contienen el código Actionscript original (IIRC), con comentarios, etc., a menos que estén ofuscados. Los nombres de objetos, etc., también están contenidos dentro del SWF.

Existen descompiladores / recompiladores de SWF, y el hecho de que no pueda verlo con un editor de texto no significa que SWF esté a salvo de la ingeniería inversa.

De hecho, el nivel de ofuscación no es realmente diferente de un SWF. Puede ofuscar su código JS utilizando algún ofuscador, pero eso hace que los informes de errores sean más difíciles de interpretar.

Probablemente desee centrar sus esfuerzos en hacer algo que valga la pena robar, en lugar de evitar que las personas lo roben. Muchos SWF se arrancan y se usan para fines no autorizados (con gráficos modificados, etc.)

MarkR
fuente
2

Utilice el compresor Yahoo YUI gratuito.

Lo uso porque comprime mi código drásticamente (incluida la eliminación de comentarios y espacios en blanco innecesarios). Esto me permite comentar y estructurar mi código exactamente como quiero sin preocuparme por lo fácil que lo estoy haciendo para los ladrones.

Además, si desea leer el Javascript para un sitio complejo después de que todos los nombres de variables y funciones hayan sido esencialmente destruidos, bueno, buena suerte con eso. Es mucho más difícil descubrir qué está haciendo el código cuando no tienes pistas.

(Aunque con el compresor YUI puede que necesite aumentar su funcionalidad para deshacerse también de los nombres de las funciones. He alterado la forma en que nombro las funciones específicamente con el fin de eliminar de forma automática y selectiva la mayoría de los nombres de funciones. Esto puede requerir un código personalizado de su parte .)

TROZO DE CUERO
fuente
1

¡No, y realmente no hay razón para hacerlo! Si quiere vender su trabajo, puede hacerlo sin ofuscación. La gente paga por el contenido, no por el código. Venda su obra de arte, historia, música, etc., y regale el código libremente (ya lo es, de todos modos).

alekop
fuente
1

Los juegos HTML5 tienen código fuente visible. ¿Hay alguna manera de hacerlos como archivos swf?

Sí, use Flash y traduzca su código a ActionScript.

¿Cómo se podría ocultar los algoritmos del juego?

En términos absolutos, no puedes hacer eso.

¿Qué opinas del plugin y la ofuscación de Firefox JavaScript Deobfuscator?

La ofuscación no es más que una barrera muy delgada para alguien que se toma en serio el robo de su código. Aún así, es simple de configurar, puede rechazar a los niños de script más tontos, y es lo único que puede hacer para proteger el código del lado del cliente. Tiene la ventaja adicional de que reduce el tamaño del script (descarga más rápida) e incluso puede optimizar el código (ejecución más rápida). Consulte esta entrada en Desbordamiento de pila para obtener detalles sobre la ofuscación. Resumen: tienes muchas opciones. Personalmente probé UglifyJS y obtuve resultados muy satisfactorios.

Laurent Couvidou
fuente
0

Como todos sabemos, HTML5 se basa en JavaScript como lenguaje de programación. En teoría, todas las herramientas que protegen JavaScript deberían funcionar en HTML5.

La única herramienta que conozco que actualmente admite HTML5 en el contexto del desarrollo de juegos es JScrambler . No estoy seguro de que otros funcionen.

Para el propósito de la discusión, la ofuscación no es una bala de plata. Tenemos un software que se compila encriptado, protegido con varias soluciones anticopia y que aún podemos obtener sin pagar. Dicho esto, creo que la ofuscación es mejor que dejar su código abierto para que cualquiera lo lea cuando su intención no es eso.

Realmente amo el código abierto y apoyo el movimiento, pero a veces cerrar el código tiene mucho sentido.

rmribeiro
fuente
0

Puedes usar código nativo. Programación en C ++ y compilación para HTML5. Cocos2d-X es una biblioteca que funciona en iOS, Android y HTML5. Tu código estará oculto.

vgonisanz
fuente