sábado, 17 de diciembre de 2011

GPS Garmin nüvi 1390t & Como instalar mapas

Hace tiempo que me tocó probar distintos dispositivos gps. Y hablo de gps reales, no el mapa de google que traen los celulares. Algunos con mas opciones que otros, pero tratándose de mostrar tu locación y la ruta realizada, todos completamentes competentes.
Creo que, lo que hizo tan populares a los GPS fue la ayuda que otorga a los conductores y viajeros.
Hoy tuve la posibilidad de tener uno nuevo en mis manos, el nüvi 1390t. Y para serles franco no existe mucha diferencia entre los modelos anteriores. La interfaz es la misma, el tamaño prácticamente no varía y el diseño es similar. Pero veamoslo mas detalladamente:


En la caja junto al gps viene el cargador para auto, una base para el soporte, el soporte con sopapa para el parabrisas, un cable usb y un adaptador de memoria SD, con una memoria microSD de 2Gb.
Algo que me llamó la atención es que no traía CD con lo programas y controladores, ni un manual. Garmin hace ya un tiempo dejó de dar soporte de sus programas en CD y resulta realmente molesto que averiguar que programas se necesitan y tener que descargarlos de su pagina.


Ranura para memoria microSD

Algunas características destacables son
-Pantalla de 4 pulgadas
-Tamaño de 12,2 x 7,5 x 1,6 cm
-Duración de bateria de Aprox. 4 hs
-Mapas preinstalados (Segun el pais donde se compre).
-Memoria externa de hasta 2gb y adaptador (Aveces no incluida).
-Indicación por Voz, con voces personalizables.
-Bluetooth para utilizar el celular con manos libres. (No le veo gran utilidad, no permite control por voz).
-Y los servicios conocidos, ubicación actual, búsqueda de ruta mas económica, indicación de ruta, visión de cruces, indicación de carril, puntos de interés, control de velocidad, bloqueo antirrobo y Reloj mundial, conversor de moneda, medidas y calculadora.

Desventajas:
-No trae manual ni programas.
-No tiene reconocimiento de voz.
-No calcula rutas a partir del trafico.
-No incluye información meteorologica.
-No incluye la función para encontrar el automovil.
-No tiene reloj Alarma.
-No reproduce mp3.
-No tiene salida externa de audio.
-No presenta mapas con relieves ni edificios en 3D.

A pesar de las desventajas, con todas las características que incluye hace falta destacar su precio en comparacion con otros modelos que pueden llegar a costar hasta el cuádruple.
---------------------
Instalación de mapas:

Como el dispositivo no fue comprado en el país, era necesario instalar los mapas.
Según me contaban el vendedor había dicho algo como "Para poder usarlo van a tener comprar los mapas e instalarlos". No se como será en otros países, pero acá en argentina tenemos el proyecto MAPEAR que es la comunidad mas importante a lo que se refiere en Cartografía. E indican que la instalación de mapas debe ser gratuita.

En primer lugar hay que descargar el producto Training Cente de Garmin. Una vez instalado aparecerá la siguiente ventana.

Esto es solo para que funcione de forma correcta el otro programa.
Cerramos la ventana, y descargamos e instalamos MapSource.
Aclaración: Este no se podrá instalar si no tenemos una versión anterior. Por lo que hay que extraer los ficheros en una carpeta con Winrar y ejecutar el archivo "MSmain.msi".

Ahora solo nos queda por descargar los mapas. Para ello entramos en la pagina de Mapear y descargamos la versión que queramos, náutica, terrenos etc. En este caso la de rutas y ciudades.

Una vez instalada abrimos el MapSource, vamos a la pestaña "ver", la opción "pasar a producto" y seleccionamos el producto.

Una vez realizado esto, nos aparecerán los mapas. Los seleccionamos con la herramienta polígono al sector que queramos. Y con el GPS conectado al PC, hacemos click en el icono de cargar a dispositivo.

--------------------------
Y eso es todo. Como los link de descargas siempre se actualizan y para que no tengan que registrarse y andar buscando los programas. Subo un rar con todo lo necesario. Incluye unas POIS y un generador de claves para desbloquear mapas.
*Los .rar contienen registro de recuperación en caso de que presenten algún error.

Saludos

martes, 6 de diciembre de 2011

Facebook virus y estafas

