2011-08-22 21 views

Respuesta

3

Intente realizar una ingeniería inversa de su propia aplicación. Vea lo que puede leer en el código.

Use las siguientes preguntas:

decompiling DEX into Java sourcecode

http://www.taranfx.com/decompile-reverse-engineer-android-apk

+1

Gracias por esto. Descompuse dos aplicaciones diferentes, una que ofusqué y otra que no oculté. El código de ambas aplicaciones (no ofuscado y ofuscado) tiene el mismo aspecto. Los nombres de las variables han sido cambiados, pero los nombres de las clases y demás no son iguales. ¿Es así como funciona la ofuscación? ¿Cómo es que el proyecto que no he difuminado tiene cambios en los nombres de las variables? – dell116

+0

Eso depende de cómo configures Proguard para que funcione ... ¡pero no tengo mucha experiencia con eso! –

11

Busque dump.txt, mapping.txt, seeds.txt y usage.txt. Probablemente estarán en una carpeta proguard en su directorio de proyectos. Estos se crean cuando ProGuard se ejecuta en su código.

Estos están llenos de información sobre la ofuscación, especialmente útil es mapping.txt que muestra a lo que ProGuard convirtió sus nombres de miembros diferentes.

+1

Tengo una carpeta ProGuard en el directorio del proyecto, pero no tiene nada ... nada allí ... ¿debo suponer que ProGuard no ha ocultado mi código correctamente? ¿Podrían estos archivos estar en cualquier otro directorio? – dell116

+0

¿Hay alguna carpeta 'proguard' en su proyecto en cualquier lugar? Si no, diría que probablemente no se ejecutó correctamente. –

+0

Sí ... la carpeta de comandos está ahí ... pero no tiene contenido ... No pude encontrar ninguno de los archivos que mencionaste en ningún lugar de mi disco duro ... así que algo debe haberse roto cuando lo ejecuté proguardándolo .... uht oh .... – dell116

0

DISCALIMER: Yo no soy el dueño de decompileandroid.com y no me pagan para promoverlo. Soy un desarrollador, que está satisfecho con este servicio.

En realidad, es una manera más fácil que adquirir varias herramientas diferentes y pasar la salida de una de ellas a la otra (esto por supuesto le da un mejor control de lo que está sucediendo). Puede utilizar el servicio

decompileandroid.com

Básicamente subes y el archivo APK y lo hace todos estos pasos para usted. Luego puede descargar un archivo .zip, que contiene las fuentes decompiladas.

Primero puede cargar su .apk incorporado en modo de depuración, luego cargar un .apk incorporado en modo de lanzamiento. Solo asegúrese de que la bandera minifyEnabled esté configurada en true en su archivo build.gradle para la versión de lanzamiento.

La diferencia fue bastante obvia en mi caso: la mayoría de mis clases se llamaron a, b, c, etc. en la construcción minificada.

+0

¡Yikes! Es decir, estoy seguro de que ya conoce las implicaciones de cargar una versión depurada y no ofuscada en un servidor web. Después de todo, estamos hablando de ofuscación por lo que un tercero no puede leer su código. Aunque este sitio se ve bien en la superficie, no estoy seguro de que confíe en él. – dell116

+0

Sí, por supuesto en la mayoría de las situaciones no le gustaría cargar sus APK a un servidor remoto. Especialmente con proyectos comerciales. Di esto como una alternativa más fácil. En mi caso, era un proyecto de prueba, así que no tenía nada de qué preocuparse. Por supuesto, siempre se puede cargar solo la versión ofuscada, si eso no fuera un problema también. En ese caso uno simplemente vería cuán bien ha funcionado la ofuscación. –

Cuestiones relacionadas