首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >拦截Android方法

拦截Android方法
EN

Stack Overflow用户
提问于 2013-06-06 04:31:38
回答 4查看 1.4K关注 0票数 0

他们有没有办法拦截android的任何现有方法,并重写我们的实现?

我发现了一些技术,比如在iOS中的方法swizzling,它可以帮助我们在android中做同样的事情。

我们是否可以有通用的技术来拦截安装在android手机上的所有应用程序的特定功能。例如,我想拦截我的安卓手机上所有安卓应用程序的onCreate方法。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-06 04:39:11

如果您可以执行以下任一操作,则最容易完成此操作:

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

B)在安装之前修改特定的apk,将smali代码中的符号名称替换为您的替代名称。

对于那些涉及绑定器IPC的调用(大多数感兴趣的事情都是这样做的,但可能不是在它们最容易解释的级别,而且通常不是在被认为可跨版本移植的级别),另一种选择可能是截获该流量,要么在内核中使用修改后的绑定器驱动程序,通过将/dev/binder指向代理,要么在C库打开/ioctl/etc调用的级别上使用启动zygote或以其他方式修改C库时使用LD_PRELOAD之类的东西。

你也可以通过修改dalvik来做一些事情(但是要注意dex优化过程在安装时而不是运行时解析符号名-所以可能会在odexing过程中进行替换)。

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

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

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

票数 1
EN

Stack Overflow用户

发布于 2013-06-06 04:38:44

我想拦截我的安卓手机上所有安卓应用程序的onCreate方法。

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

票数 2
EN

Stack Overflow用户

发布于 2013-06-06 04:37:19

如果不派生AOSP并更改操作系统,您就不能这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16949298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档