运行 Frida 在没有客户端的情况下挂钩 system_server

Run Frida hooks on system_server without a client

我正在使用 Frida,我想挂接一个 system_server 方法,但我的计算机上没有 Frida 客户端 运行。我希望整个东西都在设备上。我将不得不在一天的工作中收集数据(可能也没有任何网络连接)。我知道 frida-gadget 但 frida-gadget 在 /data/app/<APP_NAME>/lib 下查找其配置文件,而 system_server 没有这样的(可写)目录。有什么解决方法吗?我当然也会考虑非 frida 解决方案。

https://github.com/frida/frida/releases 下载 frida-inject,在设备上推送 & chmod

./frida-inject -p `pidof system_server` -s /data/local/tmp/script.js --runtime=v8

其他 CLI 选项@https://github.com/frida/frida-core/blob/master/inject/inject.vala#L12

编辑:

对于小工具,您需要用 frida-gadget.so 重新打包(& 签名)apk 并以某种方式将小工具加载到内存中。

我使用的方法是找到 welcome-activity 的 c'tor 并插入使用 java.lang.System.loadLibrary 加载 sosmali 代码。

这就是我找到 activity

的方法
$ aapt dump badging $APK | grep "launchable-activity:" | grep -Po "(?<=name=').*?(?=')"

aapt 是 android sdk

的一部分

您将需要增加局部变量.. 并处理它是否是静态 c'tor(或不是),但主要是 smali

  const-string v0, "frida-gadget"
  invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V