Ya son mas que conocidas la diferentes estafas que se aprovechan las redes sociales para transmitirse de forma masiva. Anteriormente se utilizaban las mismas paginas de aplicaciones, y aun muchos estafadores siguen usándolas para engañar a cualquier usuario indefenso y así poder propagarse.
¿Que beneficio sacan de ello, si no es hacer daño?
Si nos ponemos a revisar cada uno de ellos nos daremos cuenta que existen diferentes modalidades. -La mas utilizada es para pishing, poder robar cuentas bancarias deja muchos dinero y para poder obtener datos de alguna cuenta hay que buscar entre muchos usuarios.
-La otra similar se trata de una estafa directa, haciendo que el usuario mande dinero.
-Y por ultima la mas benigna es la llevar a usuarios a paginas con publicidades y AdSense, donde ellos están registrados y les pagan por cada usuario que entre.
---------------------------
La revancha del creador faceplus
Tiempo atrás uno de los temas mas spamedao hablado, era el supuesto "faceplus". Una aplicación que supuestamente permitía costumizar o personalizar tu perfil de facebook. Se instalaba la aplicación e inmeditamente, esta mandaba una publicacion a todos tus contactos para que la descarguen. Obviamente la cantidad de spam que generaba era enorme.

Hace un tiempo empecé a eliminar "paginas de facebook" por la cantidad de publicaciones de videos, y que generaba una especie de spam indirecto ya que la idea de facebook es mostrarte la actualizacion de tus contactos. Pero después empecé a notar publicaciones de "videos" de persona, algunos con mensajes en un español medio centroamericano y se me ocurrió investigar.


Yendo a la pagina en cuestión, que casualidad me faltaba un plugin novedoso de youtube, aunque todos usamos youtube normalmente.


Veamos un poco el código:


1-En primer lugar tenemos que lo que se muestra es un iframe de una pagina llamada "fanvisitas" así que el código del plugin esta ahí.
2-En segundo lugar tenemos un script de adsense google. Está bien, el quiere ganar algo de dinero, después de todo se la pasa compilando vídeos ¿no?

En la pagina del enlace:




¿Porque los plugins de youtube estarían alojados en fanvista? ¿No deberían descargarse directamente desde el servidor de youtube? Algo raro ¿No?. Entonces entremos a la pagina de fanvisitas y veamos que podemos encontrar.

Ajá!, el autor de la pagina anterior es el mismo de FacePlus. Bueno al menos el tubo la consideración de advertírtelo:

---------------------------
Otra cosa, si hacemos un whois al dominio nos saldrá algo así
Domain Name: FANVISITAS.COM
Registrar: DIRECTI INTERNET SOLUTIONS PVT. LTD. D/B/A PUBLICDOMAINREGISTRY.COM
Whois Server: whois.PublicDomainRegistry.com
Referral URL: http://www.PublicDomainRegistry.com
Name Server: NS5.SAAPY.COM
Name Server: NS6.SAAPY.COM
Status: clientTransferProhibited
Updated Date: 05-dec-2011
Creation Date: 07-nov-2011
Expiration Date: 07-nov-2012
Ahora si averiguamos dentro del servidor sobre datos de titular de esta pagina

Name: Domain Admin
Company: PrivacyProtect.org
Address: ID#10760, PO Box 16
Note - All Postal Mails Rejected, visit Privacyprotect.org

Eso quiere decir que está protegida. No vaya a ser que alguien quiera tomar represalias. ;)
---------------------------------
Actualizacion (11/12):
De la misma forma aunque un poco mas evidente

El código de fuente no lo dejo porque es bastante similar al anterior. Utiliza un fondo falso de facebook, nada mas complejo que eso. El falso plugin se descarga de un servidor vevideo.com.es.
Si queremos entrar a la pagina principal esta nos redirecciona a otra que te pide tu usuario y contraseña de hotmail, es genial! no solo busca transmitir malware y estafar. Sino que también te quiere robar el correo electrónico.

Para ponerle un poco de humor, quieres saber quien es el encargado de esto:
http://www.whois.net/whois/servervideotube.com

Actualizacion (19/12): Veo que siguen apareciendo mas paginas, esta es otra http://vk3.me/es/?3090. Con un aspecto similar a youtube No son mas que imágenes de fondo. En este caso, tanto la pagina como los plugins están alojados en el mismo servidor.

Saludos y tengan cuidado con lo que instalan.

viernes, 25 de noviembre de 2011

Baterias de notebook - Upgrade Msi

Recuerdo en el colegio una vez haber escuchado que "Una batería es un conjunto de pilas". Y no estaban tan errados, si bien algunas se constituyen de celdas electroquímicas otras son literalmente un grupo de pilas.
Actualmente se utilizan las baterías de Iones de litio, y con ella se caen todos mitos del mantenimiento de las baterías.

