¿Cómo ofuscar el código sin compilar el proyecto?

¿Hay alguna forma de ofuscar el código directamente en el editor?

En este momento, si quiero ver el código ofuscado de mi proyecto, tengo que compilar el proyecto, hacer ingeniería inversa y luego ver el código a través de herramientas como jd-gui.

Es posible lograr todo esto a través de algún complemento para que pueda compilar el código ofuscado, es decir, hacer que funcione como antes de la ofuscación.

NOTA

Para aclarar, no necesito ofuscar el código. en exportación ya que esta característica ya está presente. Necesito ofuscar el código. en vivo sin compilarlo o al menos sin tener que exportarlo a apk.

preguntado el 28 de agosto de 12 a las 08:08

Interesante. Solo me preguntaba, ¿por qué necesitaría ofuscación en forma de fuente? -

@BoA Hay muchas razones. Algunas personas prefieren enviar su fuente en forma ofuscada, mientras que yo lo necesito para que mis alumnos les muestren fácilmente lo que hace la ofuscación. La forma RI es demasiado lenta en mi caso y me preguntaba si hay una forma más sencilla. -

3 Respuestas

En su directorio android-sdk, verifique el directorio tools/proguard/bin: esto incluye algunos ejecutables de proguard (proguard es la herramienta utilizada para la ofuscación). Nunca los he usado, pero estoy convencido de que uno de estos ejecutables puede ayudarlo con su pregunta (¡incluso hay uno con una interfaz gráfica de usuario!).

Respondido 28 ago 12, 08:08

No conozco ningún ofuscador de compilación previa, sin embargo, creo que lo que desea se puede lograr siguiendo los siguientes pasos:

  1. Cree un archivo de mapeo uno a uno de los nombres de sus funciones a algunos nombres de texto incomprensibles. Del mismo modo, tenga el mismo tipo de mapeo para las variables. Defina algunos bucles / bloques de código inútiles que las JVM ignoran en la compilación y se pueden ejecutar al inicio o al final de los métodos (el compilador lo eliminará de todos modos).
  2. Ahora que ha mencionado Intellij Idea en sus etiquetas, puede usar la funcionalidad Macro en su ide y crear una macro que reemplace todos los nombres de variables y nombres de funciones (o paréntesis iniciales con bloques de código inútiles).
  3. Guarde la macro con cualquier nombre y cuando quiera ver su código ofuscado, simplemente ejecute la macro para ofuscar.
  4. Tenga una macro similar para desofuscar también para que pueda volver atrás cuando lo desee. Mientras tanto, no he trabajado mucho en el complemento de idea intellij, sin embargo, puede crear un complemento que haga el mismo trabajo que macro con bastante comodidad.

Respondido 28 ago 12, 08:08

Si está utilizando Eclipse, es posible que desee instalar jadclipse para facilitar su flujo de trabajo. Abrirá cualquier archivo de clase binaria en su espacio de trabajo directamente en el formato de texto descompilado.

Si ese archivo de clase es un binario ofuscado o no, depende de la cadena de herramientas restante, por supuesto.

Respondido 28 ago 12, 17:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.