domingo, 25 de marzo de 2012

Seguridad en módems HG520 y HG530, Internet inalámbrico gratis.

Hace un año Humberto Ochoa publico una investigación donde se demuestra la vulnerabilidad de los módems Huawei HG520 y HG530, a través de un algoritmo logra obtener la clave WEP por default. Estos módems son usados por una compañía telefónica de México para brindar el servicio de internet. En la investigación de Humberto explica como se genera la clave por default. Si desean consultar el articulo completo lo pueden hacer en: mac2wepkey - Huawei generador de WEP default

Cuando uno quiere conectarse a la red inalámbrica INFINITUMxxxx solo basta con obtener el SSID y la clave WEP, que viene en una etiqueta adherida al modem.imagen SSID

Se observa en la imagen el SSID: INFINITUM1be2 con clave WEP por default: 3432333133.

Con el algoritmo se creo un generador de claves que esta en Python, link para descargar mac2wepkey.py

Probando el generador de claves

Descargar estos archivos:

  • mac2wepkey.zip
  • WIFi Locator.zip

Ambos archivos se pueden descargar desde Sky Drive Beto. El primero es el generador mac2wepkey.py, pero he creado un ejecutable y el segundo es un programa llamado WiFi Locator en su version portable.

  1. Descomprimir y ejecutar el archivo mac2wepkey.exe Ingresar la MAC y enseguida se muestra la WEP por default.

image

Para realizar este ejemplo se utilizo la MAC de la imagen SSID INFINITUM1be2 de este articulo y como podemos observar la WEP KEY obtenida coincide con la de la etiqueta del modem.

Si tienen un modem de estos modelos y no han cambiado su WEP KEY por default, prueben y … ¿funciona?

¿Y como saber la dirección física (MAC) del modem? Buena pregunta, Wi-Fi Locator muestra los SSID y la MAC correspondiente. Solo basta con ejecutarlo, dar cli en Refresh encontrar su SSID y sabrán cual es su MAC.

image

Observe en la imagen, cada SSID se muestra con una MAC Address.

Recomendación: Cambien su WEP KEY por default.

Claro siempre hay otras formas de obtener una contraseña para conectarse a la red inalámbrica del vecino.

miércoles, 21 de marzo de 2012

Sismo de 7.8 grados en México 20 de marzo del 2012

 

El año pasado en diciembre ocurrió un sismo que sacudió a México a las 7:47 pm, recuerdo que amigos y familia nos encontrábamos en una fiesta en casa.

A tres meses y unos días ocurre otro sismo en México con una intensidad de 7.8 grados con epicentro en Guerrero a las 12:02 pm. En un articulo de CNN México colocan “Es el temblor mas intenso después del registrado en 1985, que fue de 8.1 grados…” 

Mi anécdota sobre lo ocurrido el día de ayer, me encontraba en casa tenia un par de minutos de haber platicado con mi madre y ella me aviso que salía a un mandado fuera de casa.  En cuanto ella salió, tome una silla, me senté, recline la cabeza  y  sentí un ligero mareo, vi al techo y la lámpara estaba comenzado a moverse. ¿Que esta ocurriendo?

Para mi ver un foco balancearse es una señal muy clara de que esta temblando o bien ver una puerta que se abre y cierra.

–Si, estaba temblando.

Me levante de la silla y salí a alcanzar a mi madre, cuando llegue a la puerta que da a la calle ella ya estaba con mi hermano parados afuera de la casa.

Vecinos saliendo de sus casas, el camión repartido del agua purificada parado, trabajadores en la calle. Ver como los postes junto con los cables de energía eléctrica se movían de lado a lado es… un poco preocupante, pero al poco tiempo hubo un corte de energía eléctrica. Cuando el sismo termina lo primero en que piensas es en comunicarte con tus seres queridos que están fuera de casa. Vaya sorpresa cuando marcas desde tu celular (si el de la compañía que tiene el slogan “Todo México es territorio…”) no hay línea, sientes frustración, preocupación, ¿Que haces?; mantener la calma y pensar que todos tus familiares y amigos están bien, esperar a que se restablezca la energía eléctrica y la comunicación telefónica.

