添加 frida-gadget 到安卓应用(无须 root)

文章目录

  • 添加 frida-gadget 到安卓应用(无须 root)
    • 1.使用 apktool 解开对应的 apk
    • 2.将 frida-gadget.so 添加到对应 cpu 架构下面
    • 3.注入 frida-gadget 字节码到 app 中
    • 4.添加网络权限
    • 5.回编 apk
    • 6.重新签名 apk 和对齐
    • 7.重新安装 apk 到你的设备
    • 8.和 frida-gadget 交互

添加 frida-gadget 到安卓应用(无须 root)

1.使用 apktool 解开对应的 apk

apktool d myapp.apk -o extractedFolder

2.将 frida-gadget.so 添加到对应 cpu 架构下面

# 例如调试机型的 cpu 架构为 arm64-v8a,
# 那么需要在 extractedFolder 目录中添加 lib/arm64-v8a 目录

# 在 https://github.com/frida/frida/releases 下载对应 frida-gadget 包
# 这里下载 frida-gadget-15.1.14-android-arm64.so.xz 包
wget "https://github.com/frida/frida/releases/download/15.1.14/frida-gadget-15.1.14-android-arm64.so.xz"

# 解压缩
unxz frida-gadget-15.1.14-android-arm64.so.xz

# 将解压缩后的 so 库文件添加到上面添加的 lib/arm64-v8a 目录中
cp frida-gadget-15.1.14-android-arm64.so lib

3.注入 frida-gadget 字节码到 app 中

随便找一个 app 在启动时会加载的类,这里使用 MainActivity。extractedFoloder 中的对应 smail 文件,插入如下代码:

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

4.添加网络权限

在 AndroidManifest.xml 中添加如下权限配置

<uses-permission android:name="android.permission.INTERNET" />

5.回编 apk

apktool b -o repackaged.apk extractedFolder

6.重新签名 apk 和对齐

# 如果你没有 keystore,可以通过如下命令来创建一个
keytool -genkey -v -keystore custom.keystore -alias mykeyaliasname -keyalg RSA -keysize 2048 -validity 10000

# 签名 apk
jarsigner -sigalg SHA1withRSA -digestalg SHA1 -keystore custom.keystore -storepass mystorepass repackaged.apk mykeyaliasname

# 校验你创建的 apk
jarsigner -verify repackaged.apk

# 对齐 apk
zipalign 4 repackaged.apk repackaged-final.apk

7.重新安装 apk 到你的设备

# 可以通过 adb 执行安装
adb install repackaged-final.apk

8.和 frida-gadget 交互

$ frida-ps -U Gadget

你可能感兴趣的:(frida,android,android,java,frida)