【关于Xpose】:
第一次接触到Xpose是在网络安全的课上,老师提出的期末考核,当时听到Xpose一脸懵逼,常年做Android竟然不知道这个,而且时间很仓促,只有2个星期准备,同时这两个星期包括了一个星期的考试周。做这样的系统首先要会JAVA,其次要对Android开发的流程比较熟悉,这样的挑战对我来说都是难度比较大的,更不要说是初次接触的同学们了,所以这里将自己初步学习过程记录下来,让同学们少走弯路,以最快的时间最高的效率初步搭建好自己包含Xpose框架的app。
=====================================================================================
【关于eclipse及初次安卓开发】:
建议大家直接去看我的分类博客“Android初步”,运行出自己第一个“Hello world”app就算成功,博客里面写文顺序是按照我学习的过程按时间顺序推进的,当年囫囵吞枣学了一遍,后来觉得基础没打好,于是有重新过了一遍基础,大三,大四基本上课就是在搞这个,自己写代码,运行,找bug没有问题以后写博客,其中也碰到了很多新手遇到的问题,所以大家可以相互借鉴
===================================================================================
言归正传
关于Xpose框架,框架对于我们Android开发人员来说,远远没有字面上意思来的“高大上”,简单粗暴的解决方式就是在网上下一个“.jar”然后在project里面丢到lib里面,对就是库,咱缺少那个库,下载下来丢进去,然后我们就可用用里面各种API接口了,省事方便。我觉得我大部分时候使用框架是因为自己"懒"。不过想起当年在“蓝杰”让我们手动实现队列的那个时光,自己实现才是真正了解原理的最佳途径,不过鉴于时间紧张,我们就简单粗暴的站在巨人的肩膀上编代码。
搭建:
新建一个Project,名字你随便,记得最好英文
然后:去网上找框架,就是我们丢到lib里面的东东。
【注意!】一定是lib而不是libs。lib自己新建一个文件夹
如果直接将jar包放置到了libs目录下,很可能会产生错 误“IllegalAccessError: Class ref in
pre-verified class resolved to unexpected
implementation”。
估计Xposed作者在其框架内部也引用了BridgeApi,这样操作避免重复引用。
ee就是死在了这个上面然后上网找大牛的代码去看,看到“北漂周”周圣韬大神这句话,顿时觉得十分惭愧不愧是做安全方面的人,作为我们后湖出身的业界楷模,大家注意这里
就是这个XposedBridgeApi-54就是这个啦。当然啦看了我的文章的人有福利,我会把我这个框架传上来。
下载下来以后直接拖到lib里面,然后再buid path一下+add to path,为什么要这样呢,因为是为了
这两个地方也会出现我们框架的身影,有人问那为什么那么麻烦呢,我直接拖进去,粘贴进去不就得了。答:“欢迎强迫症的孩子一个一个去拖”。
这就是ctr+A+C 和ctr+C(N次)的区别。别问我为什么知道,以前我也傻也是一个个拖进去的。
【配置】:
需要在Androidmanifest配置如下
<meta-data android:name="xposedmodule" android:value="true" /> <meta-data android:name="xposeddescription" android:value="Easy example which makes the status bar clock red and adds a smiley" /> <meta-data android:name="xposedminversion" android:value="30" />
这个是要加的代码:具体加在哪里呢:
看整体
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <meta-data android:name="xposedmodule" android:value="true" /> <meta-data android:name="xposeddescription" android:value="Easy example which makes the status bar clock red and adds a smiley" /> <meta-data android:name="xposedminversion" android:value="30" /> <activity android:name="com.example.xposehook.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
看到这里的同学最好不要问我AndroidManifest在哪里
在你的眼皮子底下,不在任何包里
【代码】:
src使我们放代码的地方
其中:
MainActivity是自动生成的。第二个是我们用Xpose功能的地方。这里简单调用xpose框架来动态监测我们的app是否包含这个包名:
import de.robv.android.xposed.IXposedHookLoadPackage; import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.XC_MethodHook.MethodHookParam; import de.robv.android.xposed.XposedBridge; import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam; public class Main implements IXposedHookLoadPackage{ @Override public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable { // TODO Auto-generated method stub if(!lpparam.packageName.equals("com.monkey.myxpose")){ return; } XposedHelpers.findAndHookMethod("com.monkey.getcoin.MainActivity", lpparam.classLoader, "getCoin",new XC_MethodHook() { protected void beforeHookedMethod(MethodHookParam param) throws Throwable { // TODO Auto-generated method stub //super.beforeHookedMethod(param); param.setResult(99999); XposedBridge.log("Loaded app: " + lpparam.packageName); } }); } }
【非常重要】:上次忘记讲了,非常抱歉,我们做好这个模块以后,需要一个初始化申明,声明加载这个Android包里xposehook所在的class。
在asset包里新建xposed_init txt文本,注意名字一定是固定的就是上图那个不能随便改。
然后里面写入你的hook函数所在的class:
如下:
com.example.xposeee.Attacker
我们可以看到头文件中Import导入了不少Xpose框架里面的东东,到这里说明你的包都导入成功了,能用了。
到现在一个初步的Android搭建好Xpose框架的app已经实现
虚拟机运行或者真机运行:
我们的app图标,图片字都可以换,这里就不教大家做个性化app了,毕竟“交差”要紧
没做界面,现在基本框架搭建好,下一节课直接讲xpose是拿来干什么的,之所以刚开始不讲是因为希望大家搭好框架心里不慌,慢慢看原理,好吧其实真实原因是:“我也还不懂”
一起学习进步吧
下面我已经将XposedBridgeApi-54.zip 导入进来,大家自行下载解压。
如果有任何的问题:
请联系我
QQ邮箱:429899791@qq.com
加人请说明:iteye+问题
相关推荐
XPOse框架源码..基本内容都是全的 可以看下SO和HOOK模块工作原理
xpose安卓手机框架
能在线下载的XPosed框架,支持安卓8以下,ROOT后可一键在线安装。支持雷电模拟器、夜神模拟器、逍遥模拟器、部分云手机以及系统支持的手机。Xposed鸭是一款基于Xposed Installer的修改版软件,他弥补了原版XPosed...
适用于安卓模拟器的xpose版本
在这个框架的基础上,可以开发出很多好玩的应用程序,比如自动抢红包、防止消息撤回、朋友圈防删除、修改运动步数、自动点赞朋友圈等。 首先,让我们来看看自动抢红包功能。当有红包出现时,XPosed框架会自动触发...
virtualxposed,免root的xposed框架,更加方便更加便利,详情访问github
编写为学习 Xposed 框架的示例应用程序。 XposeMe是一个EXTREMELY基本(按5分钟编写)的应用程序,包含三个GUI元素:“更改文本”按钮,“重置文本”按钮和“更改文本”文本视图。 单击“更改它!” 按钮(通常)将...
xposed3.15版本安装包+xposed89版离线安装框架文件+JustTrustMe.apk
Xposed-派大星-支持国内下载
Xpose客户端 欢迎使用xpose社交照片新闻应用程序。 储存库 服务器回购: : 客户端回购: : 实时链接: : 概括 作为摄影和摄影爱好者,xpose可以用同样的心态来满足用户的需求。 xpose是新闻摄影的平台,可将...
用于系统框架。搞好了可以改颜色什么的。。。还可以吧我还在用
刷xposed卡米,解决办法 1.重启手机按住电源+音量加进入rec 2.解压出来选择对应版本放在根目录 3.重启手机到rec安装对应版本的卸载包,自动重启 4.等待几分钟你的手机就可以正常开机了
原理 原理就是去hook libart.so里面的art::DexFile::OpenMemory,然后再把内存中的dex写到文件中去。就是这么简单,最主要的就是hook的时机,大部分的壳都是在attachBaseContext这个方法里面去完成代码的解密。...
2017.12.29日:包含XposedBridgeApi-54.jar,4.0.3-4.4的apk文件和5.0及以上的apk文件
Xpose-用于NONMEM的基于S / R的总体PK / PD模型构建辅助工具。
要让手机上的xposed框架知道,我们编写的xposed模块中,哪一个方法是实现hook操作的,也就是hook类的入口。 那么对应这四点,我们要做的是如下四步骤: 修改AndroidManifest.xml XposedBridgeApi-xx.jar与build....
这是一个最为简单的Xposed监听模型,主要是搭建好相应的Xposed框架,进行简单的监听。模型当中需要的文件已经齐全,所需要的SDK为Android10。
1.3.8.1版360加固保Xposed插件编写教程,1.3.8.1版是2018/04/02发布的
JustTrustMe是Github上的一个开源工程,他是一个Xposed模块,用来禁止SSL证书验证。以下是其简介。 JustTrustMe:An xposed module that disables SSL certificate checking. This is useful for auditing an ...