Va pasando el tiempo y te puedes comunicar para enterarte que tu familia y amigos están bien. Por esta vez paso y en general no hubo daños mayores.

viernes, 14 de octubre de 2011

Consumir un servicio web desde un cliente creado con AXIS2

 

Con anterioridad publique como Generar un WSDL desde un archivo.javaInstalar y configurar Apache Tomcat & Axis 1.x; Pero debemos obtener beneficios de un servicio web para esto necesitamos crear un cliente para consumir un WS publico.

Requisitos para crear el cliente

1) Tener un servicio web disponible el cual se va a consumir. Descarga el archivo.wsdl del servicio web a nuestra computadora.En este repositorio hay algunos http://www.service-repository.com/ y nos da la disponibilidad de dichos servicios.

2) Distribución binaria de Axis2. Descarga desde la pagina oficial.

3) IDE Eclipse.

Crear la variable de entorno AXIS2_HOME

La distribución binaria axis2 descargada previamente se descomprime y colocarla en el directorio raíz, renombrarla como AXIS2_HOME.

image

Lo siguiente es crear la nueva variable en el sistema, para ello Ir a Propiedades del sistema > Variables de entorno y crear una nueva variable del sistema con el siguiente nombre:

Nombre de la variable: AXIS2_HOME

Valor de la variable: C:\AXIS2_HOME

image

Modificar la variable del sistema Path agregando la ruta: C:\AXIS2_HOME\bin

image

Como saber si se creo correctamente la variable de entorno AXIS2_HOME ?

antes de seguir vamos a asegurarnos de que se han realizado correctamente los pasos anteriores.

Abrir un Símbolo del sistema en Windows y teclear la siguiente linea:

wsdl2java y se debe desplegar información sobre la instrucción anterior.image

¿ Es correcta la configuración ? sino revise los pasos anteriores.

Crear cliente por medio del IDE Eclipse

Omitiré muchas explicaciones sobre Eclipse, espero no tengan problemas. Este paso es uno de los mas laboriosos y enredados.

Abrir Eclipse Ir a la pestaña File > New > Java Project le damos un nombre al proyecto y clic en el botón FInish.

Dentro de ese proyecto colocaremos el archivo.wsdl del servicio que deseamos consumir.

Como se hace?

  • Solo deben copiar el archivo.wsdl ,
  • Ir a Eclipse, Seleccionar el Java project que acaban de crear
  • Dar clic derecho y elegir la opción  pegar.

Debe quedar algo similar:

image

Dejamos de momento Eclipse y abrimos nuevamente un símbolo del sistema para realizamos lo siguiente:

  1. Ir al directorio del workspace y buscar el proyecto que creamos en eclipse, en mi caso es: C:\Users\Alberto\workspace\consumir_WS> justo ahí se puede ver la estructura del proyecto java y el wsdl. image
  2. Generaremos el Stub para el cliente, estas son dos clases.java que se obtiene con la siguiente instrucción:

 wsdl2java –uri TopMovies.wsdl image

Por ultimo regresamos a Eclipse seleccionamos el proyecto y damos refresh mediante la tecla F5, debe aparecer un nuevo paquete que contiene las clases creadas en el paso 2.image

Sorpresa!!! están las clases pero marca un error, es porque se requiere agregar los archivos.jar. Para agregarlos:

  • Dar clic derecho en el proyecto
  • Ir a la opción Build Path > Add External Archives… 
  • En la ventana siguiente ir a la ruta C:\AXIS2_HOME\lib
  • Seleccionar todos los archivos.jar para agregarlos al proyecto.

image

 

Como se puede ver se agregaron los archivos de la librería de axis2. Y los errores, han desaparecido!!!

 

 

 

 

 

 

 

 

 

Clase Test.java

