首页
社区
课程
招聘
[原创]Xpatch---免Root实现App加载Xposed插件的一种方案
发表于: 2019-3-30 23:26 19391

[原创]Xpatch---免Root实现App加载Xposed插件的一种方案

2019-3-30 23:26
19391

Github: https://github.com/WindySha/Xpatch

Xpatch的原理是对Apk文件进行二次打包,重新签名,并生成一个新的可加载Xposed插件的Apk。

在Apk二次打包过程中,插入加载Xposed插件的逻辑,这样,新的Apk文件就可以加载任意Xposed插件,从而实现App免Root使用Xposed插件进行Hook。

Xposed Hook底层暂时使用的lody的whale方案。
支持Android 5.0 ~ 9.0。

在github release界面下载jar包,命令行中执行如下命令即可:

这条命令之后,在原Apk文件(src.apk)相同的文件夹中,会生成一个名称为src-xposed-signed.apk的新apk,这就是重新签名之后的支持xposed插件的apk。卸载了Android系统里的原apk,安装新apk即可。

当然,也可以指定新Apk生成的路径,加上-o参数即可:

对Xpatch感兴趣的可以加QQ群参与讨论:
QQ: 977513757

2019.4.20 updated
Xpatch v1.2版本发布, 支持自动破解app签名校验


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2019-5-3 11:19 被WindStormy编辑 ,原因: updated
收藏
免费 3
支持
分享
最新回复 (32)
雪    币: 1266
活跃值: (1307)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
支持楼主,学习楼主
2019-3-31 09:11
0
雪    币: 2719
活跃值: (1595)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
免ROOT就可以实现很多功能了捏
2019-3-31 14:50
0
雪    币: 534
活跃值: (240)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这个思路还是不错。。
2019-3-31 15:08
0
雪    币: 1535
活跃值: (695)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
支持一下
2019-3-31 18:34
0
雪    币: 14865
活跃值: (6088)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
关键是能够让你二次打包吗?可以这么说只要加壳了都不会允许2次打包。如果能够2次打包,个人认为基本上都不需要hook,直接反编译分析代码得了?
2019-4-1 08:19
0
雪    币: 3344
活跃值: (2009)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
7
tDasm 关键是能够让你二次打包吗?可以这么说只要加壳了都不会允许2次打包。如果能够2次打包,个人认为基本上都不需要hook,直接反编译分析代码得了?
你的观点很对。我在issue中也提到对于加壳的应用不适用。还是有很大一批应用没有加壳,可以适用。
对于可以二次打包的,这个工具主要解决修改代码的问题。
反编译分析代码之后,你怎样修改Apk源代码?直接改smali代码?还是改dex2jar工具利用asm修改?这样改都是要改到吐血吧
写个Xposed插件修改应该相对容易一些吧,虽然说也会一些缺点。
2019-4-1 10:12
0
雪    币: 1867
活跃值: (3973)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
太极可以对有壳的apk重打包。我尝试过
2019-4-1 13:47
0
雪    币: 14865
活跃值: (6088)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
WindStormy 你的观点很对。我在issue中也提到对于加壳的应用不适用。还是有很大一批应用没有加壳,可以适用。 对于可以二次打包的,这个工具主要解决修改代码的问题。 反编译分析代码之后,你怎样修改Apk源代码? ...
你说得对,如果大量的修改代码,的确写个apk用hook更快。
这就不得不说,hook的目的是什么?如果hook的目的完全是为了拿来,那就不得不修改大量的代码来完善别人的apk。但是我想大部分hook的目的是破解吧。
2019-4-1 16:14
0
雪    币: 1380
活跃值: (1626)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
10
Xposed root的原因是替换系统文件app_process需要root,免root如何实现hook系统类?原理是啥,很好奇
2019-4-3 13:19
0
雪    币: 3344
活跃值: (2009)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
11
aihacker Xposed root的原因是替换系统文件app_process需要root,免root如何实现hook系统类?原理是啥,很好奇
xposed需要root,因为要修改系统,Xpatch不需要root是因为它是修改了apk文件,插入了xposed模块加载代码。
2019-4-3 14:42
0
雪    币: 14865
活跃值: (6088)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
virjar 太极可以对有壳的apk重打包。我尝试过
太极与VirtualXposed据说是同一个作者,两者都基于VirtualApp来实现APP进程入口劫持。并不是使用2次打包
2019-4-3 17:12
0
雪    币: 1395
活跃值: (526)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
13
tDasm 太极与VirtualXposed据说是同一个作者,两者都基于VirtualApp来实现APP进程入口劫持。并不是使用2次打包
太极是重打包
2019-4-3 17:47
0
雪    币: 1395
活跃值: (526)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
14
tDasm 太极与VirtualXposed据说是同一个作者,两者都基于VirtualApp来实现APP进程入口劫持。并不是使用2次打包
理论上无论什么壳,入口 Application 应该也是有的啊,所以为什么不能支持壳呢
2019-4-3 17:48
0
雪    币: 1867
活跃值: (3973)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
15
tDasm 太极与VirtualXposed据说是同一个作者,两者都基于VirtualApp来实现APP进程入口劫持。并不是使用2次打包
我之前也以为太极和virtualXposed是同一个原理。然后最近反编译了一下,太极的确实是重打包。
2019-4-3 21:38
0
雪    币: 1867
活跃值: (3973)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
16
我有一个和你差不多的产品,目前测试一个有壳的。失败了,不过定位了一下,问题不在重打包方案上面。在whale,只需要加载了whale程序就会崩溃。而且有意思的是,如果单纯只过签名(不hook,通过代理的方式过签名),不load whale,app能够正常启动,看起来是whale和壳同时hook了某个虚拟机函数导致的。因为没有壳的app,在同一个手机上面正常。whale现在好不稳,还有一个华为的手机,上去就崩溃。
最后于 2019-4-3 21:43 被virjar编辑 ,原因: at错人了
2019-4-3 21:42
0
雪    币: 14865
活跃值: (6088)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
坑大 理论上无论什么壳,入口 Application 应该也是有的啊,所以为什么不能支持壳呢
昨天搜索太极介绍,以为不是2次打包(有些介绍不详细),今天再搜索发现的确是2次打包。这是原文介绍:(注意要卸载原来的应用就证明了)
点击太极首页右下角的浮动按钮,然后在弹出菜单中点击创建APP。
在选择APP的界面中选择你要应用 Xposed 模块的 APP,比如微信。
然后点击创建按钮,耐心等待创建完毕。
创建完成之后,太极会提示你需要卸载原APP;免Root模式中这是必要步骤(magisk模式无需),卸载即可。
跟随太极APP的指引完成余下操作,如安装-优化 等。
最后于 2019-4-4 11:03 被tDasm编辑 ,原因:
2019-4-4 10:49
0
雪    币: 14865
活跃值: (6088)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
virjar 我有一个和你差不多的产品,目前测试一个有壳的。失败了,不过定位了一下,问题不在重打包方案上面。在whale,只需要加载了whale程序就会崩溃。而且有意思的是,如果单纯只过签名(不hook,通过代理的 ...
如果你在2次打包时创建类似VirtualApp的虚拟环境呢?以前的确不了解太极,估计太极也就是在2次打包时包含了 VirtualApp的虚拟安卓环境(那么2次打包后的apk应该膨胀不小)。
最后于 2019-4-4 11:11 被tDasm编辑 ,原因:
2019-4-4 11:09
0
雪    币: 1867
活跃值: (3973)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
19
tDasm virjar 我有一个和你差不多的产品,目前测试一个有壳的。失败了,不过定位了一下,问题不在重打包方案上面。在whale,只需要加载了whale程序就会崩溃。 ...
包含的不是类似VirtualApp的虚拟环境,因为打包的时候,AndroidManifest.xml内容已经是已知的了,不需要通过插桩的方式。二次打包如果不考虑原文件内容检查,那么不会膨胀太多。如果app有检查apk文件指纹,那么需要backup原始apk。重打包后app会膨胀为原始apk的两倍多一点
2019-4-4 11:52
0
雪    币: 14865
活跃值: (6088)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
virjar 包含的不是类似VirtualApp的虚拟环境,因为打包的时候,AndroidManifest.xml内容已经是已知的了,不需要通过插桩的方式。二次打包如果不考虑原文件内容检查,那么不会膨胀太多。如果a ...
我的意思是如果你2次打包的时候就包含了VirtualApp的虚拟安卓环境,那么sign签名检测或文件效验检测等都可以过了,因为原程序基本上分不清已经被2次打包了。如果你不能做到完全安卓虚拟环境,那么就会有漏网之鱼被程序检测到。比如通过so直接读取apk文件检测是否2次打包。
2019-4-4 17:07
0
雪    币: 76
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
重打包  w-x  这种会封号的吧
最后于 2019-4-4 17:49 被mingxuan三千编辑 ,原因:
2019-4-4 17:49
0
雪    币: 3344
活跃值: (2009)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
22
mingxuan三千 重打包  w-x  这种会封号的吧
是的,使用几次后会,会收到微信消息,提醒继续使用会面临封号风险。不过,既然能加载Xposed插件,可以自己写Xposed插件Hook掉相关检验,比如签名检测等
2019-4-6 22:52
0
雪    币: 254
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
virjar 我有一个和你差不多的产品,目前测试一个有壳的。失败了,不过定位了一下,问题不在重打包方案上面。在whale,只需要加载了whale程序就会崩溃。而且有意思的是,如果单纯只过签名(不hook,通过代理的 ...
你那个ratel怎么不弄了,可惜啊,虽然当初没成功过
2019-5-3 19:26
0
雪    币: 254
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
virjar 我有一个和你差不多的产品,目前测试一个有壳的。失败了,不过定位了一下,问题不在重打包方案上面。在whale,只需要加载了whale程序就会崩溃。而且有意思的是,如果单纯只过签名(不hook,通过代理的 ...
现在很多应用没壳二次打包都是失败
2019-5-3 19:31
0
雪    币: 1867
活跃值: (3973)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
25
kingstarhe 现在很多应用没壳二次打包都是失败[em_26]
你用的xpatch么?xpatch内部的代码我没有分析很细,不清楚我踩过的那些坑他有没有踩过。不够目前我的框架还是相对比较稳定的。
2019-5-6 00:05
0
游客
登录 | 注册 方可回帖
返回
//