每次打开WiFi时,如何随机分配MAC地址?


8

鉴于越来越多的系统通过Mac地址跟踪人们的活动,我想掩盖我的想法。

我有一个安装了busybox的扎根星系注释2。我可以这样更改我的MAC地址:

busybox ifconfig wlan0 hw ether 11:22:33:44:55:66

但是,如果我禁用并重新启用我的无线设备,或者重新启动手机,则会被遗忘。我可以在哪里放置脚本,以便每次打开无线设备都可以运行该脚本?


给撬音响一试
mbaljeetsingh

Answers:



3

您可以使用强大的自动化工具Tasker来做到这一点:

  • 条件: 监视启动(即Tasker已启动;或者:设备启动,即启动过程完成)
  • 任务: 使用命令作为参数运行Shell

如果您更喜欢它,甚至可以每次使用“ 变量随机化”来生成不同的MAC ...


这是否会成为联机或此后不久的过程的一部分?如果可能的话,我根本不想广播硬件的MAC。
mc0e 2013年

这将触发您定义它的位置,如下所述:监视启动是激活Tasker时启动的,通常是在启动后立即启动(或启动/重新启动Tasker或手动激活其监视服务时)。如果使用设备启动作为条件,则启动后它只会被“触发”,而当您手动启动/重新启动Tasker监视器时则不会。因此,在两种情况下,都将在启动后立即应用。我不能说网络初始化是否可能更快。
伊齐

激活必须跟踪wi-fi何时开启,并在广播任何数据包之前更改MAC。我不是很自信可以依靠它,但是也许我错了。
mc0e

@ mc0e如果对此有疑问,请添加另一个具有不同条件的配置文件(在网络更改时会触发该配置文件),然后对其应用相同的任务:)
Izzy

2

除了使用Tasker的其他答案外(“您可以使用Tasker,强大的自动化工具:”来完成此任务),这里还有一些Task(描述导出),它随机化了MAC:

TestMacChanger (130)
    A1: Variable Set [ Name:%count To:0 Do Maths:On Append:Off ] 
    <randomstart>
    A2: Variable Randomize [ Name:%random Min:0 Max:15 ] 
    A3: Variable Convert [ Name:%random Function:Decimal to Hex Store Result In:%rhex ] 
    A4: Test Variable [ Type:Length Data:%rhex Store Result In:%len ] 
    A5: Variable Set [ Name:%rhex To:0%rhex Do Maths:Off Append:Off ] If [ %len eq 1 ]
    A6: Variable Convert [ Name:%rhex Function:To Upper Case Store Result In: ] 
    A7: Variable Set [ Name:%mac To:%mac:%rhex Do Maths:Off Append:Off ] If [ %mac Set ]
    A8: Variable Set [ Name:%mac To:%rhex Do Maths:Off Append:Off ] If [ %mac !Set ]
    A9: Variable Add [ Name:%count Value:1 Wrap Around:0 ] 
    <randomend>
    A10: Goto [ Type:Action Label Number:1 Label:randomstart ] If [ %count < 6 ]
    A11: Variable Set [ Name:%mac To:00:11:22:33:44:55 Do Maths:Off Append:Off ] If [ %mac !Set ]
    A12: Flash [ Text:%mac Long:On ] 
    A13: Run Shell [ Command:su
busybox ifconfig wlan0 hw ether %mac Timeout (Seconds):0 Use Root:On Store Output In:%output Store Errors In:%error Store Result In: Continue Task After Error:On ] 
    A14: Flash [ Text:%error Long:Off ] If [ %error Set ]

这是对6个随机十六进制值进行循环以获得一个随机mac,例如01:4F:89:BA:3F:0C然后将这个随机mac设置为自己的mac。

我可以使用以下命令查看新的mac:

busybox iplink show wlan0

重新启动后,将重置旧的mac。



-2

我觉得这可以通过bash脚本或编辑init文件以包含您在此处的命令来完成。


1
这没有帮助;OP将在脚本中添加什么?它会去哪里?
花生

1
这确实是我在原始问题中提出的内容的重复。我编写脚本没有问题,但是我不知道每次手机上网时都需要触发脚本。
mc0e 2013年

另外,这将需要修改启动映像。初始化脚本就是其中的一部分。引导后,“挂载文件系统”中对init文件的任何修改都将丢失(有关详细信息,请参见例如initrd @ Wikipedia)。
伊兹

如果我有办法设置在NIC上下浮动后仍能幸存的MAC地址,那就是向前迈出的一步,即使我必须在每次电话重启后都修改脚本。尤其是如果这意味着每次wifi链接上升时,在任何数据包都被广播之前就已经设置了MAC地址。
mc0e 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.