一套用于简化与Frida配合使用的脚本,旨在帮助找到正确的函数进行挂钩并修改它。
对于这两个脚本,我假设你已通过 USB 连接了一个设备,或在同一台机器上运行了模拟器。
在你的机器上安装 Frida,并确保你在 Android 设备/模拟器上运行了 Frida 服务。
你可能有一个 apk 文件,并且想知道哪些活动会运行以及它们的顺序。在这种情况下,你可以使用 activity_tracer.js:
frida -U -f com.pkg.xxx.yyy -l activity_tracer.js --no-pause
如果你想列出某个类的所有方法,并想知道方法的返回值,可以使用 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)
# 如果你不提供方法编号,脚本将使用"3"作为方法编号,因为那是"init"方法
python3 hooketh.py -c java.lang.String -p com.name1.name2.demo
# 让 MainActivity 中的方法 10 返回 true
python3 hooketh.py -c com.name1.name2.demo.MainActivity -p com.name1.name2.demo -n 10 -t true
注意:一旦你向 hooketh.py 脚本提供了一个类名和一个编号,它就会列出该类的所有方法并为其编号。之后,你可以提供一个列出的编号来获取该方法的返回值。我总是从 3 开始,因为那是初始化方法。