【关于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+问题
相关推荐
其中,核心库(如`xposedlib`)是框架的基础,包含与Android系统交互的关键类;接口层定义了模块开发的API,使得开发者可以轻松地编写自定义模块;安装器负责在设备上安装和管理框架及模块;模块管理器则负责动态...
通过逍遥模拟器安装xpose框架(有脚本可以一件安装),实现hook功能
xpose安卓手机框架
1. **Xpose框架安装**:首先,用户需要在模拟器上获取root权限,这是Xpose运行的基础。然后,将Xpose框架的apk文件安装到模拟器上,并通过特定的引导程序启动它。这个过程中可能会遇到权限问题或系统兼容性问题,...
能在线下载的XPosed框架,支持安卓8以下,ROOT后可一键在线安装。支持雷电模拟器、夜神模拟器、逍遥模拟器、部分云手机以及系统支持的手机。Xposed鸭是一款基于Xposed Installer的修改版软件,他弥补了原版XPosed...
Xposed框架是一款强大的Android系统修改工具,它允许用户在不修改APK的情况下影响应用程序或系统的行为。这个离线安装文件包含Xposed框架的多个版本以及一个名为JustTrustMe的APK,这暗示了我们可能涉及的主要知识点...
Xposed框架是一款在Android系统上广泛使用的开源框架,它允许用户通过安装各种模块来修改系统的功能,无需对系统进行根权限操作。XposedAPI54指的是该框架在Android API级别54(即Android 5.1.1)时对应的接口库,...
Xposed框架是一款强大的Android系统修改工具,它允许用户通过安装各种模块来定制和优化系统功能。标题中的"全版本卸载包"意味着这个压缩包包含了适用于不同Android版本的Xposed框架卸载程序,旨在帮助用户在遇到问题...
在这个框架的基础上,可以开发出很多好玩的应用程序,比如自动抢红包、防止消息撤回、朋友圈防删除、修改运动步数、自动点赞朋友圈等。 首先,让我们来看看自动抢红包功能。当有红包出现时,XPosed框架会自动触发...
virtualxposed,免root的xposed框架,更加方便更加便利,详情访问github
编写为学习 Xposed 框架的示例应用程序。 XposeMe是一个EXTREMELY基本(按5分钟编写)的应用程序,包含三个GUI元素:“更改文本”按钮,“重置文本”按钮和“更改文本”文本视图。 单击“更改它!” 按钮(通常)将...
Xposed-派大星-支持国内下载
. 亲测可用,支持雷电和逍遥模拟器 7.1.2 系统2. 支持 x86 版本模拟器3. Xposed 安装教程:...
总的来说,这个“Xposed.zip”压缩包提供了一个基本的Android 10环境下Xposed监听模型,对于学习Xposed框架和开发自定义模块的开发者来说,是一个不错的起点。通过深入研究和实践,你可以更深入地了解Android系统,...
而使用Xposed框架对360加固保进行Hook,可以让开发者在不破坏加固的基础上,实现特定的扩展功能,如获取应用内部数据、监控应用行为等。这需要开发者具备一定的Android底层知识,了解Java反射和JNI技术。 4. Hook...
Xpose客户端 欢迎使用xpose社交照片新闻应用程序。 储存库 服务器回购: : 客户端回购: : 实时链接: : 概括 作为摄影和摄影爱好者,xpose可以用同样的心态来满足用户的需求。 xpose是新闻摄影的平台,可将...
用于系统框架。搞好了可以改颜色什么的。。。还可以吧我还在用
《Xpose-开源:探索非线性药代动力学与药效学模型的利器》 在医药研发领域,理解和分析药物在体内的吸收、分布、代谢和排泄(ADME)过程至关重要。为了进行这样的研究,科学家们通常采用NONMEM(Nonlinear Mixed-...
原理 原理就是去hook libart.so里面的art::DexFile::OpenMemory,然后再把内存中的dex写到文件中去。就是这么简单,最主要的就是hook的时机,大部分的壳都是在attachBaseContext这个方法里面去完成代码的解密。...