frida-trace
frida-trace is a tool for dynamically tracing function calls. 链接 (opens new window). frida 命令记录
frida-trace -hfrida-trace -U -i "Java_*" <package>trace JNI 方法
# -j
基本语法frida-trace 的
-j参数用于指定要跟踪的 Java 方法。你可以使用通配符来匹配类名和方法名,从而实现灵活的跟踪规则。以下是一些常见的规则示例:
frida-trace -U -j "<class name>.<method name>"
1
# 示例
- 跟踪特定类的特定方法
跟踪 com.example.myapp.MainActivity 类的 onPause 方法:
frida-trace -U -j "com.example.myapp.MainActivity.onPause"
1
- 跟踪特定类的所有方法
跟踪 com.example.myapp.MainActivity 类的所有方法:
frida-trace -U -j "com.example.myapp.MainActivity.*"
1
- 跟踪包中的所有类的特定方法
跟踪 com.example.myapp 包中的所有类的 onPause 方法:
frida-trace -U -j "com.example.myapp.*.onPause"
1
- 跟踪包中的所有类的所有方法
跟踪 com.example.myapp 包中的所有类的所有方法:
frida-trace -U -j "com.example.myapp.*.*"
1
- 跟踪带有特定参数的方法
跟踪 com.example.myapp.MainActivity 类中,带有 int 类型参数的 setUser 方法:
frida-trace -U -j "com.example.myapp.MainActivity.setUser(int)"
1
- 跟踪带有多个参数的方法
跟踪 com.example.myapp.MainActivity 类中,带有 String 和 int 类型参数的 updateUser 方法:
frida-trace -U -j "com.example.myapp.MainActivity.updateUser(java.lang.String, int)"
1
# 组合示例
使用多个 -j 参数来跟踪多个方法,例如跟踪 onPause 和 onResume 方法:
frida-trace -U -j "com.example.myapp.MainActivity.onPause" -j "com.example.myapp.MainActivity.onResume"
1
跟踪所有 Fragment 的 onPause 和 onResume 方法 假设你的 Fragment 类都在 com.example.myapp.fragments 包下:
frida-trace -U -j "com.example.myapp.fragments.*.onPause" -j "com.example.myapp.fragments.*.onResume"
```
示例命令
```bash
frida-trace -U -j "com.example.myapp.MainActivity.onPause" -j "com.example.myapp.MainActivity.onResume" -f com.example.myapp
```
这条命令将会附加到 com.example.myapp 应用,跟踪 com.example.myapp.MainActivity 类中的 onPause 和 onResume 方法
## `!` 与 `.`
> 使用 `!` 符号可以更简洁地指定要跟踪的方法,提高规则的可读性和简洁性
- `-j 'com.example.myapp.MainActivity!*'`: 使用 `!` 符号表示跟踪指定类中的所有方法,包括私有方法和继承自父类的方法
- `-j 'com.example.myapp.MainActivity.*'`: 使用 `.` 符号表示跟踪指定类中的所有方法,但不一定包括私有方法和继承的方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
上次更新: 2025/10/08, 16:24:59