查找 xposed 钩子的方法

Find methods for xposed hooks

我目前正在 Android 8.0 上使用 xposed 框架。如何找到要挂钩的应用程序的所有方法名称?例如,我想挂钩添加新联系人时调用的方法。是否可以对 apk 进行逆向工程以将 logcat 输出插入所有方法,以显示调用了哪个方法?

有多种方法可以识别相关方法。

第一个也是最重要的一个是 official Android API 的知识。所有基于 Java/Kotlin 的应用程序在某些时候都使用 API 中定义的 classes 和方法。最重要的事实是,由于 Android API 属于 Android 而不是应用程序,因此无法对其进行混淆。

其次,您可以使用 Jadx, apktool、Ghidra、JEB 等工具对应用程序本身进行逆向工程...只需确保您使用的工具不会重命名 class 名称(例如,避免名称冲突或使混淆的 class 和方法名称更易读)或至少允许您始终向您显示原始 class 和方法名称。因为如果您使用由 APK 逆向工具生成的名称,则尝试通过名称挂钩方法将失败。

另外一个非常有用的工具是 frida-trace,它可以识别 运行 程序的很多内部信息。只要执行的应用程序没有反调试或反 frida 措施,您就可以附加 frida-trace at any time to an app on a rooted device and create execution traces you can later use to hook the methods using xposed or directly using frida