首页
社区
课程
招聘
[原创]安卓改机技术揭秘(一) 工具篇
发表于: 2016-10-2 00:25 62816

[原创]安卓改机技术揭秘(一) 工具篇

2016-10-2 00:25
62816

  目前 市面上你能买到的一些安卓刷量变机工具例如 008K、变机宝等等 使用的都是XPOSED框架来修改手机的机型。这种修改方式目前是一种主流技术,主流技术的优点就是兼容性好、开发(包括文档支持、社区支持、第三方模块)成本低、稳定性高等特点。但对于当前项目来说,主流技术并不是一个好的解决办法,因为主流技术不光你了解,APP的厂商的技术人员也很了解,而且一般规律来看,厂商的技术实力、人力、财力以及这三方面的积累,不是一个小团队的作者可以对抗的。

目前改机软件所实现的修改机型项目汇总起来分为以下几类
1:手机唯一身份标志
这个很好理解,主要包括 IMEI IMSI ICCID 等等这些全球唯一的身份标志,来表示这台手机的独立性,另外要实现一些编号的校验位运算,一般情况下,这些标志身份的序号都有校验位和一些固定的格式和算法,这里有很多渠道和积分墙是对这些序号的合法性有检测的。
2 : 唯一标志衍生信息
这个衍生信息就有很多项了,例如一些改机软件 随便的把某个厂商的型号和一个合法的IMEI结合在一起,殊不知IMEI的前6位为TAC,是每个机型独有的身份标志,随便搭配后,一定会被检测出来的。再例如联通的IMSI是46001开头,移动和电信的就不一样,IMSI,ICCID,NUMBER,运营商,网络制式,mnc,mcc这些信息最起码是要匹配的。
3:环境信息
环境信息分为两部分 ①:手机内部环境 包括你的系统特定信息,用户特定信息。②:手机外部环境:基站信息、GPS信息、WIFI信息等等。

本文中所有的操作都基于Android Studio环境。下面进入实战操作环节!

1 首先创建一个APP,并配置XPOSED的开发环境,配置过程可以参考以下两篇文章,此处不再重复。
http://www.cnblogs.com/csonezp/p/5177928.html
http://www.open-open.com/lib/view/open1451364108964.html

2 配置好XPOSED环境后,在该APP中创建HOOK类 本文为MainHook,该类必须继承IXposedHookLoadPackage



3 实际修改项

目前市面上的很多改机软件都没有修改第二处的IMEI
另外一个位置是在com.android.internal.telephony.PhoneSubInfo类中,
导致有些反作弊系统读取这个位置的IMEI值后不会下分



       
以上这些做下来 从信息采集上基本可以过市面上70%的系统了 对于某些系统的高级检测,则需要我们采用更高级的处理方式才能攻破对方的防线,这些处理方式我们随后会讲到。
但目前推广市场上 不光是采用技术手段 还采取大数据分析等方式判断你的数据是否合格 所以想把这个作为一个项目来做 从技术方面解决工具问题只是刚刚开始。



[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 11
支持
分享
打赏 + 21.00雪花
打赏次数 2 雪花 + 21.00
 
赞赏  xiaonanwl   +20.00 2019/04/28 好文章 有什么方法可以模拟更多的环境信息呢!!
赞赏  留一手   +1.00 2018/02/26
最新回复 (61)
雪    币: 2895
活跃值: (3929)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
谢谢分享
2016-10-2 00:35
0
雪    币: 387
活跃值: (897)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2016-10-2 03:38
0
雪    币: 6
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
支持一个
2016-10-2 09:23
0
雪    币: 47147
活跃值: (20450)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
5
2008年的老会员了,感谢分享!
2016-10-2 09:36
0
雪    币: 214
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
感谢分享,正好把自己的工具增加一些数据
2016-10-2 18:13
0
雪    币: 11716
活跃值: (133)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
厉害~~~
2016-10-2 20:23
0
雪    币: 9479
活跃值: (757)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我自己做了一年,结果还没lz全
2016-10-2 20:35
0
雪    币: 268
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
感谢分享~
2016-10-2 22:03
0
雪    币: 147
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
刷量有市场才好啊
2016-10-4 06:01
0
雪    币: 210
活跃值: (641)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
11
感谢分享~
2016-10-8 09:22
0
雪    币: 102
活跃值: (2050)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
mark
2016-10-8 10:27
0
雪    币: 54
活跃值: (705)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
做协议版......
2016-10-9 13:50
0
雪    币: 90
活跃值: (92)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
14
感谢分享,写的很全面。

仔细研究了几天发现了一点遗漏的地方,这里贴个代码:(这段代码手机上执行不会调用TelephonyManager.getDeviceId,没有调用shell,没有jni,但是确实能获取到imei)

TelephonyManager tel = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

  Method TelephonyManager_private_getSubscriberInfo = tel.getClass().getDeclaredMethod("getSubscriberInfo");
            TelephonyManager_private_getSubscriberInfo.setAccessible(true);

            Object iphonesubinfo = TelephonyManager_private_getSubscriberInfo.invoke(tel);
            log(iphonesubinfo.toString());

            Method getDeviceId = iphonesubinfo.getClass().getDeclaredMethod("getDeviceId");
            log(getDeviceId.toString());
            getDeviceId.setAccessible(true);

            Object deviceid = getDeviceId.invoke(iphonesubinfo);
            log("deviceid:" + deviceid.toString());
2016-10-9 17:56
0
雪    币: 241
活跃值: (231)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
15
针对imei的部分 我有特意强调 你的这种方式在我顶楼的代码中 是可以被hook到的
2016-10-10 02:41
0
雪    币: 241
活跃值: (231)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
16
其实关于安卓值得写的东西很多 但模块都很杂 很分散 不太好把这些东西整理成一个文章 安卓刷量里面需要解决的技术问题太多了 我干了将近一年 才把这里面的很多环节理顺 回头有空慢慢写吧
2016-10-10 02:46
0
雪    币: 63
活跃值: (324)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
17
这玩意貌似挺合适我某位友人,@他
2016-10-10 10:47
0
雪    币: 90
活跃值: (92)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
18
我在4.2.2的模拟器上测试确实没有hook到,不过模拟器内核和framework是被修改过的,可能有点问题,但是手机上又没装xposed。

你是指com.android.internal.telephony.PhoneSubInfo.getDeviceId这个,在手机上是能hook到我前面那段代码吗?PhoneSubInfo应该就是接口IphoneSubInfo的一个实现吧。
2016-10-10 10:49
0
雪    币: 90
活跃值: (92)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
19
我也是在研究安卓反刷量~,多到论坛交流,我研究还不久,没太多心得,不过也有点想法想写点东西,再研究一段时间。
2016-10-10 10:52
0
雪    币: 92
活跃值: (154)
能力值: ( LV8,RANK:135 )
在线值:
发帖
回帖
粉丝
20
感谢分享
2016-10-10 14:11
0
雪    币: 241
活跃值: (231)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
21
我是研究刷量的
2016-10-11 06:03
0
雪    币: 56
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
但是请求IP不会变啊,如果上万个量都是一个IP岂不是很假,就比如移动广告平台,服务器不检测IP吗??
2016-11-9 14:32
0
雪    币: 89
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
vpn。
2016-11-19 15:07
0
雪    币: 56
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
这方法不现实
2016-11-19 21:52
0
雪    币: 237
活跃值: (83)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
谢谢分享
2016-11-21 08:11
0
游客
登录 | 注册 方可回帖
返回
//