3 votos

¿Existe una manera de llamar/invocar una función Java (privada) en una aplicación?

¿Existe alguna herramienta que se pueda utilizar en ADB shell o algo similar (sin Root posiblemente) que pueda invocar una función en la aplicación, mientras se está ejecutando?

5voto

pr0nin Puntos 353

Dispositivo rooteado

En los dispositivos rooteados, las funciones privadas de las aplicaciones pueden llamarse con bastante facilidad (en la mayoría de los casos) utilizando una herramienta como Frida . Frida es como una mezcla de un "scriptable debugger" y Xposed framework con la diferencia de que no tienes que lidiar con código de bajo nivel como los depuradores normales y la desventaja de Xposed de que al cambiar tu código de scripting no tienes que reiniciar todo el teléfono.

Frida permite escribir código JavaScript que se ejecuta dentro de la aplicación y también dispone de un shell interactivo para encontrar o crear instancias de clases, llamar a funciones, etc. Frida es como un cuchillo suizo para la ingeniería inversa y la depuración de aplicaciones de terceros.

Dispositivo sin root

En un dispositivo no rooteado y una aplicación que es una aplicación de lanzamiento normal (no una compilación de depuración) no se puede invocar una función dentro de la aplicación sin modificar la aplicación. Por ejemplo, puedes intentar descompilar la aplicación usando apktool modificar el código Smali para ejecutar la función, por ejemplo, si se pulsa un determinado botón de la interfaz de usuario, y volver a compilar y resignificar la aplicación con un nuevo certificado. Pero tenga en cuenta que Smali es un lenguaje de muy bajo nivel - por lo que incluso si usted está familiarizado con Java y el desarrollo de Android modificar el código Smali será un reto

0 votos

Si renuncias a una aplicación, no se instalará sin haberla eliminado por completo, incluidos los archivos de la aplicación. O hay alguna manera de mantenerlos, ya que me gustaría conservar estos archivos.

0 votos

@hiddenhospitalresearch Es correcto, tienes que borrar los datos de la app. Si instalas la app vía adb puedes usar adb install -r <abc.apk> que borrará los datos de la aplicación. Si la aplicación permite la copia de seguridad a través de adb puede intentar hacer una copia de seguridad de los datos de la aplicación utilizando adb backup <packagename> (comprobar el tamaño del archivo .ab después éxito = tamaño del archivo es mayor que 1KB) y después de reemplazar la aplicación restaurar los datos de copia de seguridad.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X