微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Xposed 逆向工程应用

如何解决使用 Xposed 逆向工程应用

所以我正在开发一个应该适合多个应用程序的 Xposed 模块,该模块的目的是为不同的应用程序创建自动创建一组模块,我需要知道的是,有没有办法知道某个应用程序在运行时调用的所有方法,比如如果我可以制作一个 Xposed 模块,将所有被调用方法名称保存在一个数据库中,这将是一个很大的帮助,或者如果您有任何关于Xposed 模块的自动化请指出我的方向。最后,该应用程序的目的是向用户展示应用程序中每种方法的功耗,并显示哪些方法比其他方法使用更多的电量,这就是为什么我需要自动化该过程,以便我可以为不同的应用程序创建多个模块,而无需经过所有其他应用的代码

解决方法

你想做的事情理论上是可行的:

例如,您可以在运行时加载应用程序的 dex 文件并检查每个类和方法并挂钩它们。然而,这将有几个明显的缺点:

  1. 在应用程序中挂钩许多功能时,执行速度会显着减慢。 即使在高端设备上,用户也不会接受这一点。这也会增加关于应用无响应的 Android 错误消息,因为您的 Xposed 模块会降低它们的速度。

  2. 从我的角度来看,更糟糕的问题是速度变慢当然意味着 CPU 有更多的工作要做,因此最终您将大大缩短 Xposed 模块的电池寿命。 因此,最终您的电池使用监控应用程序使用 Xposed 模块管理的数据必须显示超过 50% 的电池被 Xposed 和您的模块消耗(只是一个原始估计,可能高达 80%)因为有大量的hook方法。

方法挂钩是一种只有在您只执行少数不经常执行的方法时才有效的技术。

或者,您可以在特殊的测试设备上使用它来评估某些东西(因此它不会在每天使用的常规设备上使用)。在这种环境下,电池使用量增加和应用运行速度减慢都不是问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。