Cambiar la dirección MAC de tu tarjeta de red

En las redes de computadoras, la dirección MAC (siglas en inglés de media access control; en español “control de acceso al medio”) es un identificador de 48 bits (6 bloques hexadecimales) que corresponde de forma única a una tarjeta o dispositivo de red. Se conoce también como dirección física, y es única para cada dispositivo. más..

La necesidad de cambiar este numero es muy especifica para cada usuario, pero imaginen que en su trabajo, están realizando filtrado de información mediante alguna técnica “cual sea” aprovechando este numero único que permite conocer quien es la persona que normalmente utiliza una computadora!, tal vez ahora si tiene sentido cambiarlo.

Este “como” esta realizado para ser implementado en Linux, en primera instancia utilizaremos Linux/Debian, estos son los pasos a seguir:

  • Tener permisos de root ó “super usuario” -> “#”
  • Instalar el paquete “macchanger”, este nos permite realizar un “fake” o cambio falso de MAC y asignarlo a un dispositivo de red.

#aptitude install macchanger

  • Con este simple paso de instalación ya tenemos la aplicación “macchanger” y desde ahora podemos cambiar el MAC de la siguiente manera, suponiendo que nuestro dispositivo de red es el “eth0″.

#macchanger -r eth0 

  • Se mostrara un mensaje como este, que indica el MAC actual y el MAC falso asignado al dispositivo:  

Current MAC: b8:dd:ac:67:91:4f (unknown)
Faked MAC: 94:c1:a0:3f:3f:31 (unknown)

De esta forma ya sera difícil identificar a la persona detrás de la computadora  ya los sistemas de filtrado no tendrán la MAC falsa relacionada con un usuario.

Para hacer que este técnica se aplique cada vez que encendemos la computadora de forma automática podemos ejecutar lo siguiente:

#echo ‘#!/bin/sh’ > /etc/network/if-pre-up.d/fake-mac; echo ‘/usr/bin/macchanger -r eth0′ >> /etc/network/if-pre-up.d/fake-mac

Eso creara un fichero llamado “fake-mac” en la ruta /etc/network/if-pre-up.d/ , el cual sera evaluado cada vez que la computadora inicie y justo antes de levantar la interfaz de red “eth0″ sera cambiado el numero de MAC.

 

Buscar fichero distinto a:

Utilizando la potencia del comando “find” en Linux, veremos como buscar ficheros distintos a la extensión (.mp3, .Mp3 y .MP3).

Situarse en el directorio que quiere realizar la búsqueda:

$cd  /media/333-000

Para buscar:

$find . -name “*.*” -not -name “*.??3″

Esto devuelve como resultado una lista de ficheros que se encuentran dentro del directorio /media/333-000 distintos a las extensiones antes mencionadas. En mi caso quería eliminar la lista de ficheros resultantes, para eso solo se pasa el parametro “-delete” al comando “find”.

 

 

Séptimo Día Debian – Mérida

El sábado 27 de agosto se estará celebrando por séptima vez el día Debian – Mérida.

Cada 16 de agosto se conmemora un nuevo aniversario del nacimiento del proyecto Debian, por lo que cada grupo de usuarios organiza un evento a nivel local con variadas actividades referentes tanto a Debian como al software libre en general.

Toda la planificación del evento en -> http://wiki.debian.org/DebianDay2011/Venezuela/Merida

Android Python Apps

Continuando con el Post Python en Android + script de regalo SMS/GPS/SMS he empaquetado el scrip SMS/GPS/SMS en una aplicación llamada smslocation-beta-0.0.1.apk para Android.

Actualmente se encuentra en su fase de pruebas , pero es funcional, pueden encontrar la información completa en la dirección http://hg.web-aox.com/android-python-apps/wiki/Home, incluso pueden reportar errores y agregar solicitudes de nuevas funcionalidades.

Django Plug Modules

Es una aplicación que permite incorporar módulos en un proyecto de Django, es ideal para proyectos con necesidades de ser escalables que contengan varios módulos y los mismos deban ser relacionados y/o dependientes entre ellos.

Características:

  • Fácil de implementar, se instala como una aplicación Django en su proyecto.
  • Comando para creación de módulos.
  • Fichero de configuración de módulos, permite describir dependencias fuertes ó débiles con otros módulos.
  • Indexa dinámicamente los módulos instalados.
  • Interfaz de información del estado y relación entre módulos.
  • Diagrama de relación entre módulos.
  • Cada módulo maneja independientemente todos sus ficheros.
  • Simple librería que suministra la información necesaria para relacionar módulos a nivel de vistas y templates.
  • Cumple con todas la convenciones de programación en Django.

 

