Android逆向之旅---Android中的sharedUserId属性详解

关于这个方法其实很简单,他有两个参数:

第一个参数:需要构造出来Context的包名字符串

第二个参数:构造出来的Context的开启模式

下面我们可以直接使用一个例子来看看效果:

首先我们弄一个插件工程:ShareUserIdPlugin

这个工程很简单,我们编译安装运行即可。

在弄一个宿主工程:ShareUserIdHost

这里有一个核心方法,我们首先通过插件工程的包名:cn.wjdiankong.shareuseridplugin;创建出一个Context对象。

这里看到第二参数有两个模式:

Context.CONTEXT_INCLUDE_CODE:这个标志是在我们需要执行插件中的某段代码需要加上的值。

CONTEXT_IGNORE_SECURITY:这个标志是必须的,是忽视安全性,如果没有这个值的话,那么我们访问什么都是失败的。

得到了Context变量之后,我们下面就可以通过反射来执行代码和获取资源了,这里需要注意的是,一定要先拿到Context对应的ClassLoader,然后才能加载对应的类,ClassLoader一定是Context的,是插件工程中的类加载器。

下面我们运行结果看看:

运行成功了啦~~是不是很简单呢。

下面如果我们把CONTEXT_INCLUDE_CODE去掉,在运行:

发现报错了,找不到指定的类。所以如果想运行代码的话,这个值一定要加上。

我们再把CONTEXT_IGNORE_SECURITY去掉,运行结果:

看到了,爆出了安全错误,所以要想构造成功Context出来,必须要加上这个值。

三、步入正题

===================================================================

好了,到这里我们就介绍了如何通过包名构造一个Context变量出来,然后执行对应的代码和获取资源。那么这个我们看到工程中貌似没有用到shareU

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值