使用内置 Frida

FIRERPA 内置了最新版本的 Frida,这样您无需自行开启 frida-server。我们内置的 Frida 已经具备各种开源的隐藏补丁以及我们自己额外添加的各种隐藏功能,所以您无需担心 Frida 被检测的问题。如果我们内置的 Frida 被检测到,那么代表您能下载到的几乎所有 frida-server 都逃不过被检测的命运。所以请放心使用,您不必关心这些杂七杂八的事情。

提示

FIRERPA 自 7.18 版本开始,内置 FRIDA 需要提供 token 参数才可连接,当然客户端库已经为您处理好了一切,如果您使用的是 7.18 之前的版本,请查看旧版本的文档了解使用方法。

通过代码使用

使用 FIRERPA 客户端 API,您只需要直接像下面这样,使用 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 命令都会有一个 -U 参数,我们这里没有, 所以如果您连接不上,确保您的命令严格按照样例使用。

在开始之前,我们先提一下,非常建议您通过远程桌面使用 fridafrida-itracefrida-tracefrida-ps 等相关命令,因为在这个环境下,您无需做任何操作,您只要执行 frida 即可,无需提供任何其他的连接参数入 -U-H 等。

Frida

既然您已经看到下面了,那就代表您仍然想在电脑端使用该命令,现在,您需要根据安装情况整理一些信息, 如果您的 FIRERPA 启动时使用了加密证书,您需要准备好该文件,还有,您需要准备好需要连接的设备的 IP 地址和 FIRERPA 服务端口(默认 65000),注意,这个端口不是 Frida 的 27042 端口,是 FIRERPA 服务的端口,您只需要连接到 FIRERPA 即可。

首先,您需要先使用 API 获取当前 token,该 token 为固定 16 位字符串,如 czvpyqg82dk0xrnj,我们了解这个方式可能比较麻烦,后期可能会做一些易用性的改变,这也是为什么我们上面建议您在远程桌面中使用 frida 相关命令的原因。

token = d._get_session_token()
print (token)

现在,您从上面的接口得到了一个 token,我们假设他是 czvpyqg82dk0xrnj,现在我们开始编写 frida 命令。 对于所有 frida 官方命令行工具,默认只需加上参数 -H 192.168.0.2:65000 以及 --token xxxxxxxxxxxxxxxx 即可,例如下面这样,特别特别特别注意这里没有 -U 参数哟。

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 导出接口 章节。