Por ultimo se debe crear una clase Test.java dentro del proyecto para probar que se puede consumir el servicio web. Aquí les dejo el código de la clase Test.java.

image

Es fácil de analizar la clase Test, se crea un objeto TopMoviesStub y se utiliza los métodos GetTop10 y GetTop10Response del WS. Para comprender que parámetros recibe y que devuelve cada uno de los métodos es recomendable analizar el wsdl del servicio web. El que estoy consumiendo para este ejemplo esta en: http://www.service-repository.com/service/overview/-1851638808

Ejecutar Test.java y se muestra el resultado de consumir el servicio web

image

¿ Alguna duda ? …

viernes, 7 de octubre de 2011

Generar un WSDL desde un archivo.java

 

Para realizar esta pequeña practica se requiere tener instalado y funcionando:

  • Apache Tomcat
  • Axis 1.x.x
  • Maquina virtual de JAVA

 

Para crear el WSDL lo haremos a través de un archivo.class este ultimo archivo se obtiene después de compilar el archivo.java, así que primero  el archivo.java del cual partir.

1) Crear el archivo.java

En un editor de texto capturamos las siguientes líneas y Guardar como saludo.java

//Jose Alberto Yañez Castillo

public class saludo {

    //método que recibe un String y devuelve un String concatenado con Hola

    public String hola(String msg){
        return "Hola" + msg;
    }

}

El servicio solo tendrá un método que al ser invocado devuelve algo parecido al famoso “Hola Mundo”.

(Demasiado sencillo para estas alturas, pero fácil de comprender).

2) Crear el archivo.class

En un Símbolo del sistema nos posicionamos en la ruta donde este guardado el saludo.java

image

En mi caso esta en la ruta C:\Documents and Settings\Alberto\Mis documentos

Para compilar saludo.java lo hacemos con el siguiente comando:

javac saludo.java

Sino se muestra nada en la ventana después de teclear el comando javac es que se realizo correctamente y revisamos que se creo el saludo.class

image

Hasta aquí todo sencillo…

3) Crear el saludo.jws

Realizamos una copia del archivo saludo.class pero le cambiamos la extensión .class  a  .jws. Este archivo saludo.jws lo colocamos en la ruta C:\apache_tomcat\webapps\axis

image

Ahora se necesita otra copia de saludo.class pero que debe ser colocada en C:\apache_tomcat\webapps\axis\WEB-INF\jwsClasses a este no se le cambia la extensión.

image

4) Iniciar Apache Tomcat

Debemos iniciar el servidor Tomcat y abrir el navegador para poder ver el wsdl de saludo.jws que acabamos de crear.

Recuerden que es:

http://localhost:8080/axis/saludo.jws

Listo… tenemos el WSDL del servicio saludo.

image

Supongamos que este  fuese un WS externo (que esta publicado en internet) y se quisiera descargar el WSDL a nuestra computadora, entonces vamos a la pestaña Archivo > Guardar como… del navegador que utilizamos y en la ventana siguiente colocamos

Nombre: saludo.wsdl

Tipo: Todos los archivos

image

Y Guardar, tenemos el WSDL del servicio saludo para trabajarlo en nuestro servidor local.

El siguiente paso será consumir el servicio a través de un cliente.

lunes, 3 de octubre de 2011

Instalación y configuración de Apache Tomcat 7.0 & Axis 1.x


Apache Tomcat es un contenedor de servlets que funciona en cualquier sistema operativo pues esta escrito en Java. Para poder instalar Tomcat primero debemos asegurarnos de tener instalada la maquina virtual de Java.
Nota: En la entrada Configurar variables de entorno para Java JDK en Windows 7 se mostro como configurar las variables de entorno para Java.

1) Descargar los archivos necesarios

Necesitamos descargar el archivo comprimido de Apache Tomcat 7.0 y el de Axis 1.x.
Los archivos que he utilizado los pueden obtener en la siguiente dirección skyDrive Alberto



2) Descomprimir Apache Tomcat

