как я могу рандомизировать свой MAC-адрес каждый раз, когда мой WiFi включен?

8

Учитывая возросшую распространенность систем, которые отслеживают движения людей по их MAC-адресам, я бы хотел скрыть свои.

У меня рутированная galaxy note 2 с установленным busybox. Я могу изменить свой MAC-адрес следующим образом:

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

однако, если я отключаю и снова включаю беспроводную связь или перезагружаю телефон, он забывается. Есть ли где-нибудь, где я могу поставить скрипт, чтобы он запускался при каждом включении моей беспроводной сети?

mc0e
источник
Попробуйте
pry

Ответы:

6

Как насчет инструмента Chainfire Pry-Fi, который был анонсирован на XDA ?
Он прекрасно работает и доступен через официальный магазин Google Play по адресу:

Вот скриншот, показывающий инструмент в действии…

снимок экрана с инструментом Chainfire Pry-Fi

Питер
источник
Я попробовал Pry-Fi. Несмотря на то, что мой телефон был включен в список протестированных, это привело к тому, что Wi-Fi стал совершенно непригодным для использования. Я даже не видел сетей для подключения. Мне пришлось удалить, чтобы получить доступ к моей домашней сети снова.
mc0e
3

Вы можете сделать это, используя, например, Tasker , мощный инструмент автоматизации:

  • Условие: запуск монитора (т. Е. Запуск Tasker; альтернатива: загрузка устройства , т. Е. Процесс загрузки завершен).
  • Задача: Запустите Shell , указав в качестве параметра команду

Если вам это нравится больше, вы можете использовать переменную Randomize для создания нового MAC каждый раз ...

Иззи
источник
Будет ли это запускаться как часть процесса выхода в Интернет или вскоре после этого? Если возможно, я бы не хотел показывать MAC аппаратного обеспечения вообще.
mc0e
Это вызвало бы то, где вы его определили, как описано: Запуск монитора - это когда активируется Tasker , что обычно происходит сразу после загрузки (или когда вы запускаете / перезапускаете Tasker или активируете его службу мониторинга вручную). Если вы используете Device Boot в качестве условия, он будет срабатывать только после загрузки, но не при запуске / перезапуске монитора Tasker вручную. Так что в обоих случаях это будет применяться сразу после загрузки. Я не могу сказать, может ли инициализация сети быть быстрее.
Иззи
Активация должна была бы отследить, когда Wi-Fi включен, и изменить MAC, прежде чем любые пакеты будут переданы. Я не настолько уверен, что на это можно положиться, но, возможно, я ошибаюсь.
mc0e
@ mc0e Если у вас есть сомнения по этому поводу, добавьте второй профиль с другим условием (что вызывает изменения в сети) и примените к нему ту же задачу :)
Иззи
2

В дополнение к другому ответу с Tasker («Вы могли бы сделать это, используя, например, Tasker, мощный инструмент автоматизации:»), здесь небольшое задание (экспорт описания) с рандомизацией 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 сбрасывается.

франк
источник
1

Используйте приложение Chainfire под названием Pry-Wifi, которое делает именно это.

t0mm13b
источник
-2

Я чувствую, что это можно сделать с помощью bash-скрипта или отредактировать файл инициализации, добавив в него команду, которая у вас есть.

пустой
источник
1
Это не полезно; что бы OP поместил в скрипт? Куда это пойдет?
Арахис
1
Это действительно повторение того, что я выдвинул в первоначальном вопросе. У меня нет проблем с написанием сценария, но я не знаю, куда его нужно было бы включить, чтобы он срабатывал каждый раз, когда мой телефон подключался к сети.
mc0e
Кроме того, для этого потребуется изменить образ загрузки; сценарии инициализации являются частью этого. Любые изменения файлов инициализации в «смонтированной файловой системе» будут потеряны после загрузки (см., Например, initrd @ Wikipedia ).
Иззи
Если я получу способ установить MAC-адрес, который выживает при переходе вверх и вниз по сетевой карте, это будет шагом вперед, даже если мне придется изменять сценарий после каждой перезагрузки телефона. Особенно, если это означает, что MAC-адрес устанавливается до того, как какие-либо пакеты будут транслироваться каждый раз, когда соединение Wi-Fi идет вверх.
mc0e