El efecto memoria: Había que descargarlas por completo. No hay nada mas raro y falso. La primera vez que lo escuché no le encontraba explicación pero me lo habían explicado en la técnica. Esto sucedía cuando se formaban unos cristales en el interior, en este caso estábamos hablando de las baterías de níquel cadmio (Ni-Cd). Tiempo después fueron reemplazadas por baterías menos contaminantes y sin este efecto, por las de níquel e hidruro metálico (Ni-Hm).
-Las baterías de litio no presentan efecto memoria, pero si algo que denominaron pasivacion. Debido a su química interna se forma cloruro de litio, que se soluciona descargando y cargando completamente la batería mas o menos una vez al mes. Esto se puede obserbar en las notebook cuando no carga al 100% y queda algo así como 98% ya que se descalibra.
La carga inicial: Si bien varios fabricantes lo recomiendan, no es mas que otro mito heredado de las antiguas baterías. Las baterías de Ni-Cd y Ni-Hm que constituían aparatos electrónicos no eran tan "inteligentes" como hoy en día. Hoy en día los dispositivos son capaces de detectar la carga y cortar el paso de corriente (tal vez alguno de nosotros tenga un cargador de pilas que se apaga automaticamente y/o un led que avisa).
Tener enchufado el cargador con la batería es perjudicial: Como comenté anteriormente esto sucedía con las baterías de viejas. Las baterías de litio comienzan a fallar por distintos factores como el recalentamiento, la humedad etc. Aunque algún fallo en el cargador o sobrecarga puede afectar a la batería.

La baterías de la notebook son baterías inteligentes, dentro de las mismas se encontrar pilas a las que se denomina celdas junto a un circuito electrónico que comprueba su estado y otras variables.

¿Puedo reemplazar las pilas?
Las baterías tienen un ciclo de vida (de carga y descarga), y los fabricantes son muy consiente de ello. El circuito entre otras cosas posee:
-Un integrado, (en mi caso bq29330) un protector y medidor de carga mediante una interfaz serie SMBus. Controlando los ciclos de carga y descarga. Y se debe resetear por software.
-Dos transistores mosfet TPC3026, para cortar los ciclos de cargar.
-Un thermistor y un fusible térmico para el exceso de temperatura.



Cuando el circuito integrado decide que ya se cumplió la cantidad promedio de ciclos, manda una señal al Pc y este indica que hay que reemplazar la batería por una nueva. El contador interno evita que se siga utilizando la batería para evitar fallas (por mas que las pilas aun estén bien), y solo puede ser reseteado con una memoria especializada la cual obviamente los fabricantes no lo proporcionan al publico.
Otro tema es la temperatura, si existe un exceso de temperatura en las pilas el fusible se corta evitando posibles daños. Casos de incendio existen muchos, inclusive muchas veces las compañías fabricantes de notebook tienen que retirar del mercado miles de equipos que vienen con defecto de fabrica. Si no me creen escriban "batería notebook incendio" en el buscador y encontraran las noticias.

La batería en su tiempo de vida tiene 4 estados.
-El estado óptimo, donde funciona correctamente o con una pérdida casi imperceptible.
-El estado intermedio de uso, donde no dura la misma cantidad de tiempo que cuando era nueva, pero sirve momentaneamente. Se detecta fácil debido que se apaga antes de lo indicado.
Se puede arreglar temporalmente colocándola en el freezer un día y luego aplicarle un ciclo de carga y descarga completa. Esto se debe a los efectos expansión y contracción dentro de la celda mejorando el movimiento de los iones.
-El estado critico, donde la autonomía es mínima. El equipo avisa mediante una señal (led, sonido, o mensaje en la barra de inicio) que la batería se debe reemplazar.
-El estado no funcional, la batería no puede mantener la computadora prendida o no es reconocida por el sistema operativo.

Se que existen lugares para comprar las pilas y que reemplazan las celdas. Inclusive en Internet muestran como hacerlo uno mismo. Pero si nos fijamos en lo anterior, esto no es mas que una solución temporal y una perdida de dinero. A estas se las conoce como "38650" y son muy utilizadas en linternas y láser de alto alcance. Tres pilas de solo 2800mAh ronda los 120$, mientras que una batería extendida de 6 celdas (4400mAh) cuesta el doble (tomando como referencia el precio de 6 pilas). Y una de 9 celdas solo un poco mas. Es decir con un poco mas de dinero podemos lograr una mayor autonomía.