Lo recomendable es descomprimir el archivo apache-tomcat-7.0.14-windows-x86.zip en el directorio raíz del disco duro. Una imagen para ejemplificar:imageLa carpeta descomprimida se renombro y esta en la ruta C:\apache_tomcat



3) Descomprimir Axis

En la ruta C:\apache_tomcat\webapps descomprimir el archivo axis.zip  image



4) Configurar variables de entorno

Se deben crear dos nuevas variables de entorno: JAVA_HOME  y CATALINA_HOME.
4.1 Crear la variable de entorno JAVA_HOME
  1. Ir a Propiedades del sistema > Opciones avanzadas y seleccionar Variables de entorno.
  2. En el recuadro de Variables del sistema agregamos Nueva variable…
  3. Nombre de la variable : JAVA_HOME                          Valor de la variable: C:\Archivos de programa\Java\jdk1.7.0
Nota: La ruta del directorio Java es la que esta por default cuando se instala, si la han cambiado deben colocar la que ustedes cambiaron.
image
 
4.2 Crear la variable de entorno CATALINA_HOME
Se debe seguir  el mismo procedimiento al crear la  variable JAVA_HOME, pero cambiando los siguientes valores:
Nombre de la variable : CATALINA_HOME
Valor de la variable: C:\apache_tomcatimage

Para la variable CATALINA_HOME debemos modificar la variable del sistema  Path agregando ;C:\apache_tomcat\binimage



5) Iniciando Tomcat

Ahora solo resta iniciar Tomcat, pero antes de iniciar chequemos la lista de los pasos de instalación y configuración:
  1. Descomprimir los paquetes de Tomcat y Axis en sus respectivas rutas.
  2. Crear la variable JAVA_HOME.
    • No se configuro la variable JRE_HOME pues el paquete instalado es JAVA JDK, si se hubiera tenido instalada la versión JAVA JRE si se configura la variable JRE_HOME en lugar de JAVA_HOME.
  3. Crear la variable CATALINA_HOME y modificar la variable del sistema Path agregando la ruta correspondiente a la carpeta \bin de Tomcat.
Todo se realizo correctamente…

Abrimos un Símbolo del sistema e ingresamos el siguiente comando        %CATALINA_HOME%\bin\startup.bat image

Inmediatamente se ejecutara Tomcatimage

En la barra de dirección del navegador ingresamos la dirección http://localhost:8080/ y Tomcat esta funcionando.image



 

6) Y Axis?

Axis también esta listo, ingresamos a la dirección http://localhost:8080/axis/  image
Ahora ya tenemos instalado Tomcat y Axis 1.x. También un entorno listo para poder comenzar a trabajar con WS.
Estos pasos se probaron en Windows XP y Windows 7, es la misma serie de pasos a seguir.

sábado, 1 de octubre de 2011

Configurar variables de entorno para Java JDK en Windows 7.

 

Java Development Kit o JDK, permite crear, compilar y ejecutar aplicaciones Java.

JRE, Java Runtime Environment es solo un entorno de ejecución para programas hechos en java.

Si aún no se tiene JDK, se descarga en la siguiente dirección:

http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html

La versión Windows x86 para arquitecturas de 32-bits y Windows x64 para las de 64-bits.

Antes de comenzar a configurar las variables de entorno debemos localizar la ruta donde se tiene instalado Java, por default es:

C:\Archivos de programa\Java  o  C:\Program Files\Java

Variables de entorno

A través de la ventana Ejecutar de Windows abrimos las Propiedades del sistema, utilizando el siguiente comando: sysdm.cpl.

image

Al dar Aceptar se abre la ventana de Propiedades del Sistema, buscamos la pestaña Opciones avanzadas y clic en el botón de Variables de entorno.

image

Configurar Variable del sistema Path

En la ventana variables de entorno observamos dos recuadros el de Variables de usuario… y el de Variables del sistema, es sobre este ultimo que vamos a buscar la de nombre Path  damos clic en el botón editar.

image

