
Un conjunto de scripts que facilitan el trabajo con frida
Un conjunto de scripts que facilitan el trabajo con Frida, diseñados para ayudar a encontrar la función correcta a la que engancharse y luego modificarla.
Para ambos scripts, asumo que tienes un dispositivo conectado por USB o que tienes un emulador ejecutándose en la misma máquina.
Instala frida en tu máquina y asegúrate de tener el servidor frida en ejecución en tu dispositivo/emulador Android.
Puede que tengas un archivo apk y quieras saber qué actividades se ejecutarán y en qué secuencia. En este caso puedes usar activity_tracer.js:
frida -U -f com.pkg.xxx.yyy -l activity_tracer.js --no-pause
En caso de que quieras listar todos los métodos de una clase y quieras saber qué devuelve un método, puedes usar hooketh.py:
python hooketh.py -h
usage: hooketh.py [-h] [-n NUMBER] [-c CLASS_NAME] [-t RETURN_TRUE]
[-p PACKAGE_NAME]
optional arguments:
-h, --help show this help message and exit
-n NUMBER, --number NUMBER
index number of the method to overload
-c CLASS_NAME, --class_name CLASS_NAME
FQDM name of the target class
-t RETURN_TRUE, --return_true RETURN_TRUE
make method return true(type 1 or true)
-p PACKAGE_NAME, --package_name PACKAGE_NAME
FQDM of the app (ex: com.app.name, you can find it in
the manifest file)
# Si no proporcionas un número de método, el script usará "3" como número de método porque ese es el método "init"
python3 hooketh.py -c java.lang.String -p com.name1.name2.demo
# Haz que el método 10 en MainActivity devuelva true
python3 hooketh.py -c com.name1.name2.demo.MainActivity -p com.name1.name2.demo -n 10 -t true
Nota que una vez que proporcionas un nombre de clase y un número al script hooketh.py, este listará todos los métodos de la clase y los numerará. Después puedes proporcionar un número de la lista para saber qué devuelve ese método. Siempre empiezo con 3 porque ese es el método de inicialización.