【发布时间】:2020-06-12 22:00:58
【问题描述】:
我目前在 Android 8.0 上使用 xposed 框架。如何找到要挂钩的应用程序的所有方法名称?例如,如果我添加一个新联系人,我想挂钩调用的方法。是否可以对 apk 进行逆向工程以将 logcat 输出插入到所有方法中,以显示调用了哪个方法?
【问题讨论】:
我目前在 Android 8.0 上使用 xposed 框架。如何找到要挂钩的应用程序的所有方法名称?例如,如果我添加一个新联系人,我想挂钩调用的方法。是否可以对 apk 进行逆向工程以将 logcat 输出插入到所有方法中,以显示调用了哪个方法?
【问题讨论】:
有多种方法可以识别相关方法。
第一个也是最重要的一点是了解official Android API。在某些时候,所有基于 Java/Kotlin 的应用程序都使用 API 中定义的类和方法。最重要的事实是,因为 Android API 属于 Android 而不是应用程序,所以它不能被混淆。
其次,您可以使用Jadx、apktool、Ghidra、JEB 等工具对应用程序本身进行逆向工程...只需确保您使用的工具不会重命名类名(例如,为了避免名称冲突或使混淆的类和方法名称更易读)或至少允许您始终向您显示原始类和方法名称。因为如果您使用由 APK 反转工具生成的名称,尝试通过其名称挂钩方法将失败。
frida-trace 也是一个非常有用的工具,可以识别很多正在运行的程序的内部。只要执行的应用程序没有反调试或反frida措施,您就可以随时将frida-trace附加到root设备上的应用程序并创建执行跟踪,您以后可以使用xposed或直接挂钩方法使用frida。
【讨论】: