
Um conjunto de scripts que facilitam o trabalho com frida
Um conjunto de scripts que facilitam o trabalho com o Frida, projetados para ajudar a encontrar a função correta a ser interceptada (hooked) e depois modificá-la.
Para ambos os scripts, assumo que você tem um dispositivo conectado via USB ou um emulador em execução na mesma máquina.
Instale o frida na sua máquina e certifique-se de ter o servidor frida em execução no seu dispositivo/emulador Android.
Você pode ter um arquivo APK e quer saber quais atividades serão executadas e em qual sequência. Neste caso, você pode usar activity_tracer.js:
frida -U -f com.pkg.xxx.yyy -l activity_tracer.js --no-pause
Caso você queira listar todos os métodos de uma classe e saber o que um método retorna, pode 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)
# If you do not provide a method number the script will use "3" as a method number because that is the "init" method
python3 hooketh.py -c java.lang.String -p com.name1.name2.demo
# Make method 10 in the MainActivity return true
python3 hooketh.py -c com.name1.name2.demo.MainActivity -p com.name1.name2.demo -n 10 -t true
Nota: assim que você fornecer um nome de classe e um número para o script hooketh.py, ele listará todos os métodos da classe e os numerará. Depois disso, você pode fornecer um número listado para obter o retorno daquele método. Eu sempre começo com 3 porque esse é o método de inicialização.