首页
社区
课程
招聘
[原创]Android 10 设备id采集---一种获取Mac地址的特殊方案
发表于: 2021-7-15 14:58 16299

[原创]Android 10 设备id采集---一种获取Mac地址的特殊方案

2021-7-15 14:58
16299

之前过时方案

1、笼统来说,在Android 6.0 之前可以通过 WifiManager 来获取。

 

2、Android6.0 WifiManager获取到的都是 02:00:00:00:00:00,可以通过/sys/class/net/wlan0/address来获取mac地址

 

3、但是 Android7.0 开始,上面这个文件开始没有权限读取了,所以一般可以通过扫描网络接口来获取NetworkInterface.getNetworkInterfaces()

后来发现有有人通过其他方式获取

adb 运行 :ip address show wlan0

 

1|OnePlus8:/ $ ip address show wlan0

 

这种方式竟然可以获取到mac地址,也就是说可以通过java或者native 执行shell的方式获取mac地址。

 

进一步发现有的app竟然把iproute2 这个库给做了裁剪,然后把里面获取mac的方式给裁剪了处理,编译到了自己的动态库里面。

 

所以我也做了裁剪 https://github.com/qiang/ParseMacAddrByIproute2

这样和之前采集方案的好处

这种获取方式非常隐蔽,之前的系统调用,和后面执行shell的方式,都可以很简单的hook 执行shell的总入口函数,从而把执行过程和结果被hook掉。这种自己裁剪iproute2库的方式,可以只对外暴露一个方法,返回加密后的mac地址,并且返回原始mac地址的摘要。如果不对动态库分析,很难发现这个参数是个mac地址

 

有个缺点就是现在很多手机使用了随机Mac


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 2
支持
分享
最新回复 (13)
雪    币: 94
活跃值: (2397)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
其实不用搞那么复杂,直接netlink通信就完事,一个函数搞定的事情,不过随机化无解
2021-7-15 15:35
0
雪    币: 1867
活跃值: (3978)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
netlink就行了,还不好hook
2021-7-15 17:15
0
雪    币: 1446
活跃值: (1526)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
virjar netlink就行了,还不好hook
大佬能给个demo吗,hook netlink 修改Mac地址的方式
2021-7-15 20:10
0
雪    币: 13
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5

方不方便留个联系方式,想问你一些问题

最后于 2021-7-16 13:26 被onlythis编辑 ,原因:
2021-7-16 13:26
0
雪    币: 1867
活跃值: (3978)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
奋斗der小鸟 大佬能给个demo吗,hook netlink 修改Mac地址的方式
不好做,那里是系统调用
2021-7-16 17:26
0
雪    币: 13
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
virjar netlink就行了,还不好hook
大佬 用netlink如何获取? 是利用这个命令?
2021-7-19 15:32
0
雪    币: 343
活跃值: (856)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
8
执行shell的方式,10.0以上的手机已经不允许了吧
2021-7-21 10:32
0
雪    币: 205
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
hzqhacker 执行shell的方式,10.0以上的手机已经不允许了吧
我测试成功了 然后再测试几次之后就不行了 很奇怪 好像跟发现我了一样 一直报Cannot bind netlink socket: Permission denied 无论shell 还是上面的netlink 又或者iproute2都不行
2021-8-19 18:50
0
雪    币: 13
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
咸鱼王 我测试成功了 然后再测试几次之后就不行了 很奇怪 好像跟发现我了一样 一直报Cannot bind netlink socket: Permission denied 无论shell 还是上面的net ...
你好你是如何使用netlink的
2021-8-20 08:50
0
雪    币: 390
活跃值: (768)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
主要的问题还是Android11,targe30的问题 ,而且安卓12直接打回原形 avc: denied { bind } for scontext=u:r:untrusted_app:s0:xxxtcontext=u:r:untrusted_app tclass=netlink_route_socket
2021-8-24 15:16
0
雪    币: 58
活跃值: (1185)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Rio
12
apxar 主要的问题还是Android11,targe30的问题 [em_1],而且安卓12直接打回原形 avc: denied { bind } for scontext=u:r:untrusted_app: ...
android11,targetSdkVersion 30被堵的死死的,有其他思路么
2021-11-9 20:42
0
雪    币: 2484
活跃值: (3152)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
13
内核有一个修改地方  可以让大部分的ip信息和wlan都改变  唯一缺点就是需要重启 
2021-11-9 22:39
0
雪    币: 208
活跃值: (1986)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
14
Android11,targe30 无解、现在 Google App Store 都必须要求 API 30 了
2021-11-22 11:02
0
游客
登录 | 注册 方可回帖
返回
//