Información completa en -> http://hg.web-aox.com/django-plug-modules/wiki/Home

 

 

Perdida de datos!

Motivado a un problema en el webhosting de esta página, se han perdido los post correspondientes a los últimos 2 meses.

 

 

Video Intel GMA 500 en Debian/Squeeze

Este es un un pequeño post basado en  http://wiki.debian.org/IntelEmbeddedMediaGraphicsDriver de como configurar correctamente para Linux Debian/Squeeze la tarjeta de video GMA 500 de la Intel  (Poulsbo) para procesadores de la línea Atom Z5xx.

El computador con el cual he realizado la instalación es un  Acer Netbook AO751H.

Los pasos son:

$su root

  • Instalar el paquete Linux-Headers

#aptitude install linux-headers-2.6.32-5-686

  • Entrar al directorio gma500

#cd gma500

  • Descomprimir el driver

#tar -zxvf IEMGD_HEAD_Linux.tgz

  • Copiar el fichero de instalación modificado en el driver

#cp -f install.sh IEMGD_HEAD_Linux/Utilities/

  • Entrar al directorio del driver para compilar he instalar

#cd IEMGD_HEAD_Linux/Utilities/

  • Dar permisos de ejecución al fichero install.sh

#chmod 755 install.sh

  • Ejecutar la instalación

#./install.sh

  • Salir del directorio del driver

#cd ../..

  • Copiar el fichero de configuración modificado de Xorg

#cp xorg.conf /etc/X11

  • Reiniciar el computador

#reboot

Con esto debe quedar configurada y activada la aceleración.

Liberar Motorola Milestone A853 – Movilnet Venezuela

Este post cuenta como he liberado un Motorola Milestone de la Operadora Movilnet de Venezuela.

Primero que nada les cuento que la mayoría de las operadoras bloquean los aparatos móviles para que solo puedan funcionar en dicha Red, aunque nuestros teléfonos con tecnología GSM se les pueda cambiar de SIM/CARD ó (chip) por el de una operadora distinta, los mismos no funcionan. Allí se nace la necesidad de tener que utilizar otros métodos para poder utilizar “nuestro” teléfono con la operadora que nos convenga.

La mayoría de los teléfonos GSM actuales pueden ser liberados con solo introducir un código en el teléfono, en mi caso lo he realizado de la siguiente forma.

Teléfono: Motorola/Milestone A853
Operadora: Movilnet – Venezuela

Requerimientos:

  • Comprar un SIM/CARD ó chip de una operadora distinta, en mi caso mi operadora era Movilnet y compré uno de Movistar.
  • Conocer el código IMEI de nuestro Teléfono:
    • El IMEI es un código de 15 dígitos que puede ser encontrado de dos formas, la primera es sacando la batería y observando la etiqueta el cual muestra el código, la segunda es marcando en el teléfono como si se tratara de una llamada lo siguiente: *#06#*

  • Cuenta en PayPal , en el caso de Venezuela con cupo en dolares aprobados por CADIVI para compras electrónicas, o en su defecto dolares disponibles en la cuenta.
  • Conexión a Internet y cuenta de correo electrónico.

Compra de código de desbloqueo:

  • La empresa, servidor, página ó servicio con el que vamos a comprar el código es gsmliberty
  • Seccionar la marca y modelo del teléfono, en mi caso Motorola/Milestone y presionar el botón ”unlock my phone”.

  • Aparece el precio en dolares, ahora debe ingresar el código IMEI y presionar el botón “Add to Cart”.

  • Seleccionar el modo de pago, en mi caso PayPal y presionar el botón “Buy now”.

  • La página de gsmliberty redirige el cobro a la página de PayPal, en el cual debemos colocar nuestro login que normalmente es el correo electrónico y el password.

  • En este punto debemos aprobar el pago para gsmliberty y automáticamente gsmliberty enviara un correo electrónico a tu cuenta de correo notificando la compra e informando que tu código se esta procesando y el número de orden, luego en un par de horas lo recibirás vía email.

Introducir el código y liberar el teléfono:

  • Estar pendiente a la llegada del correo electrónico  con el código de desbloqueo, cuando lo reciba puede que sea uno con la siguiente estructura: (Phone IMEI: 123456789123456 returned unlock code is : J28NNN25Z5 78951298 32124510 1403D40F)
  • Introducir la nueva SIM/CARD (chip) en el teléfono y encenderlo, el mismo mostrara el mensaje; “PIN de desbloqueo de red SIM” introducir el código suministrado y presionar la tecla aceptar.

  • Se muestra el mensaje “Solicitando desbloqueo de red”.

  • Luego muestra el mensaje “Desbloqueo de red correcto”, y ya esta listo para utilizar el teléfono con la nueva operadora y cualquier otra que necesitemos, después de esto el teléfono cargara como de costumbre.

