Ctrl+Alt+Supr, blog de Ollydbg
.MODEL Small .STACK 100h .DATA db msg 'Hello, world!$' .CODE start: mov ah, 09h lea dx, msg ; or mov dx, offset msg int 21h mov ax,4C00h int 21h end start
Supongo que muchos de vosotros habréis visto en más de una ocasión los códigos QR (Quick Response Barcode).
Estos códigos de barras actualmente están haciendo "furor" debido a la proliferación de los dispositivos móviles de tipo iPhone y Android.
De hecho, en la Android Market se pueden instalar directamente las aplicaciones en el móvil enfocando éste hacia la pantalla del ordenador y "leer" el código que aparece en la página:
Gracias al auge de los dispositivos móviles de nueva generación, las cabecezas pensantes de los departamentos de marketing de las empresas no han tardado en ver un filón a todo esto. Se pueden encontrar QR Codes incluso en las marquesinas de las paradas del bus:
...como reclamo publicitario en congresos:
...incluso en latas de refrescos:
...o en fachadas de edificios:
...y bueno, estos "japos" (con cariño eh! :) son la pera limonera:
Y como no, hasta en CSI Ney York teniendo un trozo de un QR Code pueden saber la identidad del asesino, que número de calzado usa, si ha comido tallarines el martes pasado o si usa Farmatin para el tinte del pelo:
Nota: En serio, un día tendré que escribir un post sobre CSI New York :)
Hay otra gente que ve posibilidades de negocio en todo esto:
Incluso hay gente que se viste con camisetas con QR Codes, hay gorras, llaveros, etc, y los más freaks en lugar de tatúarse "letras chinas" ya se tatúan QR Codes, en fin...que hay gente pa'to :)
Existen otros tipos de códigos 2D ampliamente utilizados en la industria. El PDF417 es un estándar "de facto" en la emisión de tarjetas de embarque de las compañias aéreas de prácticamente todo el mundo, además se usa también en los carnets de conducir de los EE.UU para almacenar información acerca del conductor,...
En sucesivos tutoriales cuando tenga algo de tiempo veremos como será posible generar desde VB.NET códigos de tipo Datamatrix y PDF417 o códigos lineales tipo CODE-39, EAN-13, CODE-128, etc (Dios bendiga iTextSharp :)
Bueno, al "asunto" :)
Podemos consultar la Wikipedia para tener algo de culturilla general sobre los QR Codes. Es interesante observar que los QR Codes son "libres" y que no se ejerce ninguna patente sobre ellos.
Buscando por internet para documentarme sobre este tipo de códigos encontré esta librería desarrollada nativamente en C# por un tal twit88.
La aplicación que he montado entorno a esta librería (después de hacer un par de correcciones en el código C# de la librería: ver comentarios en el link original de la librería) permite tanto generar los códigos (Codificar), como también leerlos (Descodificar):
Codificando un código:
Observaciones interesantes:
Los códigos QR tienen 40 "versiones" (http://www.denso-wave.com/qrcode/vertable2-e.html)
La versión 1 es un cuadro de 21 x 21 "pixels", mientras que la versión 40 es un cuadro de 177 x 177 "pixels"
Una vez generado el código lo podéis guardar en formato *.png, *.jpg, *.bmp o *.gif o incluso imprimirlo.
Para "leer" los códigos, cargaremos la imagen y pulsaremos en "Decode". Esto mostrará el resultado en la caja de texto situada debajo de la imagen:
¿Que puedes guardar en un QR Code?
Pues para la versión 40, y con el nivel de corrección más bajo, puedes almacenar hasta 23648 bits (2956 bytes). Esto es casi 3 KB de información
La información que pongas dentro ya es cosa tuya, puede ser desde una dirección web, de tal forma que cuando el móvil lea dicho QR code vaya directamente a dicha página web, enviar un SMS si pones un texto como este: SMSTO+678xxxxxx:hola esto es una prueba de tal forma que cuando el móvil lea dicho QR code envíe un SMS al telefóno +678xxxxxx con el texto "hola esto es una prueba,...
El caso es tener imaginación :)
Saludos.
mov eax,ollydbg; Int 13h
Descargar código fuente del QRCodeVBNET
(974 KB. Visual Studio 2008. Ya incluye la librería pre-compilada de twit88)
Descargar código fuente del Librería QRCode C# twit88
(1,23 MB. Visual Studio 2008)
Tutorial complementario: Crear códigos de barras con iTextSharp desde .NET
.MODEL Small .STACK 100h .DATA db msg 'Hello, world!$' .CODE start: mov ah, 09h lea dx, msg ; or mov dx, offset msg int 21h mov ax,4C00h int 21h end start
Nuevos enlaces descargas Tutoriales
1 al 24, MouseOdometerNET, PingScanner y
OllySecrets (1 y 2) (Actualización 05/02/2011)

12 Comentarios:
pues curiosa la
13 de Febrero de 2011 • 04:28 — solid_caimpues curiosa la cosa
semper fi
SC
tal como lo pediste en el QRC
13 de Febrero de 2011 • 05:42 — vlahsaria2Muy buena entrada.
14 de Febrero de 2011 • 10:07 — DoxMuy buena entrada. Realmente interesante los códigos QR. Lástima que no disponga de un móvil de última generación para comprobarlos jaja. De todas formas igual me bajo el código y lo pruebo.
Saludos y 5*.
Hola, creemos que los
17 de Febrero de 2011 • 14:04 — YouScan.me (invitado)Excelente Aporte
30 de Marzo de 2011 • 20:37 — nETO HB (invitado)Gracias
6 de Mayo de 2011 • 18:13 — Ignacio (invitado)gracias.
15 de Junio de 2011 • 04:17 — Invitado (invitado)No funciona el link!
2 de Julio de 2011 • 02:44 — Marcos (invitado)Hola Marcos Acabo de
2 de Julio de 2011 • 13:09 — OllydbgHola Marcos
Acabo de verificar el enlace y funciona bien. ¿Continuas teniendo problemas?
Saludos.
mov eax,ollydbg; Int 13h
Gracias ^^
20 de Julio de 2011 • 20:31 — Ivet (invitado)Link
22 de Julio de 2011 • 20:33 — Invitado (invitado)Me has abierto los ojos
7 de Septiembre de 2011 • 15:13 — Invitado (invitado)