Si observamos la variable Path en el campo Valor de la variable, tiene  distintas rutas separadas por ‘;' (punto y coma) después de la ultima ruta agregamos la ubicación de la carpeta bin que  se encuentra dentro de Java\jdk1.x.x\bin

Un ejemplo estaría mejor, suponiendo que Java esta instalado en C:\Program Files\Java\jdk1.6.0_17\bin esta ruta es la que agregamos en el campo Valor de la variable, importante separar con un ‘;

image

en mi caso la ruta cambio de C:\Program Files\Java\jdk1.6.0_17\bin  a C:\Program Files (x86)\Java\jdk1.6.0_17\bin por que mi mi arquitectura es de 64-bits y se instalo la  versión 1.7.0, el punto es que la variable apunta a la ubicación del directorio \bin.

Nota: En mi caso hay más valores de variable después de la de java y por eso existe otro separador de variables ';’  Pero Si para ustedes este es su ultimo valor de la variable no agregar ‘;’  (punto y coma).

Configurar Variable del sistema CLASSPATH

De forma similar que se configura Path se hace con Classpath, pero esta vez son dos rutas las que se agregan:

C:\Program Files\Java\jdk1.6.0_17\src.zip

C:\Program Files\Java\jdk1.6.0_17\lib\tools.jar

Amabas separadas por ‘;’ y al final de ellas colocaremos un ‘;.’ (punto y coma más punto). La variable Classpath quedaría así:

image

Nota: Al final debe agregar ‘;.

¿Se configuro correctamente?

Abrir el símbolo del sistema y simplemente teclear java – version

image

Espero les haya servido y pronto poder colocar como se configuran las variables para el Tomcat y el Axis. Esto es lo que utilizamos en la clase de Interoperabilidad y me sirve de repaso.

domingo, 25 de septiembre de 2011

Processing, Un lenguaje de programación y entorno de desarrollo.

Diseñado por Ben Fry y Casey Reas en el 2001, ambos estudiantes del MIT Media Lab.

Processing

Processing fue inicialmente creado para servir como “sketckbook” (cuaderno de dibujo) en proyectos multimedia e interactivos así mismo para facilitar el aprendizaje de programación en un contexto visual.

Para quienes programan en lenguaje de programación Java es fácil adentrarse ya que esta basado en este. Processing puede ejecutarse desde plataformas como Mac, Linux y Windows. Se distribuye bajo licencia GNU GPL.

Inicialmente las primeras versiones del IDE de Processing solo tenían el modo de uso Standard, a partir de la versión 1.5.1 se agrega el modo Android este permite crear aplicaciones para dispositivos que cuentan con este sistema operativo, ahí no terminan las sorpresas, recientemente se libero la versión 2.0alpha1 de Processing a la cual se le agrega el modo JavaScript, esto brinda la oportunidad de que la aplicación funcione en navegadores web.

Libros, Manuales y Tutoriales para Processing

Inicialmente la pagina de Processing cuenta con una buena cantidad de tutoriales en la siguiente dirección : http://processing.org/learning/

Si lo que buscan es un libro o un manual pueden ver los que están disponibles acá: http://processing.org/learning/books/

Para principiantes recomiendo el libro Learning Processing, esta bien estructurado además contiene ejemplos y ejercicios. En su pagina pueden descargar gratuitamente el primer capitulo, ver los ejemplos y ejercicios que contiene el libro. http://www.learningprocessing.com/

Programación orientada a objetos en Processing

Un ejemplo rápido tomado de la pagina de Processing Café

En la siguiente imagen se define un clase llamada Pelota con su correspondiente constructor y un método llamado paint el cual se encarga de dibujar una circunferencia a partir de los parámetros dados en el constructor.

El código comentado facilita su comprensión, además es muy sencillo el ejemplo.

2

Al dar clic en el botón Run se ejecuta el programa y obviamente lo que se dibuja es una circunferencia.

3

Ejemplo sencillo para comenzar a practicar con Processing, no?
Esta entrada solo fue para dar a conocer un poco de Processing, si les sirve ahí esta.