-
-
[原创]Android 10 设备id采集---一种获取Mac地址的特殊方案
-
发表于:
2021-7-15 14:58
16300
-
[原创]Android 10 设备id采集---一种获取Mac地址的特殊方案
之前过时方案
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
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课