拦截Android方法

拦截Android方法,android,Android,他们有没有办法截取任何现有的android方法,并将我们的实现改写成它 我发现了一些技术,比如iOS中的方法swizzling,它可以帮助我们在安卓系统中实现同样的功能 我们能不能有一种通用的技术来截获安卓手机上安装的所有应用程序的某个特定功能。 e、 g.我想截取我的android手机上所有android应用程序的onCreate方法。如果不分叉AOSP并更改操作系统,你就无法使用它。如果不分叉AOSP并更改操作系统,你就无法使用它 我想截取我的android手机上所有android应用程序的

他们有没有办法截取任何现有的android方法,并将我们的实现改写成它

我发现了一些技术,比如iOS中的方法swizzling,它可以帮助我们在安卓系统中实现同样的功能

我们能不能有一种通用的技术来截获安卓手机上安装的所有应用程序的某个特定功能。
e、 g.我想截取我的android手机上所有android应用程序的onCreate方法。

如果不分叉AOSP并更改操作系统,你就无法使用它。

如果不分叉AOSP并更改操作系统,你就无法使用它

我想截取我的android手机上所有android应用程序的onCreate方法

幸运的是,出于显而易见的安全原因,这是不可能的,除非你在你的手机上安装了根目录,并用一个添加了你想要的安全缺陷的JAR替换了Android框架

我想截取我的android手机上所有android应用程序的onCreate方法


幸运的是,出于显而易见的安全原因,这是不可能的,除非你在手机上安装根目录,并用一个添加了你想要的安全缺陷的JAR替换Android framework。如果你可以:

A) 修改Android本身的安装,更改运行时的行为

B) 在安装之前,修改您感兴趣的特定apk,用您的备选方案替换smali代码中的符号名称

对于那些涉及Binder IPC的调用(大多数感兴趣的事情都是这样,但可能不是在最容易解释它们的级别上,通常不是在跨版本可移植的级别上),另一种选择可能是通过在内核中使用修改过的Binder驱动程序,通过将/dev/Binder指向代理来拦截该流量,或者在C库open/ioctl/etc调用级别,在启动合子或修改C库时使用LD_预加载之类的方法

您也可以通过修改dalvik来做一些事情(不过要注意在安装时而不是运行时解析符号名的dex优化过程——所以可能在odexing期间进行替换)

另一种可能是在jdwp或本机级别调试应用程序,从而捕获感兴趣的内容

最后,可以在虚拟执行环境中运行应用程序,在该环境中,您有机会代理与实际托管Android系统的所有交互


从安全角度来看,所有这些方法要么需要常规Android安全模型的例外(root、系统安装能力或安全漏洞),要么需要用户的合作(在安装前修改apk,或者在虚拟环境中安装,而不是直接安装),要么需要应用程序开发人员的合作(保持调试标志打开,将拦截构建到您自己的应用程序中)

如果您可以:

A) 修改Android本身的安装,更改运行时的行为

B) 在安装之前,修改您感兴趣的特定apk,用您的备选方案替换smali代码中的符号名称

对于那些涉及Binder IPC的调用(大多数感兴趣的事情都是这样,但可能不是在最容易解释它们的级别上,通常不是在跨版本可移植的级别上),另一种选择可能是通过在内核中使用修改过的Binder驱动程序,通过将/dev/Binder指向代理来拦截该流量,或者在C库open/ioctl/etc调用级别,在启动合子或修改C库时使用LD_预加载之类的方法

您也可以通过修改dalvik来做一些事情(不过要注意在安装时而不是运行时解析符号名的dex优化过程——所以可能在odexing期间进行替换)

另一种可能是在jdwp或本机级别调试应用程序,从而捕获感兴趣的内容

最后,可以在虚拟执行环境中运行应用程序,在该环境中,您有机会代理与实际托管Android系统的所有交互


从安全角度来看,所有这些方法要么需要常规Android安全模型的例外(root、系统安装能力或安全漏洞),要么需要用户的合作(在安装前修改apk,或者在虚拟环境中安装,而不是直接安装),要么需要应用程序开发人员的合作(保持调试标志处于打开状态,将拦截构建到您自己的应用中)

这可以通过组合然后编写一个来实现。使用编写一个Android应用程序,然后在Xposed manager中将其作为模块启用


注意:显然,这需要一个根设备。它永远不允许在未根设备的手机上与其他应用程序和软件包在野外玩。

这可以通过组合,然后编写一个。使用编写一个Android应用程序,然后在Xposed manager中将其作为模块启用


注意:显然,这需要一个根设备。它永远不允许在未根设备的手机上与其他应用程序和软件包在野外玩。

这不是真的,尽管这是迄今为止最干净的方法。这不是真的,尽管这是迄今为止最干净的方法。有一种叫做“平台库",这是一个将我们的实现添加到代码中的条款,虽然这是一个安全漏洞,但公司确实将其用于自己的实现,也添加了自己的公司安全策略。现在,这是针对android的一些方法。onCreate是一种内部函数,一种用于活动的委托函数。我想拦截t方法。@NileshAgrawal:“有一种叫做“平台库”的东西——这是制作您自己的自定义设备或ROM模块的一部分。”