-Batería msi original de 3 celdas:
autonomía: 2200mAh
peso: 185g
tiempo: (uso normal, Internet, 50% de brillo)
2.20 hs o 2.30 hs aproximadamente
-Batería msi 6 celdas:
autonomía: 4400mAh
peso: 322g
tiempo: (uso normal, Internet, 50% de brillo)
5.00 hs o 5.15 hs aproximadamente
-Batería msi 9 celdas:
autonomía: 7800mAh
peso: 505g
tiempo: (uso normal, Internet, 50% de brillo)
7.30 hs o 7.45 hs aproximadamente

Como ven, se puede sacar mucho provecho de las mismas. Los resultados varían según lo que se esté corriendo. Una aplicación excelente para medir la autonomía y gratuito es Baterry Eater, que nos permite hacer benchmark y sacar resultados reales.
Si queremos cuidar nuestra batería, una herramienta avanzada excelente (aunque de paga), es Battery Optimizer. No solo monitorear la carga, si no también controlar el estado de la misma y con la capacidad poder optimizar su rendimiento. Si no deseamos pagar podemos optar por una similar llamada Battery Care aunque no tan potente.

El cargardor!
Existe la creencia de que el cargador debe ser estrictamente el que vino de fábrica, como también aquellas personas que piensan que el cargar solo varía la ficha. La realidad es que existes así como un grupo de voltajes mas utilizados, por ejemplo los mas comunes son de 15, 16, 18, 19, 20, 22 y 24v pero las vaio utilizan su propia medida 19,5v. O las fichas, cada fabricante utiliza una en particular. Por lo que un cargador original siempre va a salir mas costoso que uno universal. Y muchas veces un cargador universal puede sacarte de apuros.
Una muy buena idea también es conseguir un cargador universal que se conecte al auto. Para realizar wardriving (búsqueda y mapéo de redes inalámbricas), para realizar auditorías, en caso de viajar o de necesitar utilizarla de forma urgente etc.


Una recomendación con respeto a los cargadores, traten de cuidar los cables: mantener estiradas donde están las uniones, no doblarlos demasiado superando su ángulo critico, y estirarlos sin que se tuerza a la hora de usarlos. No solo por que se puedan llegar a cortar, si no que pequeños cortocircuitos pueden dañar el transformador.
-------------------

Espero que les haya gustado. Con esto continuo con las entradas [Preparando un ataque real], la anterior de esta serie de post fue
[Modding] Agregar una antena al portatil, Msi U100.
Saludos

jueves, 24 de noviembre de 2011

[Hack] Las paginas juegan con nuestros datos -Obtener Contraseñas-

Hace un tiempo hablé de como obtener datos de elementos html a la hora de diseñar una web, y luego sobre lo cuidadoso que hay que ser al usar las variables como $_server[] en php.
Hoy un poco mas allá le voy a mostrar ejemplos reales, donde las paginas administran nuestra contraseña de forma insegura.
---
Verán, existen 5 casos prácticos de como autentifican nuestra contraseñas.

1)"Envían la contraseña en texto limpio y la comparan con el texto almacenado": Este es el peor de los casos, nuestra contraseña se envía en texto sin codificarse y en la base de datos existe nuestra contraseña de la misma forma. Es decir que nuestra contraseña viaja por la red y cualquiera (que sepa como) o cualquiera que pueda acceder a la base de datos, puede ver las contraseñas y el usuario.
2)"Envían la contraseña en texto limpio y la almacenan codificada": De esta forma, la contraseña al menos, quien tenga acceso a la base de datos no podrá saber nuestra contraseña.
3)"Envían la contraseña cifrada y se decifra en el servidor": La contraseña viaja cifrada y al interceptar los datos no es legible a simple vista, pero quien tenga acceso a la base de datos sabe nuestra contraseña.
4)"Envían la contraseña cifrada y la almacenan cifrada": Si bien nadie tiene acceso a la contraseña real, un atacante podría modificar la cabecera para enviar el dato codificado y lograr acceder a nuestra cuenta.
5)"Utilizar un certificado de autenticación": Este es el ejemplo claro de hotmail.

