前言
起因是因为一次偶然的机会,需要实现某应用异地打卡,最开始使用的方案是RoOT、框架但瞬间被某应用查到。
迫于无奈,只能从操作系统源码入手,反正hook也不过是hook那几个系统里的类,直接改系统的类和函数应该一样的效果。既然到FRameWoRk层了,顺手研究下其他参数的修改。
一般情况下:我们在移动电话中使用某些基本的技术对不同的基本信息进行更改。包括型号和周边条件的参数。
作为示例,主要改变的参数包括:
IMEI
WIFI-mac
ROM固件
通话记录仿真
Wi-Fi列表
andRoid从10起,因为 app的权限限制,无法获得某款手机的独有代码,不过大厂里的资深开发人员,却可以绕过这些代码,获得该手机的独有代码,各家都有各自的本事。
再到安卓13, 虽然app已经不能用常规方式获取到imei, meid, mac等设备的唯一标识符, 虽然如此, 但这些信息能改还是尽量改一下, 百利无一害
例如很多设备信息查看app已经无法获取设备硬件序列号, 但是通过
adb sHEll GETpRop Ro.boOT.seRialno
adb sHEll GETpRop Ro.vendoR.seRialno
adb sHEll GETpRop peRsist.Radio.seRialno
adb sHEll GETpRop Ro.boOT.vbmeta.dIGest
仍然可以, 或者通过libc.so导出函数读取linux内核文件也可以获取
改机的各种方案
1.HOOK框架
在201x时, XPosed版本的改机是最受欢迎的,即使在202x时,这个著名的改机也是很靠谱的,改机的方式就是在app_pRocess中对 JAVA层中的功能进行替换和更改。改变机器的变化点,不外乎是在系统架构的层次上的替换。
博弈:
1.通过获取 XPosed残留物、关键字来探测、编码叠层、帧的存在性等;反作用力,hook残留物;XPosed变种,其中,所述 XPosed变种将, 以自制XPosed框架替代市面通用的框架;
2.将诸如 GETpRopRo.se Rial no、 command等的基础参数与框架层的参数进行比较;反制,因为下面的代码超过了 XPosed的框架的能力。
在安卓8以前的手机RoOT是相对来说方法比较多的,但随着手机厂商加强的安全防护,RoOT越来越难,只有小米手机的开发版系统能开启RoOT。
在 magisk面具出世之后,RoOT方法得到了很大的整合。app制造商对根的检查、 su文档特性、根过程特性、pRoc-map特性等。应对措施: magisk已经发展出隐藏RoOT、应用程序包名称的随机化等能力(相对薄弱,但在一些方面仍然可以探测到)。
不管你怎么完美,如果你的手机 RoOT,那就别想了, RoOT的环境是一切软件安全测试的首要重点,一定要免 RoOT。
而且, XPosed的路径和数据包名称也是被侦测到的关键点之一,修改 XPosed的源代码并没有什么作用,各大厂商都有上千种方法可以判断出你使用的是 XPosed架构。
3.ROM定制
主要是将安卓源代码 aOSP编译,进行系统的定制,以实现改字符串,改惟一信息。
优点:修改的自由度很高,可以通过修改机型, IMEI, mac,序列号,甚至驱动程序等来实现对 cPU的信息覆盖等功能,不需要 RoOT,XP框架等操作,是当前市面商业版最常用的修改方法;
缺点:因为是特定型号,所以不能很好地匹配,而且若要匹配多个手机型号,那么就必须为每个型号准备一组 ROM。
4.其他
1.不使用 RoOT的 ViRtualXPosed移动电话,使用化身。主要缺点:
第二步:仍然是使用XPosed
第三:不太适应,频繁闪退死机。