En mi caso el código suministrado con esta estructura no funciono, me mostró el mensaje ”Solicitando desbloqueo de red” y luego “Desbloqueo de red incorrecto” y regreso nuevamente a la primera pantalla que dice “PIN de desbloqueo de red SIM”, probé varias combinaciones con el código y no funcionaba, intente unas 8 veces y luego regresé a la página de gsmliberty a la parte soporte de para desbloquear Motorola específicamente aquí .

Conteste unas preguntas ó test que aparece allí y me di cuenta que existen dos tipos de código para desbloquear el que recibimos con esta estructura “J28NNN25Z5 78951298 32124510 1403D40F” y uno de solo 16 dígitos y procedí a escribir un correo electrónico a  sales@gsmliberty.net y support@gsmliberty.net informando que el código suministrado no me funcionaba y que tal vez necesitaba un código de 16 dígitos para desbloquear el teléfono también coloqué nuevamente el IMEI, la operadora que era Movilnet/Venezuela y el número de orden.

Luego de eso ellos escribieron un correo diciendo que si el código suministrado no funciona era probable que necesitara un código de 16 dígitos y me ofrecieron dos soluciones: la primera era reintegrarme los $9. 99 el cual se reflejaría en mi cuenta de PayPal, la segunda era que me podían prestar su servicio “Motorola Premium Service” que generaría el código de 16 dígitos, tendría un costo de %15.00 adicionales a los $9.99  y tardaría de 1 a 3 días hábiles en entregarse, que esperaban mi decisión por esa misma vía “correo electrónico” .

En ese momento decidí arriesgarme pensando que si no servía ellos nuevamente me propondrían reintegrar el dinero, respondí su correo diciendo que quería la segunda opción y nuevamente escribí el IMEI, operadora, país Venezuela y el numero de orden. Luego a eso me llego un mail con un enlace para cobrar los $15.00 extras con el mismo método de pago por PayPal, aprobé el pago y luego a los 2 días tenia mi nuevo código, con la siguiente estructura “Phone IMEI: 123456789123456 returned unlock code is : 9754908327887910″.

En ese momento coloqué nuevamente el chip de Movistar, encendí el teléfono, escribí el código y cargo de forma exitosa, al momento de escribir este post he probado con Movistar y Digitel de forma exitosa.

Algunas personas en Venezuela cobran desde 350 Bsf. hasta 500 Bfs. por suministrar el código de desbloqueo, en mi caso al contar con divisas para realizar la compra electrónica  me permitió gastar unos 100 Bsf. al cambio oficial.

Python en Android + script de regalo SMS/GPS/SMS

Teniendo la necesidad de hacer algo con mí Motorola Milestone (Droid) lo primero que pensé fue instalar Python, para eso me valí del proyecto “Scripting Layer for Android brings scripting languages to Android” (SL4A).

Este post se divide en dos parte, la primera es la fase de instalación de Python y la segunda es un script realizado para detectar la posición actual del móvil representada en GoogleMaps.

Instalación de Python

Todo el proceso de instalación a continuación es realizado desde el teléfono:

Presionar la tecla menu configuración->Aplicaciones , seleccionar fuentes desconocidas.

Abrir el navegador y colocar la dirección http://code.google.com/p/android-scripting/

Descargar el fichero python_for_android_r1.apk y sl4a_r2.apk

Al terminar las descargas tenemos las siguinte pantalla en el historial de descargas del navegador

Instalar Python presionando sobre  python_for_android_r1.apk

Luego presionar sobre el boton install

Cuando termine el proceso de instalación apararece

Ya tenemos Python instalado, ahora vamos a instalar el SL4A, abrimos el navegador presionamos la tecla Menu->Mas->Descargas y nuevamente tendremos la pantalla donde están las descargas.

Ahora presionamos sobre el paquete sl4a_r2.apk para instalarlo, y se muestra

Presionar el botón Instalar, en este momento ya tendremos instalas las dos aplicaciones, el Python y el SL4A

Ejecutar SL4A, y veremos una pantalla con algunos scripts de ejemplo, presionamos sobre el script hello_world.py y parecerá un cuadro de opciones (1. ejecutar y visualizar resultados en consola, 2. ejecutar, 3. editar, 4. almacenar, 5. eliminar)

Presionar sobre la opción 1. ejecutar y visualizar resultados en consola, se mostrara.

