使用 Xposed 逆向工程应用程序
Reverse engineering Apps using Xposed
所以我正在研究一个应该适合多个应用程序的 Xposed 模块,该模块的目的是为不同的应用程序自动创建一组模块,我需要知道的是,是否有了解特定应用程序在其运行时调用的所有方法的方法,例如如果我可以制作一个 Xposed 模块,将所有被调用方法的名称保存在数据库中,这将是一个很大的帮助或者如果你有什么想法关于 Xposed 模块的自动化,请指出我的方向。最后,该应用程序的目的是向用户展示应用程序中每种方法的功耗,并显示哪种方法比其他方法使用更多的能量,这就是为什么我需要自动化该过程,这样我就可以为不同的应用程序创建多个模块,而无需经历所有其他应用程序的代码。
你想做的事情理论上是可行的:
例如,您可以在 运行 时加载应用程序的 dex 文件并检查每个 class 和方法并挂接它们。然而,这将有几个明显的缺点:
在应用程序中挂钩许多功能时,执行速度会显着降低。
即使在高端设备上,用户也不会接受这一点。这也会增加 Android 有关应用程序无响应的错误消息,因为你的 Xposed 模块会减慢它们的速度。
从我的角度来看,更糟糕的问题是减速当然意味着 CPU 有更多的工作要做,所以最终你会大大减少电池电量生活由你的 Xposed 模块。
因此,最终使用 Xposed 模块管理的数据的电池使用监控应用程序必须显示 Xposed 和您的模块消耗了超过 50% 的电池(只是粗略估计,可能高达 80%)因为有大量的钩子方法。
方法挂钩是一种只有在您只执行一些不经常执行的方法时才有效的技术。
或者,您可以在特殊测试设备上使用它来评估某些东西(因此它不会在每天使用的常规设备上使用)。在这种环境下,增加电池使用量和降低应用程序速度并不是什么大问题。
所以我正在研究一个应该适合多个应用程序的 Xposed 模块,该模块的目的是为不同的应用程序自动创建一组模块,我需要知道的是,是否有了解特定应用程序在其运行时调用的所有方法的方法,例如如果我可以制作一个 Xposed 模块,将所有被调用方法的名称保存在数据库中,这将是一个很大的帮助或者如果你有什么想法关于 Xposed 模块的自动化,请指出我的方向。最后,该应用程序的目的是向用户展示应用程序中每种方法的功耗,并显示哪种方法比其他方法使用更多的能量,这就是为什么我需要自动化该过程,这样我就可以为不同的应用程序创建多个模块,而无需经历所有其他应用程序的代码。
你想做的事情理论上是可行的:
例如,您可以在 运行 时加载应用程序的 dex 文件并检查每个 class 和方法并挂接它们。然而,这将有几个明显的缺点:
在应用程序中挂钩许多功能时,执行速度会显着降低。 即使在高端设备上,用户也不会接受这一点。这也会增加 Android 有关应用程序无响应的错误消息,因为你的 Xposed 模块会减慢它们的速度。
从我的角度来看,更糟糕的问题是减速当然意味着 CPU 有更多的工作要做,所以最终你会大大减少电池电量生活由你的 Xposed 模块。 因此,最终使用 Xposed 模块管理的数据的电池使用监控应用程序必须显示 Xposed 和您的模块消耗了超过 50% 的电池(只是粗略估计,可能高达 80%)因为有大量的钩子方法。
方法挂钩是一种只有在您只执行一些不经常执行的方法时才有效的技术。
或者,您可以在特殊测试设备上使用它来评估某些东西(因此它不会在每天使用的常规设备上使用)。在这种环境下,增加电池使用量和降低应用程序速度并不是什么大问题。