comment puis-je randomiser mon adresse MAC à chaque fois que mon WiFi est allumé?

8

Étant donné la prévalence accrue des systèmes qui suivent les mouvements des personnes par leurs adresses Mac, je voudrais masquer les miennes.

J'ai une Galaxy Note 2 enracinée avec une boîte occupée installée. Je peux changer mon adresse MAC comme ceci:

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

cependant, si je désactive et réactive mon sans fil, ou si je redémarre mon téléphone, il est oublié. y a-t-il un endroit où je peux mettre un script pour qu'il soit exécuté à chaque fois que mon sans fil s'allume?

mc0e
la source
Essayez le pry-fi
mbaljeetsingh

Réponses:

6

Que diriez-vous de l'outil Pry-Fi de Chainfire qui a été annoncé lors de XDA ?
Cela fonctionne très bien et il est disponible via le Play Store officiel de Google à:

Voici une capture d'écran montrant l'outil en action…

capture d'écran de l'outil Pry-Fi de Chainfire

Peter
la source
J'ai essayé Pry-Fi. Bien que mon téléphone soit répertorié comme testé, cela a rendu le Wi-Fi totalement inutilisable. Je ne pouvais même pas voir de réseau auquel me connecter. J'ai dû désinstaller pour accéder à nouveau à mon réseau domestique.
mc0e
3

Vous pouvez le faire en utilisant par exemple Tasker , le puissant outil d'automatisation:

  • Condition: démarrage du moniteur (c.-à-d. Tasker a été démarré; alternativement: démarrage du périphérique , c.-à-d. Processus de démarrage terminé)
  • Tâche: exécutez Shell , avec votre commande comme paramètre

Si vous l'aimez plus sophistiqué, vous pouvez même utiliser Variable Randomize pour générer un MAC différent à chaque fois ...

Izzy
la source
Cela déclencherait-il dans le cadre du processus de mise en ligne ou peu de temps après? Si possible, j'aimerais ne pas diffuser du tout le MAC du matériel.
mc0e
Cela se déclencherait là où vous l'avez défini, comme décrit: Le démarrage du moniteur est lorsque Tasker est activé, ce qui est généralement immédiatement après le démarrage (ou lorsque vous démarrez / redémarrez Tasker ou activez son service de surveillance manuellement). Si vous utilisez le démarrage de périphérique comme condition, il ne sera "déclenché" qu'après le démarrage, mais pas lorsque vous démarrez / redémarrez le moniteur Tasker manuellement. Donc, dans les deux cas, il serait appliqué immédiatement après le démarrage. Je ne peux pas dire si l'initialisation du réseau pourrait être plus rapide.
Izzy
L'activation devrait suivre quand le Wi-Fi est activé et changer le MAC avant la diffusion des paquets. Je ne suis pas du tout convaincu que l'on puisse s'y fier, mais je me trompe peut-être.
mc0e
@ mc0e Si vous avez des doutes à ce sujet, ajoutez un deuxième profil avec une condition différente (quelque chose qui déclenche sur les changements de réseau), et appliquez-lui la même tâche :)
Izzy
2

En plus de l'autre réponse avec Tasker ("Vous pouvez le faire en utilisant par exemple Tasker, le puissant outil d'automatisation:"), voici une petite tâche (exportation de description) avec randomisation du 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 ]

Cela fait une boucle pour 6 valeurs hexadécimales aléatoires pour obtenir un mac aléatoire comme par exemple 01: 4F: 89: BA: 3F: 0C Ensuite, il définit ce mac aléatoire comme propre mac.

Je peux voir le nouveau mac avec cette commande:

busybox iplink show wlan0

Après un redémarrage, l'ancien Mac est réinitialisé.

franc
la source
1

Utilisez l'application de Chainfire appelée Pry-Wifi qui fait exactement cela.

t0mm13b
la source
-2

J'ai l'impression que cela pourrait être fait avec un script bash ou en éditant le fichier init pour inclure la commande que vous avez ici.

Vide
la source
1
Ce n'est pas utile; qu'est-ce que OP mettrait dans le script? Où irait-il?
Peanut
1
C'est vraiment une répétition de ce que j'ai proposé dans la question initiale. Je n'ai aucun problème à écrire un script, mais je ne sais pas où il faudrait aller pour être déclenché chaque fois que mon téléphone se connecte.
mc0e
De plus, cela nécessiterait de modifier l'image de démarrage; les scripts init en font partie. Toutes les modifications des fichiers init dans le "système de fichiers monté" seront perdues après le démarrage (voir par exemple initrd @ Wikipedia pour plus de détails).
Izzy
Si je parviens à définir l'adresse MAC qui survit à la carte réseau de haut en bas, c'est un pas en avant, même si je dois modifier le script après chaque redémarrage du téléphone. Surtout si cela signifie que l'adresse MAC est définie avant que les paquets ne soient diffusés à chaque fois que la liaison wifi augmente.
mc0e