Ahora que entendieron los diferentes casos, hay que aclarar que existen diferentes algoritmos de encriptacion.
-Algoritmos débiles: Por lo general se cifran y decifran con el mismo algoritmo. Son conocidos. Ejemplo base64 .
-Algoritmos fuertes: De hash, permiten cifrar un texto dando como resultado una cadena de caracteres de una longitud determinada y no son capaces de decifrarce. Al tener una longitud determinada para "infinitas combinaciones de texto" presentan colisiones de de hash es decir alguna combinación se repite (como MD5 vulnerable a la paradoja de cumpleaños) pero que se soluciona al añadirle una cadena llamada SALT.
Ejemplos MD5, SHA-1, BLOWFISH, AES etc.

---
Los Sniffers:
Antiguamente cuando no existían las redes wirelles como hoy en dia, y la velocidad de conexion era lenta. Los dispositivos mas conocidos para conectar varias maquinas eran los Hubs, los expertos sabían que los paquetes de una maquina se enviaban a todos los dispositivos conectados al hub (inundación de paquetes). Por lo tanto, aquel que modificaba la tarjeta ethernet para trabajar en modo promiscuo y capas de reconocer los paquetes, podía ver todo el tráfico y con ello las contraseñas. Con la llegada de los switch y los routers esto cambió. Capaces de distinguir los equipos, el protocolo ARP de resolución de direcciones en realidad solo lo dificultó un poco.
¿Estamos realmente seguros?
La realidad que un atacante puede modificar la tabla ARP (envenenamiento arp).
Cuando una ip no se encuentra en la tabla, se envía la ip a todas las maquinas y el equipo responde con su direccion mac. De esta forma, se engaña al equipo haciendo que el trafico pueda pasar previamente por el equipo atacante (man in the middle) y luego reenviar los datos sin que el usuario se lo sospeche.
Para que esto se puede realizar, las tarjetas de red deben soportar captura de paquetes, la librería winpcap realiza la conexión a bajo nivel con la tarjeta de red.
Si te gusta la programación como a mí, puedes programar en C# tu propia utilidad para capturar paquetes y filtrarlos. En cambio si eres un Script kiddie seguro quieres un programa, en ese caso debes bajarte un sniffer. Lamentablemente como borre la aplicación que estaba programando voy a utilizar "cain y abel" como ejemplo.

Como esto no es un tutorial del cain y abel, simplemente vamos a analizar las salidas.

  • En esta imagen se puede ver como los datos son pasados en texto limpio.



  • En la primera imagen la pagina vulnerable, luego la contraseña enviada en el conocido base64, y desencriptada al final.




  • En estas, se observa que está codificado en md5. Con un poco de suerte, alguna servicio de descifrado encontrará el password. O con un Pc lo suficientemente potente y una base de datos de tablas rainbow el password saldría en unos segundos o minutos.

  • Ejemplo de windows live en la maquina víctima. Estos certificados también son vulnerables pero ya es otro tema.

Si te pareció impactante tambien deberias ver como pueden interseptar sms online. Por ultimo me queda decir no confíen sus datos a una red publica, asegúren su red. Y a todos los diseñadores y webmaster utilicen encriptacion y comprobación, tanto del lado del login como del lado del servidor. Después de todo, los usuarios son los que hacen a las paginas.

martes, 8 de noviembre de 2011

[Hack] ejecucion de codigo en URI

Como una variación a lo visto en [hack web parte2] filtros & pagina owned , hoy les voy a hablar de cross site scripting en URI. Tal vez les sea mas conocido el termino URL, como la dirección a un sitio determinado, en realidad la URL es un tipo de URI. La diferencia fundamental es que la URI puede incluir una subdirección de un elemento. De cualquier forma estamos hablamos de la dirección de un recurso web.

La diferencia con esta vulnerabilidad y la vista anteriormente es que en la anterior, los datos se enviaban desde un campo de texto a través de un método get o post. En esta, un error en el tratamiento de las variables en una pagina php, nos permite incluir código en la dirección web. (No confundir con método get donde las variables se pasan como parámetro por la dirección).

Cuando se crea una pagina php tenemos métodos que nos facilitan información a la hora de programar. Uno de tantos es $_SERVER que contienen información de las rutas y cabeceras. Este es un array al cual, se le pasan diversos elementos de la siguiente forma $_SERVER['elemento'].
El problema surge cuando este método se lo incluye directamente en un formulario intentando optimizarlo.
Formulario común:
<form method="POST" action="Dirección_donde_se_envían_los_datos">...
Formulario común en php:
echo "<form method="POST" action="Dirección_donde_se_envían_los_datos">"; ...
Formulario en php optimizado:
echo "<form method="POST" action=\"".$_SERVER['elemento']."\">"; ...