En este momento ya hemos ejecutado un script de Python en nuestro Android, puedes también crear tus propios scripts presionando la tecla Menu->Add

También puedes correr la consola de python presionando Menu->View->Interpretes

El regalo – Script SMS/GPS/SMS

Se trata de un script gpaox.py que he desarrollado y trabaja de la siguiente forma:

  • Se ejecuta como un demonio (servicio) el cual evalúa cada 30 segundos para verificar si ha llegando un nuevo mensaje que no ha sido leído y que contenga únicamente la palabra Gps
  • Busca la posición actual del móvil utilizando el Gps ó la red celular para conseguir las coordenadas, esta operación dura un máximo de 5 minutos, en caso de no conseguir las coordenadas devuelve la ultima coordenada conocida.
  • Construye un mensaje de texto SMS que contiene una Url de GoogleMaps con las coordenadas
  • Envía el mensaje al móvil que hizo la solicitud.
  • Marca el mensaje de solicitud recibida como leído.
  • Muestra el siguiente mensaje en la consola “Enviado a: 0416******” , donde los * son números que componen el numero telefónico que realizo la petición.
  • Continua escuchando como demonio (servicio) para nuevas solicitudes.

Para instalar el script en su móvil siga estos pasos:

  • Descargar el script aquí
  • Conectar su móvil al computador por el cable USB y copiar el script en el directorio /sdcard/sl4a/scripts
  • Luego usted podrá observar que aparece el script gpaox.py en la lista de scripts de SL4A

  • En este momento ya puede ejecutar el script como lo hizo anteriormente con el script de ejemplo hello_world.py

A continuación un vídeo que muestra el funcionamiento del script.

[youtube=http://www.youtube.com/watch?v=DJQWnyG-rLs]

Vídeo original Theora/Vorbis (ogg) 40Mb -> descargar aquí

Una imagen del mapa en GoogleMaps

Esta es una base para mostrar que es posible hacer cosas bastante interesantes con Python en la plataforma de Android.

Otro cuento sobre decoradores en Python

Al buscar información sobre ¿cómo funcionan los decoradores en Python?, normalmente nos encontramos con que: es una función que es pasada como parámetro a otra y retorna una función modificada, otra definición es: una función (a) pasada a una función (c) para retornar una función (b). Bueno la verdad es que ninguna de estos conceptos son digeribles.

Buscando una manera de tratar de explicar mi modo de entender los decoradores, he preparado el siguiente ejemplo:

Crearemos una función llamada (suma)  el cual tendrá como menester recibir dos parámetros (a) y (b) y otorgar a la variable (c) la suma de (a) + (b) para luego retornar el valor de la suma contenido en (c), la función es la siguiente.

En este momento podríamos utlizar la funcion (suma), por ejemplo:

>>>print suma(1,2)

3

Ahora crearemos un decorador que tendrá como finalidad recibir la función (suma) como parámetro, evaluar el valor (c) retornado por (suma) y verificar si es divisible entre 2, si es verdadero retornará un string (“si”) de lo contrario retornará un string (“no”), la función es la siguiente.

Para decorar la función (suma), lo haremos agregando un (@) seguido del nombre de la función decoradora (@numero_divisible) antes de definir la función (suma), quedara de la siguiente manera:

En este momento la función (suma) ya está decorada y a diferencia de cuando no lo estaba , ahora si la utilizamos no tendremos el valor de la suma de (a+b), sino nos imprimirá en pantalla si es divisible o no entre 2, ejemplo:

>>>print suma(1,2)

no

Pero todavia no es facil comprender que es lo que pasa con todo esto, en la siguiente imagen pueden observar de una manera gráfica que es lo que la funcion (suma) puede pasar la función decoradora (numero_divisible):

En verde se encuentran los valores que podemos acceder desde el decorador, para codificarlos, procesarlos y luego retornarlos. Luego este otro grafico nos muestra como se reciben estos valores y se procesan, para retornar un valor totalmente nuevo.

Teniendo en el valor (f) el valor de (c) de la funcion de (suma), se evalua si f es divisible entre 2 (if f % 2 ==1) si es igual a (1) retorna  (“no”), de lo contrario retorna (“si”), si quisiéramos en vez de retornar un string (“si”) ó (“no”), convertir este decorador para hacer que la función (suma) siempre sea igualado a un valor par divisible entre 2. debe ser así:

Otro ejemplo es que el decorador retorne el valor de la (suma) multiplicado por el primer parámetro (a) pasado a la función (suma):

Así entonces hemos examinado tres ejemplos rápidos y sencillos, se puede decir que un decorador es una función construida para recibir otra función que no queremos modificar explicitamente y modificar sus resultados.