xposed框架_定制Xposed框架

9619195fee0961d542a10bcf85c88522.png

本文为看雪论坛优秀文章

看雪论坛作者ID:世界美景

由于很多App开始针对XP做对应的检测如微信、支付宝、钉钉等,所以使用定制化的方式隐藏框架。 常见检测方法 1、由于Xposed的hook,是通过so修改被hook的方法为native来实现的,所以检测方也可以通过检测方法是否变成了native来达到检测的目的 Throwable.class.getDeclaredMethod(“getStackTrace” 是否Nativ方法。 2、StackTraceElement getClassName 检测是否存在 de.robv.android.xposed. com.android.internal.os.ZygoteInit com.saurik.substrate. getMethodName检测 handleHookedMethod main invoked。 3、检查XposedHelper的成员fieldCache,methodCache,constructorCache。 4、检查xposed的文件。 5、检查安装包。 6、检查/system/lib是否有xposed文件 /system/lib/libxposed_art.so  /system/lib64/libxposed_art.so。 7、检查/system/framework/XposedBridge.jar。 8、通过代码抛出一个异常,在堆栈中检查是否含有  de.robv.android.xposed.XposedBridge之类的 检查com.android.internal.os.ZygoteInit是否出现了两次。 9、检查环境变量CLSAAPATH=/system/framework/XposdedBridge.jar。 10、检查/proc/self/maps 通过读取shell命令/proc/pid(应用进程id)/maps 可以拿到当前上下文的so和jar列表,查找Xposed相关。 11、通过loadClass 检测 de.robv.android.xposed.XposedHelpers de.robv.android.xposed.XposedBridge。 几种隐藏方案 1、java层检测XP特征值 可以根据应用获取XP特质值的方法定制HOOK修改隐藏或者通用性HOOK代码解决 但只限于Java层so中读取Xp文件就无效了。 2、so层检测如果能逆向代码在java层中找到上传的方法,也可以HOOK形式隐藏,缺点每个APP都得找而且检测代码一变就得改,极其不灵活。 3、定制化XP框架,修改所有特征值也可以达到隐藏的目的。 定制Xp是最好的解决办法。网络有一些相关资料,但都没有干货或者不全,网上暴露出来的基本上只教了XposedInstall,XposedBridge的修改,在往下native层Xposdtools的修改资料几乎没有或者说跟没有差不多,所以有了这篇文章。 在开始之前你必须去按照这篇博客  点这里: https://www.jianshu.com/p/6471bab49cb1 这个也行: https://juejin.im/post/5be8dff2f265da61417118ed 先去编译Android源码之后编译下官方的Xp(坑很多。要配的环境非常多,要有足够的耐心。) 完成上一步后就可以开始进行对应的修改。

>>>>

1、XposedInstaller.apk

负责安装Xp环境,其实就是下载与手机cpu架构SDK对应的zip,然后刷入手机和管理模块。 环境:androidstudio,网络对应的资料都有我就随便写写。 包名:随便改一个 AS直接改就行。 名称:随便改一个。 24d9f7ef0c7d83a64fd51c5196851cb9.png

>>>>

2、XposedBridge-art.jar

给开发者提供对应的API支持,底层实现jni调用libxposed-art.so的native方法。 环境androidstudio网络也有资料,随便写写。 原始包名:de.robv.android.xposed,随便改一个。 原始名称:XposedBridge.jar,随便改一个。 99cef2c5f8fd7f6856ea64e3ba42a26c.png

>>>>

3、Xposed

给Xpbridge提供API支持和调用了很多android-art的方法以及最重要的替换android zygote(app_process)。 1868dc57a546506067c415a6ff501f7d.png 489693c3ad94b3f24195828282c793ef.png 4131941ac8e4240d58337d74ffe2e2b4.png

>>>>

4、Xposed-Tools

Xp框架的编译器,打包出可以刷机的zip。以下两个是打包脚本和刷机包脚本文件内容改成你对应的就好了,这点网上根本没有资料,全靠自己一个文件一个文件看巨坑。 如果有源码不准备刷机安装Xp单独改buid.pl就好了。 flash-script.sh不改刷机就会报错,缺少xpsoed.prop。 dd8df426dfafb49bac2603b0059955ca.png e4f08a50f75166b6600e4746a79a2671.png b232e25ad8c9bb256ee46f3bc4488809.png 思维导图: 3162f6c4936c3f818a423ae87d37b271.png

>>>>

5、编译与运行

把Xposed项目复制到Android源码/frameworks/base/cmds下。 在去下载与你编译的Android源码对应的xpsoed版ART进行替换。 xposedtools开始编译,静静等待就好了,我这里编译了Android5.1 Android 6.1 arm arm64 x86手机可用的刷机包。 f04d8c7f29dbc798e680d1da63a9103f.png 数据线连接手机把对应的刷机包push到手机里,adb reboot recovery 选择刷机包安装即可,手机重启收即可看到。 注意要使用定制版本的Xp项目里的jar包一定得是你定制后的其他不用动。 1e6907db8b236d123ebd081c52975ca7.png 1665953818d79e8754cfd6f2941347a0.png 总结 得亏在改之前认真复习了一遍zygote和Xposed框架的源码,由于网上资料过少经历了不少坑,很多都是自己摸索出来了,我觉得应该有不少人有这种需求所以写了这篇文章。 希望能够帮助到你,有什么问题可以论坛联系我。 e932a02cda3ce1731a5128fe637f35b1.gif c61b848834b87ea1c3bb0b9b4eca8518.gif - End - 5e5bb5588071b4feb6b19d3f81811c0b.png

看雪ID:世界美景

https://bbs.pediy.com/user-735880.htm 

*本文由看雪论坛  世界美景  原创,转载请注明来自看雪社区

推荐文章++++

bd680eff8b47cd693e9733277f6970f5.png

* 通过捕获段错误实现的自定义linker

* Xposed高级用法 实现Tinker热修复

* 连连看逆向

* 从“短信劫持马”的制作来谈App安全

* 入门级加固——3种加固方式学习记录

进阶安全圈,不得不读的一本书 9c05e83b1d2b576c564cac9e875a574e.png ﹀ ﹀ ﹀ 13277c88d698260a0d9288c9fde3a4b5.png 公众号ID:ikanxue 官方微博:看雪安全 商务合作:wsc@kanxue.com 3d80cb277e8007032f25c3844e1067d8.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Xposed是一个功能强大的框架,允许我们在Android系统中进行修改和增强功能。x86_64是指在64位x86处理器架构上运行的系统,而SDK23是指Android系统的第23个软件开发工具包版本。因此,xposed x86_64 sdk23是指适用于64位x86处理器架构上运行的,基于Android SDK23的Xposed框架Xposed框架的一个主要优势是可以在不修改系统的情况下对Android应用进行修改和增强。使用Xposed框架,我们可以通过安装模块来实现对特定应用的定制化,增强功能或添加额外的选项。这些模块可以修改应用的行为,包括更改UI元素、禁用或启用特定功能、修改应用程序的数据、拦截应用程序的请求等等。 x86_64指明了Xposed框架适用于64位x86处理器架构。在移动设备中,通常会使用ARM架构,而不是x86架构。然而,一些Android模拟器或特定的设备可能采用了x86架构。因此,如果我们的设备采用了64位x86处理器架构,我们就需要使用适用于x86_64的Xposed框架。 SDK23代表了Android系统的第23个软件开发工具包版本。每个SDK版本都包含一系列的API和功能,允许开发人员构建和优化应用程序。xposed x86_64 sdk23的组合表示这个Xposed框架适用于Android SDK23版本的系统,并且兼容64位x86处理器架构。 总而言之,xposed x86_64 sdk23是指适用于64位x86处理器架构上运行的,基于Android SDK23的Xposed框架。使用这个框架,我们可以在不修改系统的情况下对Android应用进行修改和增强。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值