使用 Frida¶
FIRERPA 内置了最新版本的 Frida,这样您无需自行开启 frida-server。我们内置的 Frida 已经具备各种开源的隐藏补丁以及我们自己额外添加的各种隐藏功能,您无需担心 Frida 被检测的问题。如果我们内置的 Frida 被检测到,那么代表您能下载到的大部分 frida-server 都逃不过被检测的命运。
注意
自 9.0 版本开始,内置的 Frida 17.x 需要您自行将 frida-java-bridge 打包进脚本,否则会出现 Java not defined 相关错误,这项改动属于 Frida 官方的变更。依据官方的改动说明,您需要新建 Node.js 项目并引入 frida-java-bridge,详细请参考:https://github.com/oleavr/frida-agent-example ,或者使用我们提供的 frida_script_generate.py 对 js 脚本进行打包。
通过代码使用¶
通过 d.frida 即可获取一个已连接到 frida-server 的实例,不必自行使用 frida 库构造连接。
conn = d.frida
conn.enumerate_processes()
当然,如果您想了解它的底层实现,您也可以参考如下代码。
# 获取动态 token
token = d._get_session_token()
manager = frida.get_device_manager()
conn = manager.add_remote_device("192.168.0.2:65000", token=token)
conn.enumerate_processes()
通过命令使用¶
如果您需要使用 frida 命令行,强烈建议您通过 远程桌面 使用 frida、frida-trace、frida-ps 等相关命令,因为在这个环境下,您无需做任何操作,只需执行 frida 即可,无需提供任何其他连接参数,如 -U、-H 等,内置环境已经默认做好一切。

如果您阅读到了这里,说明您仍希望在电脑端使用该命令。现在,您需要根据服务安装/运行情况整理一些必要信息。如果您使用了服务证书,您需要准备好该证书文件,同时还需要准备好目标设备的 IP 地址和 FIRERPA 服务端口(默认 65000)。注意,这个端口不是 Frida 的 27042 端口。
其次,您需要先使用 API 获取当前 token,该 token 为固定 16 位字符串,如 czvpyqg82dk0xrnj。我们知道这种方式可能有些麻烦,但您的设备安全更重要。
token = d._get_session_token()
print(token)
现在,您从上面的接口得到了一个 token,我们假设它是 czvpyqg82dk0xrnj,接下来开始编写 Frida 命令。对于所有 Frida 官方命令行工具,默认只需加上参数 -H 192.168.0.2:65000 以及 --token xxxxxxxxxxxxxxxx 即可,例如下面这样。
frida -H 192.168.0.2:65000 -f com.android.settings --token xxxxxxxxxxxxxxxx
如果您的 FIRERPA 服务端启动时还使用了服务证书,命令里还要加上 --certificate 参数。
frida -H 192.168.0.2:65000 -f com.android.settings --certificate /path/to/lamda.pem --token xxxxxxxxxxxxxxxx
您可能已经发现,区别主要有以下几点:-U 变为了 -H(因为我们通过网络连接而非 USB),增加了 --token 参数;如果服务端启用了服务证书,那么还多一个 --certificate 参数,这是为了确保您设备的安全性,不会被未授权的人访问。
通过命令使用(objection)¶
对于其他工具(如 objection),通常也会有上述参数提供,但大部分非官方工具并未完整添加这些参数。目前我们仅对 objection 进行了补丁,不会影响原有使用,但由于 objection 已长期未更新,因此未向上游推送。您可以自行下载我们提供的 objection-1.11.0-command-patch.diff,并将此补丁应用到您已安装的 objection 代码目录(可通过 pip3 show objection 命令获知安装路径)。
此后,您可以通过如下的方式来使用,可以看到仅仅是多了一个 --token 参数。
objection -N -h 192.168.0.2 -p 65000 --token xxxxxxxxxxxxxxxx explore
或者,如果服务端启动时使用了服务证书,命令里也要同样加上 --certificate。
objection -N -h 192.168.0.2 -p 65000 --certificate /path/to/lamda.pem --token xxxxxxxxxxxxxxxx explore
暴露应用接口¶
本段落已迁移到 Frida 导出接口 章节。