Se usa el método $_SERVER['elemento'] para añadir una dirección al campo action del formulario. El 'elemento' determina que elemento del arreglo se necesita. De esta forma
$_SERVER['PHP_SELF'] :
Devuelve como resultado el documento que se está ejecutando.
$_SERVER['REQUEST_URI'] :
Devuelve la dirección de donde se ingresó.
$_SERVER['SCRIPT_FILE'] :
Devuelve el documento de donde se ejecuta el script php.
$_SERVER['SCRIPT_FILENAME'] :
Devuelve la dirección donde se ejecuta el script php.

¿Que tiene de vulnerable?
Todavía no se dieron cuenta?, de esta forma esta permitiendo introducir código directamente en el la pagina a través de la barra de direcciones.
Un atacante podría cerrar la etiqueta introduciendo />"> al final de la dirección y luego inyectar el exploit, pudiendo robar cuentas, transmitir malware y todo ello.





Aclaración: Esto no es un tutorial, Gonzac Studios no se hace responsable por el mal uso de este material.

Saludos.

lunes, 31 de octubre de 2011

Acceder a elementos de una etiqueta html con JavaScript

Si bien esto suena sencillo, en Internet se confunde mucho. Tanto los documentos html como los xml funcionan a partir de "etiquetas", estas indican no solo el tipo de contenido sino también, permiten estructurar el documento en forma de árbol (La diferencia entre estos dos lenguajes y su utilizacion se escapan al contenido manual). Una etiqueta se estructura de la siguiente forma:

<nombre_tipo atributo="valor" evento="valor"> Contenido <\nombre_tipo>

Así en html las etiquetas representan un tipo definido de elemento con sus diferentes atributos o propiedades (estilo, nombre, identificador etc) y funciones o evento. En xml los tipos de etiquetas los define el diseñador, y se lo puede ver como una representacion de un objeto real y sus diferentes propiedades. Y los atributos son mas bien especificación (por ejemplo Una persona tiene nombre,apellido y teléfono. Este puede ser de tipo móvil o de casa). En caso de que se desee representar un "objeto html" se debe especificar dentro de etiquetas description el namespace, pero ese es otro tema.

Identificar un elemento.

Existen muchos tipos de etiquetas y cada una tiene un tipo definido de atributos, aquellas que no expresan el formato de texto, también pueden no incluir atributos. El problema surge cuando se quiere utilizar el contenido de ese elemento o sus propiedades. Por ello siempre es recomendable colocarle a las etiquetas html un atributo id="nombre_identificador". Y acá algo importante., los elementos del html se definen por un "name" y un "id", a esto hay que prestarle mucha atención ya que, Internet explorer confunde estos dos y en el caso de tener 2 etiquetas una con atributo "name" igual al "id" de otra etiqueta esto me daría un error. Por lo que recomiendo, directamente no utilizar name o que id y name tengan el mismo valor.


Llamar a un elemento
Cuando queremos "llamar" a un elemento a partir de un evento o un script en javascript, existen varios casos:

-Llamar un elemento dentro de si mismo: Para esto se utiliza el operado THIS, que indica que se va a referenciar atributos de si mismo, ejemplo
<div style="padding:valor" onclick="this.style.padding='valor_nuevo'"valor"> Contenido <\nombre_tipo>
En este ejemplo se crea una seccion y al hacer click se cambia su tamaño.

-Llamar a un elemento de mi documento: En caso de estar de utilizar JavaScript, simplemente se referencia utilizando document y para poder reconocerlo tenemos 3 formas.
document.getElementById('valor_id')
document.getElementByName('nombre')
document.getElementByTagName('nombre_tag')
Así obtendremos nuestro elemento html y podremos acceder a sus atributos.
El ejemplo anterior document.getElementById('pos').style.padding="nuevo_valor";

Algo a tener en cuenta: cuando queremos obtener el valor de por ejemplo un campo de texto debemos saber que dato se necesita realmente.
-Si inicializamos el campo con un contenido en particular ejemplo <imput type="text" id="campo" value="texto_inicial" > lo obtenemos..
var texto = document.getElementById('campo').getAttribute;
-Mientras que si queremos obtener los datos que se ingresan en el campo de texto sería..
var texto = document.getElementById('campo').value;

-Llamar a un elemento dentro de un form: Cuendo se tienen etiquetas dentro de un formulario, se puede referenciar el formulario para poder acceder al elemento. Por ejemplo teniendo:
<form name=nombre_formulario methodo=...> <imput name=nombre_campo type=text...>
Desde el javascript se llamaría:
var texto = document.nombre_formulario.nombre_campo.value;
Aclaracion: si se intenta obtener al comienzo de cargar la pagina va a dar error.

