2011-12-18 13 views
9

He utilizado ofuscadores java en el pasado y algunos son fáciles de ingeniería inversa. Pensé que tal vez no estaba suficientemente ofuscado.¿Es incorrecto volver a ofuscar el código ofuscado?

¿Es incorrecto o problemático aplicar una ofuscación en dos etapas?

  1. Ofuscación con ProGuard
  2. terminar con un producto comercial Zelix Klassmaster

-

O es que un mal enfoque? ¿Debería usarse solo un ofuscador?

+0

Está "bien" en el sentido de que no pasará nada malo. –

+4

Creo que es una buena pregunta. No sé por qué obtuvo un voto "cerrado". Tal vez debería reformularse un poco. – MByD

+0

He votado para cerrar porque no está claro qué significa "bien" en lugar de "malo", en un sentido objetivo. –

Respuesta

4

Mientras el código se ejecute correctamente, no importa qué número de ofuscador utilices, debería estar bien. Recuerde que la principal preocupación de utilizar el ofuscador es hacer que el código sea ilegible en la medida de lo posible, manteniendo su corrección.

2

re-ofuscar el código ofuscado es un método bien conocido para descifrar el código. p. se puede confundir clases para tener nombres que no forman ventanas válidos los nombres de archivo como

class COM1 { ... } 

descompilación que resultarían en un archivo llamado COM1.java, que no es un nombre de archivo válido de Windows y por lo tanto se rompe muchos descompiladores.

La solución sería primero volver a ofuscar usando un diccionario de nombres como class1, class2, method1, method2, field1, field2 y luego descompilar. El código descompilado ahora no solo será más válido para descompilar, sino que también será más legible.

El uso de ofuscadores en serie suele dar como resultado un código ofuscado tan fuerte como el último ofuscador utilizado. (es decir, la cadena es tan fuerte como el último enlace)

Le sugiero que se adhiera a un ocultador, pero asegúrese de comprender todas y cada una de las opciones en el proceso de ofuscación y cuán fácil es deshacer.

+0

Imagina que el último ofuscador simplemente copió el código. ¿Cómo puede eso hacer que los pasos previos de ofuscación sean menos efectivos? Creo que es tan fuerte como el enlace más fuerte. –

+0

@IraBaxter Entiendo lo que quiere decir, sin embargo, muchas técnicas de ofuscación se pueden deshacer volviendo a ofuscarlas. – Matiaan

+0

'El uso de ofuscadores en serie suele dar como resultado un código ofuscado tan fuerte como el último ofuscador utilizado. (es decir, la cadena es tan fuerte como el último enlace) '¿Por qué? – EJP

Cuestiones relacionadas