高中生

- 金币
- 493
- 好评
- 13
- 信誉
- 100
|
基于安卓AOSP8.1的脱壳系统,刷在Nexus6P中,测试可脱壳
为什么是安卓8.1?因为我的破手机Nexus6P最高只能刷安卓8.1
对于不知道什么是脱壳机系统的朋友解释一下
就是魔改安卓源码,自己编译一个安卓系统,运行APP的时候,让系统主动把dex文件吐出来,无需root,无需模块,只需要打开app,dex就被脱出来了
脱壳机这个东西,是很多年前的产物了,现在玩它,也是纯学习了,49年入国军
脱壳系统这一概念好像是来自FART,FART最高好像只有安卓8.0的系统的开源,但是刷了之后,系统就会变得很卡,因为所有的应用,启动后,都会脱壳,这就导致了整个系统运行非常的卡,同时FART有一个问题,就是需要应用自身声明外部储存权限,否则无法脱壳
但是别人的始终是别人的,自己搞一个才是自己的
于是我就想着自己DIY一个脱壳系统,装了个vmware,装了个ubuntu系统,搞了一份安卓8.1的源码和手机驱动,自己开始DIY,原理和FART应该是一样(因为我没看过FART的源码,所以不清楚),更多的其实是参考光芒大佬的脱壳模块原理
所以这个脱壳机系统应该算原创吧
这是一种主动调用类的脱壳,能拿到完整的dex,将所有dex写出到外部目录,同时将入口文件(dump.txt),原始安装包(base.apk),以及AndroidManifest.xml一起写出,以方便后续的处理
在这个魔改安卓系统中,我将脱壳功能,以及延迟时间,做成了可选操作,因此不会牺牲整个系统的性能,只有开启了dumpdex的应用,运行才会脱壳
理论上来说,对于一代落地壳,二代内存加载壳,三代函数抽取壳,可以直接自动脱修,即运行APP后,就在外部生成一个脱修签名后的完整apk,但是目前因为猪瘾犯了,先脱dex吧,手动修一下入口,回填一下dex文件
这个系统主要的亮点就是
1.不牺牲整个系统的性能
2.自动赋予应用外部文件读写权限(哪怕它axml中未声明)
3.自由选择要脱壳的应用
4.自由设置脱壳的时机
5.系统语言默认改成了中文
6.修复一个安卓8.1的内存加载dex的兼容问题(在高版本安卓上已经被官方修复了的)
图中的dumpART指令功能还未实现,只是提前设计了一个开关
现在这个脱壳系统还在测试中,缺少加固样本,自己找了几个样本倒是都能脱出来,修改入口回填dex后也能正常运行,目前就只是发帖交流一下,如果大家需要,待测试OK后,我可以到时候将编译后的刷机包发出来,但是驱动只有nexus6P机型的驱动,因此只有这个机型可以刷
===========分割线===========
以下是我的一些个人想法,大佬勿喷,嘴毒的请自觉离开
我有个邪修点子用于还原dexvmp抽代码的加固,因为dexvmp抽代码,是将标准的dalvik指令,抽成自定义指令,然后再映射执行,那么系统ART收到执行请求,必然是执行的真实指令,那么系统层面,必然是可以拿到真实指令,以及执行的方法,类,等详细信息的
是不是就意味着我可以修改安卓系统,让它主动把被抽vmp代码的方法的真实执行指令,寄存器,参数等全部信息全部吐出来呢?然后再用AI还原这个方法,或者系统层面直接构建出smali代码输出呢?
希望有相关了解和研究的大佬指点一二
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
-
查看全部评分
总评分:好评 +1
金币 +1
|