-Llamar a un elemento de otro frame: Supongamos que tenemos una pagina principal que tiene 2 frames (pueden ser mas), uno es <frame name="izquierda" src="izq.htm"> y el otro es <frame name="derecha" src="der.htm"> y queremos desde der.htm acceder a un elemento de izq.htm, simplemente lo referenciamos desde javascript de la siguiente forma:
top.nombre_frame.document.getElementById('valor_id')
ejemplo var texto= top.izquierda.document.getElementById('campo').value;

-Acceder a elementos en forma de arbol: Este tipo de métodos se creó básicamente para facilitar el recorrido de documentos xml, pero por su formato también es compatible con html.
Para esto se utiliza DOM (modelo de objeto de documento) implementado por varios lenguajes de programacion, permite obtener el documento como un conjunto de objetos. Para ello se obtiene el primer elemento, "nodo raíz"(en html como siempre se empieza por la etiqueta <html>) y se busca por nodo hijo. Un ejemplo sencillo..
<html>
<head>
<title>Titulo<\title>
<\head>
<body>
<\body>
<\html>

Si queremos ver los nodos hijo en JavaScript:
<script language="javascript">
//cargamos la raiz
var raiz = document.documentElement;
//obtenemos la cantidad de hijos
var cant = raiz.childNodes.length;
for(var i=0;i<=cant; i++){
//Escribir el nombre del nodo, en la posición "i"
//del conjunto de hijos de "raíz"
document.write(raiz.childNodes.item(i).nodeName+"<br>");
}
</script>


Esto devolvería "HEAD" y "BODY". Así, solo queda buscar el nodo que queremos y utilizar las propiedades anteriores como "getAttribute" etc.

domingo, 25 de septiembre de 2011

Ingenieria inversa a grabador de pic's

Revisando unas cajas me encontré con un grabador de microcontroladores de cuando iba a la técnica, recuerdo que nunca lo pudieron hacer andar y finalmente lo desecharon. Le faltaba el cable de datos, necesitaba el software y ni pensar que hacia años que no programaba un pic. Así para saber que fallaba iba a ser un reto.
--------------


-A simple vista, solo se ve un componente dañado, el C1 es un capacitor de 470uf 12v, un error muy común es colocar un capacitor del voltaje justo con el que va a trabajar, y las variaciones de voltaje hacen que este se dañe. Solo hay que reemplazarlo por uno de mayor voltaje.

-Viendo con mas detenimiento, Q1 y Q2 son transistores PNP del tipo bc557b, desde la cara plana los pines de izquierda a derecha son, emisor base y colector. Y acá algo raro, el emisor debería estar polarizado, pero en el grabador se dirige a un led y a masa. La correcta configuración es del siguiente modo

Es un simple transistor como interruptor, R1 solo otorga mayor estabilidad.
Luego de extraerlos y probarlos con un tester, funcionan bien y se arregla dándolos vuelta.

-Después de medir todas las resistencias y diodos, y comprobar que ninguno está dañado. Conecto el transformador y mido la salida del regulador de tensión 7812, este no entregaba los 12v correspondientes y lo tube que reemplazar.

-Para probar solo queda armar el cable de datos. Como este grabador funciona a través del puerto paralelo, la ficha DB9 no hacia falta.
De una lectora de cd vieja, corté una parte del socket de datos (solo necesito 5 pines) y reemplace la ficha. Ahora utilizando un conector DB25 que venía en un cpu viejo puedo colocarlo y solo queda soldar los pines que se van a utilizar.

Para determinar las patas es sencillo. El IC1 es un 74ls07, un conjunto de inversores lógicos, por lo tanto voy a recibir señales ttl de 5v desde el puerto paralelo. Vemos a que corresponde cada pin del puerto paralelo, y utilizamos solamente las 4 primeras de datos (pines del 2 al 5), la masa o tierra la conectamos a cualquier masa (pines del 18 al 25, en este caso el 22), y el pin de control ACK (acknowledgement) con una resistencia desde la alimentación que indicaría la respuesta.

Ahora para probarlo solo hay que conectarlo y ver si el programa icprog lo detecta.
Lo pueden descargar junto al driver xp desde.. Link . Y no requiere nada mas, se configura de la siguiente forma, luego se carga el archivo hexadecimal o Assembler y se graba.

-----------------------

