Autor Tema: ChaMAC 0.9-5 : Cambia todas tus MAC  (Leído 78544 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado USUARIONUEVO

  • Colaborador
  • *
  • Mensajes: 14715
Re: ChaMAC 0.5 : Cambia todas tus MAC
« Respuesta #100 en: 17-09-2013, 22:09 (Martes) »
Yo creo que el problema viene de querer lanzarle el parametro a la vez a varias interfaces.

yo me he fijao esta tarde que un par de veces en alguna interface fallaba.


¿ alguna opcion de sleep entre cambiar una interface y otra ? ...debe haber una pausa si detecta mas d euna , que sera siempre, por que ethernet siempre habra ..y wireless casi que tambien.



alist3r

  • Visitante
Re: ChaMAC 0.5 : Cambia todas tus MAC
« Respuesta #101 en: 18-09-2013, 01:31 (Miércoles) »
Yo creo que el problema viene de querer lanzarle el parametro a la vez a varias interfaces.

yo me he fijao esta tarde que un par de veces en alguna interface fallaba.


¿ alguna opcion de sleep entre cambiar una interface y otra ? ...debe haber una pausa si detecta mas d euna , que sera siempre, por que ethernet siempre habra ..y wireless casi que tambien.

hice bastantes pruebas, y tanto las pausas entre los dos "ip link" como las pausas entre iteraciones del bucle (cada tarjeta), mejoran el problema.

vk496

  • Visitante
Re: ChaMAC 0.5 : Cambia todas tus MAC
« Respuesta #102 en: 18-09-2013, 22:12 (Miércoles) »
Bueno chicos, vengo para deciros que ya he solucionado el dichoso problema con los cambios de MAC (10 pruebas continuas sobre etho wlan0 y mon0, y las 10 cambiaron la MAC a todas)  >:(


Otra de las novedades va a ser la detección de wicd (especialmente para los que lo usan fuera de WifiSlax)

Una cosa mas que pensé añadir fue obligar al usuario a tener el script siempre en /usr/bin/ con el nombre chamac, sino, el programa no continuara (mas que nada por la función del autostart, cosa a la que me dedicare plenamente para la 0.7  ;D )

La ultima cosa que me falta por añadir es el modo DEBUG. me gustaría modificar todos los &>/dev/null por una variable ($output por ejemplo), y que si DEBUG es 1, que la variable guardase en un archivo todas las salidas con la máxima info posible (por ahora quiero limitarme a que cada línea tuviese el comando "date" para la hora exacta en primer lugar, y después las salida), y si estuviese en 0, pues un &>/dev/null


Me ha funcionado perfectamente si lo pongo manual, pero no con el uso de variables y todo eso... Espero conseguirlo pronto  :D

Salu2

Desconectado USUARIONUEVO

  • Colaborador
  • *
  • Mensajes: 14715
Re: ChaMAC 0.5 : Cambia todas tus MAC
« Respuesta #103 en: 18-09-2013, 22:45 (Miércoles) »
pon la 0.6 si solventa lo de los cambios d emac fallidos,..y para la 0.7 el debug.

auqnueb tampoco hay prisa  ;)

alist3r

  • Visitante
Re: ChaMAC 0.5 : Cambia todas tus MAC
« Respuesta #104 en: 18-09-2013, 22:53 (Miércoles) »
Bueno chicos, vengo para deciros que ya he solucionado el dichoso problema con los cambios de MAC (10 pruebas continuas sobre etho wlan0 y mon0, y las 10 cambiaron la MAC a todas)  >:(


Otra de las novedades va a ser la detección de wicd (especialmente para los que lo usan fuera de WifiSlax)

Una cosa mas que pensé añadir fue obligar al usuario a tener el script siempre en /usr/bin/ con el nombre chamac, sino, el programa no continuara (mas que nada por la función del autostart, cosa a la que me dedicare plenamente para la 0.7  ;D )

La ultima cosa que me falta por añadir es el modo DEBUG. me gustaría modificar todos los &>/dev/null por una variable ($output por ejemplo), y que si DEBUG es 1, que la variable guardase en un archivo todas las salidas con la máxima info posible (por ahora quiero limitarme a que cada línea tuviese el comando "date" para la hora exacta en primer lugar, y después las salida), y si estuviese en 0, pues un &>/dev/null


Me ha funcionado perfectamente si lo pongo manual, pero no con el uso de variables y todo eso... Espero conseguirlo pronto  :D

Salu2

me vas a matar, pero ya he implementado todo eso en privado.
he forkeado tu script salvajemente y no he tenido tiempo de enseñartelo.

lo mejor que puedes hacer es mirarlo tu mismo, tomas ideas (tengo muchos comentarios) y las implementas a tu aire en proximas versiones, descartando mis modificaciones (seria dificil resincronizarnos, ya que hemos empezado a picar codigo por separado sin el control de un repositorio)

si te das de alta en github.com y aprendes a usar git, podré ayudarte mucho mas.

te paso mi version del script en privado para que curiosees

vk496

  • Visitante
Re: ChaMAC 0.5 : Cambia todas tus MAC
« Respuesta #105 en: 19-09-2013, 17:23 (Jueves) »
Bueno chicos, vengo para deciros que ya he solucionado el dichoso problema con los cambios de MAC (10 pruebas continuas sobre etho wlan0 y mon0, y las 10 cambiaron la MAC a todas)  >:(


Otra de las novedades va a ser la detección de wicd (especialmente para los que lo usan fuera de WifiSlax)

Una cosa mas que pensé añadir fue obligar al usuario a tener el script siempre en /usr/bin/ con el nombre chamac, sino, el programa no continuara (mas que nada por la función del autostart, cosa a la que me dedicare plenamente para la 0.7  ;D )

La ultima cosa que me falta por añadir es el modo DEBUG. me gustaría modificar todos los &>/dev/null por una variable ($output por ejemplo), y que si DEBUG es 1, que la variable guardase en un archivo todas las salidas con la máxima info posible (por ahora quiero limitarme a que cada línea tuviese el comando "date" para la hora exacta en primer lugar, y después las salida), y si estuviese en 0, pues un &>/dev/null


Me ha funcionado perfectamente si lo pongo manual, pero no con el uso de variables y todo eso... Espero conseguirlo pronto  :D

Salu2

me vas a matar, pero ya he implementado todo eso en privado.
he forkeado tu script salvajemente y no he tenido tiempo de enseñartelo.

lo mejor que puedes hacer es mirarlo tu mismo, tomas ideas (tengo muchos comentarios) y las implementas a tu aire en proximas versiones, descartando mis modificaciones (seria dificil resincronizarnos, ya que hemos empezado a picar codigo por separado sin el control de un repositorio)

si te das de alta en github.com y aprendes a usar git, podré ayudarte mucho mas.

te paso mi version del script en privado para que curiosees

Gracias por tu gran trabajo! La verdad es que lo he estado mirando, y tiene bastantes cosas interesantes, me parece que voy a añadir casi todo  ;D ;D ;D

El unico problema que estoy teniendo para aplicar los cambios es con el $chamac_detected_daemon, pues en cuanto sale del while, lo que contiene dentro desaparece, por lo que nunca se llega a reiniciar un daemon (solo el cliente dhcp). Le he probado a poner/quitar el export que lleva delante (no se me ocurre nada mas), pero sigo sin ver cambios. De todos los echo que coloque a lo largo del script, solo responden los que estan dentro del while, nada mas....  :'(


A ver si acabo con este pequeño contratiempo y publico la 0.6 (que creo que va a ser la mas estable hasta ahora). Te va a hacer mucha gracia la forma con la que resuelvo el problema de los cambios de MAC, ya lo verás....  ;D ;D ;D

Salu2 a todos y atentos a la v0.6  8)

alist3r

  • Visitante
Re: ChaMAC 0.5 : Cambia todas tus MAC
« Respuesta #106 en: 19-09-2013, 19:12 (Jueves) »
no te va? en teoria solo debes utilizar

EXPORT NOMBREDEVARIABLE=VALOR

para que dicha variable esté disponible en todas las function.
esto es crucial en muchos pntos de tu script.ya te comenté que tenias algun problema de "scope" (alcance) de variables, o cuanto menos, poblemas potenciales.

por norma general en el preload de un script cargamos todas las variables globales con EXPORT, o todas las que podemos.

luego al salir, las limpiamos todas para que no quede ni rastro, utilizando UNSET. es que si no, esas variables quedarian ajustadas en el entorno de bash. se intenta salir limpiamente desconfigurado todas las variables usadas. por eso es buena idea no usar variables con nombres genericos. en tu caso pondria el prefijo CHAMAC_ a todas las variables globales.

me alegro que te haya gustado todo, el codigo de deteccion del daemon tenia muchas posibilidades de simplificarse, y aun lo puedes simplificar mas con respecta mi propuesta si le das alguna vuelta al asunto.

el tema de debug tambien tiene mucho mas potencial, en lugar de usar echo, a veces construimos una funcion echo_debug o similar para que se aparezcan mensajes por pantalla solo cuando el debug está activado. la variable debug deberia, por tanto, ser global (EXPORT). trastea con eso porque te deberia funcionar.

saludos

PD: miedo me da ver lo que hayas ideado para resolver la condicion de carrera en netlink xD
« Última modificación: 19-09-2013, 19:16 (Jueves) por alister »

vk496

  • Visitante
Re: ChaMAC 0.6 : Cambia todas tus MAC
« Respuesta #107 en: 19-09-2013, 21:38 (Jueves) »
Bueno, por fin me he decidido a lanzar la 0.6 (me parece que no me he dejado ningun fallo en la v0.6 definitiva)  ^-^

Lo mas importante de todo: Contarme como os van los cambios de MAC (echad un chamac && chamac && chamac && chamac y decirme como os ha ido) >:D

Al final me cansé de los pause, así que probé algo mas "radical", y parece ser que funciona (al menos a mi hasta ahora)  ;D ;D ;D

Salu2

ferlan

  • Visitante
Re: ChaMAC 0.6 : Cambia todas tus MAC
« Respuesta #108 en: 20-09-2013, 02:31 (Viernes) »
Contarme como os van los cambios de MAC (echad un chamac && chamac && chamac && chamac y decirme como os ha ido.
¡Vaya curre que te estás pegando con lo que parecía una sencilla utilidad!
Siento tener que ser yo otra vez el agorero:

Privileges root--->     OK!
Chamac installdir--->   OK!
Autoboot Status--->     Off
Chamac Mode------->     Normal

Network inteface/s:     3

eth0 wlan1 wlan0



================================\
INTERFACE: eth0                                    \
MAC ORIGINAL: xx:23:54:fx:ex:xx               #
MAC ACTUAL: xx:c1:43:fx:6x:xx                /
================================/
================================\
INTERFACE: wlan1                                   \
MAC ORIGINAL: xx:f1:a1:0x:1x:4x               #
MAC ACTUAL: xx:98:b2:9x:5x:2x                /
================================/

Reiniciando interfaces y DHCP ...
Mediante ifconfig podras comprobar que la mac realmente ha cambiado.
Iniciando servcio /etc/rc.d/rc.inet1

Recuerda revisar las demas opciones con chamac --help

Tareas realizadas ... Hasta pronto


Esto es lo que se muestra en la ejecución del script. Informa de cambio en eth0 y wlan1, no así en wlan0, pero comprobado con ifconfig, los cambios se efectúan correctamente en las tres. Lo he probado varias veces tal como dices, y con la opción -m  En ningún caso ha fallado a excepción de lo que ya he mencionado.

Probado en Wifislax-4.6  Live-USB

alist3r

  • Visitante
Re: ChaMAC 0.6 : Cambia todas tus MAC
« Respuesta #109 en: 20-09-2013, 02:57 (Viernes) »
Citar
viaifconfig() {

for (( c=1; c<=6; c++ ))
do
for INTERFACE in ${interfaces
  • }; do

     MAC_ACTUAL="$(cat /sys/class/net/$INTERFACE/address)"
     until [ -N $MAC_ACTUAL ]; do
     ifconfig $INTERFACE down &>${chamac_output_device}
     ip link set $INTERFACE down &>${chamac_output_device}
     ip link set dev $INTERFACE address $(openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//') &>${chamac_output_device}
     break
     conditional_clear
   done
done
done

}


jajajajaaa!
que puto animal XD

pero bueno, aunque no es elegante es funcional y resuelve el problema. listo para sentencia.

tu mayor punto debil por resolver ahora es la forma de comprobar la version de machanger. deberias detectar expresiones regulares en su salida estandar para asegurarte, porque otras compilaciones de las mismas versiones podrian tener diferentes longitudes, especialmente las de 32 y 64 bits, versiones de depuracion o parcheadas localmente, etc etc etc.

alist3r

  • Visitante
Re: ChaMAC 0.6 : Cambia todas tus MAC
« Respuesta #110 en: 20-09-2013, 03:17 (Viernes) »
he conseguido un parche para el netlink socket, para que se coma más comando a mayor velocidad.
vamos, que es un tema conocido. el kernel no está hecho para hacerle estas guarradas tan deprisa ya que limita la cola de entrada de mensajes mediante los netlink sockets. el ratio de throttling parece que está en unos 25 mensajes por segundo, ergo las pausas deberian tambien servir (a mi me sirven de hecho)

lo dejo en constancia, pero vamos, que si ya funciona bien esta parte y no da problemas así, tampoco me voy a poner a ladrar xD

vk496

  • Visitante
Re: ChaMAC 0.6 : Cambia todas tus MAC
« Respuesta #111 en: 20-09-2013, 12:28 (Viernes) »
he conseguido un parche para el netlink socket, para que se coma más comando a mayor velocidad.
vamos, que es un tema conocido. el kernel no está hecho para hacerle estas guarradas tan deprisa ya que limita la cola de entrada de mensajes mediante los netlink sockets. el ratio de throttling parece que está en unos 25 mensajes por segundo, ergo las pausas deberian tambien servir (a mi me sirven de hecho)

lo dejo en constancia, pero vamos, que si ya funciona bien esta parte y no da problemas así, tampoco me voy a poner a ladrar xD

Para la próxima de Wifislax estaría bien que se añadiese (por si acaso), pero en el caso de mi script, para que sea lo mas portable posible, no puedo ir obligando a la gente a aplicar el parche para que funcione bien, sería de locos... xD

vk496

  • Visitante
Re: ChaMAC 0.6 : Cambia todas tus MAC
« Respuesta #112 en: 20-09-2013, 12:35 (Viernes) »
Contarme como os van los cambios de MAC (echad un chamac && chamac && chamac && chamac y decirme como os ha ido.
¡Vaya curre que te estás pegando con lo que parecía una sencilla utilidad!
Siento tener que ser yo otra vez el agorero:

Privileges root--->     OK!
Chamac installdir--->   OK!
Autoboot Status--->     Off
Chamac Mode------->     Normal

Network inteface/s:     3

eth0 wlan1 wlan0



================================\
INTERFACE: eth0                                    \
MAC ORIGINAL: xx:23:54:fx:ex:xx               #
MAC ACTUAL: xx:c1:43:fx:6x:xx                /
================================/
================================\
INTERFACE: wlan1                                   \
MAC ORIGINAL: xx:f1:a1:0x:1x:4x               #
MAC ACTUAL: xx:98:b2:9x:5x:2x                /
================================/

Reiniciando interfaces y DHCP ...
Mediante ifconfig podras comprobar que la mac realmente ha cambiado.
Iniciando servcio /etc/rc.d/rc.inet1

Recuerda revisar las demas opciones con chamac --help

Tareas realizadas ... Hasta pronto


Esto es lo que se muestra en la ejecución del script. Informa de cambio en eth0 y wlan1, no así en wlan0, pero comprobado con ifconfig, los cambios se efectúan correctamente en las tres. Lo he probado varias veces tal como dices, y con la opción -m  En ningún caso ha fallado a excepción de lo que ya he mencionado.

Probado en Wifislax-4.6  Live-USB
chamac -s

Que raro... te detecta la wlan0 desde el script pero no muestra su info al final... hmm....

Prueba con chamac -s para ver si te pasa lo mismo

PD: Gracias por mostrar el output, ahora ya sé que funciona bien (y no solo a mi jajaja)

Salu2

alist3r

  • Visitante
Re: ChaMAC 0.6 : Cambia todas tus MAC
« Respuesta #113 en: 20-09-2013, 15:54 (Viernes) »
voy a analziar el codigo en busca de una potencial falla a la hora de procesar el array.

alist3r

  • Visitante
Re: ChaMAC 0.6 : Cambia todas tus MAC
« Respuesta #114 en: 20-09-2013, 16:02 (Viernes) »
vk496
la forma de obtener el array deberia ser correcta, y la forma de procesarlo tambien. pero vamos a testar la forma de procesarlo.
no tengo una maquina *nix cerca ahora mismo, pero te digo cómo colocar un punto de debug para ver que pasa ahi:

justo antes de esta linea
Código: [Seleccionar]
for INTERFACE in ${interfaces[@]}; do
colocad estas lineas:
Código: [Seleccionar]
echo "DEBUG: Contenido de interfaces:"
echo "${interfaces[@]}" # mostrar en pantalla el contenido del array.
read foo #fuerza pausa hasta pulsar enter

y pegad por aqui la salida de ese trozo de código

vk496

  • Visitante
Re: ChaMAC 0.6 : Cambia todas tus MAC
« Respuesta #115 en: 20-09-2013, 16:38 (Viernes) »
vk496
la forma de obtener el array deberia ser correcta, y la forma de procesarlo tambien. pero vamos a testar la forma de procesarlo.
no tengo una maquina *nix cerca ahora mismo, pero te digo cómo colocar un punto de debug para ver que pasa ahi:

justo antes de esta linea
Código: [Seleccionar]
for INTERFACE in ${interfaces[@]}; do
colocad estas lineas:
Código: [Seleccionar]
echo "DEBUG: Contenido de interfaces:"
echo "${interfaces[@]}" # mostrar en pantalla el contenido del array.
read foo #fuerza pausa hasta pulsar enter

y pegad por aqui la salida de ese trozo de código

Yo no tengo ninguna PC a la que le pase eso, en todos los PC en los que he llegado a probar el script me ha funcionado....

Lo que mas me sorprende del caso de @ferlan es que el array si almacena todas las interfaces, pero por alguna razón no las muestra todas.... Habrá que esperar a que nos facilite mas datos...  ^-^

Salu2

vk496

  • Visitante
Re: ChaMAC 0.5 : Cambia todas tus MAC
« Respuesta #116 en: 20-09-2013, 17:17 (Viernes) »
Bueno chicos, vengo para deciros que ya he solucionado el dichoso problema con los cambios de MAC (10 pruebas continuas sobre etho wlan0 y mon0, y las 10 cambiaron la MAC a todas)  >:(


Otra de las novedades va a ser la detección de wicd (especialmente para los que lo usan fuera de WifiSlax)

Una cosa mas que pensé añadir fue obligar al usuario a tener el script siempre en /usr/bin/ con el nombre chamac, sino, el programa no continuara (mas que nada por la función del autostart, cosa a la que me dedicare plenamente para la 0.7  ;D )

La ultima cosa que me falta por añadir es el modo DEBUG. me gustaría modificar todos los &>/dev/null por una variable ($output por ejemplo), y que si DEBUG es 1, que la variable guardase en un archivo todas las salidas con la máxima info posible (por ahora quiero limitarme a que cada línea tuviese el comando "date" para la hora exacta en primer lugar, y después las salida), y si estuviese en 0, pues un &>/dev/null


Me ha funcionado perfectamente si lo pongo manual, pero no con el uso de variables y todo eso... Espero conseguirlo pronto  :D

Salu2

me vas a matar, pero ya he implementado todo eso en privado.
he forkeado tu script salvajemente y no he tenido tiempo de enseñartelo.

lo mejor que puedes hacer es mirarlo tu mismo, tomas ideas (tengo muchos comentarios) y las implementas a tu aire en proximas versiones, descartando mis modificaciones (seria dificil resincronizarnos, ya que hemos empezado a picar codigo por separado sin el control de un repositorio)

si te das de alta en github.com y aprendes a usar git, podré ayudarte mucho mas.

te paso mi version del script en privado para que curiosees

Acabo de crearme una cuenta en github, pero lo de aprender a usarlo va a ser algo mas complicado.... jajajjaja ;D

De todas formas, ya tengo subido el proyecto allí

alist3r

  • Visitante
Re: ChaMAC 0.6 : Cambia todas tus MAC
« Respuesta #117 en: 20-09-2013, 17:41 (Viernes) »
tranquilo, yo te voy acompañando. mirate la ayuda sobre cómo crear tu primer repo. con un inglés básico, no deberias tener problemas. luego todo lo puedes ir gestionando desde la interfaz web.

dame tu dirección, que te agregamos

vk496

  • Visitante
Re: ChaMAC 0.6 : Cambia todas tus MAC
« Respuesta #118 en: 20-09-2013, 20:35 (Viernes) »
tranquilo, yo te voy acompañando. mirate la ayuda sobre cómo crear tu primer repo. con un inglés básico, no deberias tener problemas. luego todo lo puedes ir gestionando desde la interfaz web.

dame tu dirección, que te agregamos

https://github.com/vk496

ferlan

  • Visitante
Re: ChaMAC 0.6 : Cambia todas tus MAC
« Respuesta #119 en: 20-09-2013, 23:24 (Viernes) »

justo antes de esta linea
Código: [Seleccionar]
for INTERFACE in ${interfaces[@]}; do
colocad estas lineas:
Código: [Seleccionar]
echo "DEBUG: Contenido de interfaces:"
echo "${interfaces[@]}" # mostrar en pantalla el contenido del array.
read foo #fuerza pausa hasta pulsar enter

y pegad por aqui la salida de ese trozo de código

Pegado queda:

DEBUG: Contenido de interfaces:
eth0 wlan0 wlan1

Edito para aclarar que esto es así pasando el script con la opción   chamac -s

« Última modificación: 20-09-2013, 23:46 (Viernes) por ferlan »

//FINAL Y MÁS DOS RESPUESTAS