Una vez comprobado que funciona correctamente, solo queda hacer unas mejoras, por ejemplo
-El led verde apenas prende, tiene una resistencia de 1k pero como se polariza con poca corriente la reemplacé por una resistencia de 47ohm.
-Este programador solo sirve para microcontroladores de 18 pines pero ¿que pasa si quiero utilizar otro tipo de pics? , en el zócalo SL1 el primer pin del lado del led rojo va conectada a tierra, el segundo va hacia el pin 4 del micro es decir Vpp, el tercer pin hacia la pata 14 Vdd, el cuarto al pin 12 de señal Clock y finalmente el quinto al pin 13 Data.

A partir de esto, busco como es la configuración para cada tipo de pic y reemplazo el zócalo por unos cables hacia un zócalo tipo zif para mayor comodidad.

-Como el grabador posee una etapa de rectificación de alimentación solo queda, reemplazar la ficha plug por un transformador de 12v. El diagrama completo es el siguiente


Ya si se desea uno USB, solo hay que grabar un pic18f2550. Averiguar sobre pickit2 clone, hay mucha informacion en la red. Saludos

jueves, 8 de septiembre de 2011

Reportando desde la Feria de Ciencias

El año pasado estuve bastante ocupado para estas fechas, pero les traje unos retos de las Jornadas de Informática. Este año, como no quiero estar discutiendo sobre la forma en que se ingresan los datos en php, intrusiones o sobre que tan vulnerable es tal o cual sistema. Solo me remito a informarles sobre la Feria de Ciencia y Tecnología Local.
-----------
Aquí los proyectos de área de tecnología.

Del industrial 6:
1-Como verán no me puedo resistir a la robótica.
Robot ByP (Bípedo de Exploración), el robot se auto estabiliza en primer instancia dependiendo de la superficie y se queda esperando a instrucciones por radio control.


2-Material Classifier (Sistema automatizado de clasificacion de Residuos) con un tamaño de 1,80m x 1,80m es capas de distinguir entre diferentes materiales como vidrio, platico o aluminio, y sus tamaños.

3-Éste si me llamó la atención, después de escuchar ideas que no se concretaron cuando yo estudiaba, me parece muy viable en el mercado.
Bardtender automático, el sistema es capas de preparar cócteles programados, utiliza una electro bomba por cada bebida con un sensor de nivel y es alimentado por una fuente de pc.


4-Perforadora de Placas Pertinax utiliza 3 microcontroladores 16f628a, (porque tantos?, pues no se, se podría utilizar uno solo y ponerle unos contadores 4017 para los motores, pero abría que analizar los costos). El sistema espera por la placa del tipo de experimental (placa de topo, sin los agujeros obvio) se posiciona y comienza a perforar (trabajo tedioso si lo deberiamos hacerlo a mano).


5-Puerta automatizada, es un simple sistema de una puerta corrediza con dos opciones, el funcionamiento normal donde se debe presiona un botón para acceder y un contador para cerrar automaticamente, y el funcionamiento de emergencias activado por un tiempo determinado.


6-Z Hand Proyect 2.0, no podía faltar un brazo robótico no?. Bueno, está específicamente diseñado para poder manipular y transportar líquidos peligrosos. Un par de servos que controlan los movimientos mecánicos comandados por un microcontrolador y un mando operador.


7-Sistema de carga de fluidos e identificación de estado, consta de una cinta transportadora que transporta (valga la redundancia) los recipientes, unos sensores infrarrojos detecta la posición en que se encuentra y llenan el recipiente con determinado liquido. El sistema no continua funcionando mientras no se retire el recipiente.


8-BCCM: Otro Punto de Vista, bueno el titulo no dice mucho por si solo, se trata de un sistema electrónico para ayudar a los invidentes, indicando diferentes obstáculos y en que dirección debe tomar para esquivarlos. Funciona con unos sensores por ultrasonido, y es capas de avisar por bibración o sonido.



Del industrial 4:
1-Purificador de hidrocarburos para gases de motores Diesel, a base de cascaras de nueces y agua de mar.


2-Dispositivo de captación y reducción de CO2 veicular, a base de agua de mar, construido de acero inoxidable para las altas temperaturas y evitar la corrosión.


3-Triturador, Compactador de residuos solidos orgánicos e inorgánicos, electroneumático, semiautomático. El titulo lo dice todo..

---------
Bueno, y hasta aquí con el informe sobre la feria de ciencias y tecnología, el nombre de sus diseñadores se los debo, cualquier sugerencia es bienvenida.

Saludos