(http://i.imgur.com/tWhRjJM.png)
Hola amigos de Underc0de, esta vez les mostraré un 'hack' que apliqué a mi universidad. "Politécnico Santiago Mariño" o "PSM"
La historia va así. Estudio en una unversidad privada, si no mantienes tus pagos al día, se te niega la entrada a la institución. ¿Como comprueban si estás al día con tus cuotas mensuales? Easy, con códigos de barras plasmados en tu carnet estudiantil o en tu horario de clases.
Luego de hacer un ejercicio de programación relacionado con estos códigos, despertó mucho mi curiosidad acerca de estos, rápidamente recordé que esos códigos se utilizaban en mi facultad y así comencé a investigar que era lo que se escondía tras esos códigos.
Los códigos de barras no son más que una insripción de barras paralelas que contienen información codificada. Estos pueden ser númericos, alfanumericos, simbólicos, etc. Y comúnmente suelen ser revelados por medio de un láser.
(http://i.imgur.com/uyKWi2q.jpg) (http://www.monografias.com/trabajos11/yantucod/Image837.gif)
Algo así es el modelo de mi carnet de estudiante.
Existen diferentes tipos de códigos de barras.
"European Article Numbering (E.A.N.)" Muy común en supermercados y artículos de comercio. (http://www.monografias.com/trabajos11/yantucod/Image828.gif)
"CODE 128" puede codificar 128 carácteres ASCII. (http://www.monografias.com/trabajos11/yantucod/Image830.gif)
Y muchos más. Pueden seguir los demás en esta monografía: http://www.monografias.com/trabajos11/yantucod/yantucod.shtml (http://www.monografias.com/trabajos11/yantucod/yantucod.shtml)
Hay información bastante completa acerca de estos códigos.
Me dispuse entonces a saber de cual de todos los tipos se trataba el código de mi carnet estudiantil. El cual era el siguiente.
(http://i.imgur.com/kSbeJTx.jpg)
Ese era el objetivo a descifrar, no tenía números. Cosa que lo hacía más difícil.
Intenté subir la imagen a un lector de código online (http://www.onlinebarcodereader.com/es.html (http://www.onlinebarcodereader.com/es.html)) Pero decía que no encontraba ningún código en la imagen :-\
Me decidí entonces a realizar la búsqueda de forma visual, observando los diferentes ejemplos en la monografía de antes. Descarté de inmediato los modelos E.A.N, ya que mi código no tiene barras más largas que las del resto.
(http://i.imgur.com/BwJMuq4.png)
Mis candidatos eran "Código 39" y "Entrelazado 2 de 5" ya que eran bastante similares a lo que quería descifrar.
Generé entonces un alfabeto para los dos códigos. Utilicé un generador de códigos de barras (http://barcode.tec-it.com/en (http://barcode.tec-it.com/en))
(http://i.imgur.com/CNRnT9T.jpg)
Luego de generar el alfabeto, comencé a buscar similitudes entre el alfabeto de Código 39 y el código que yo tenía.
(http://i.imgur.com/kyannGI.jpg)
Utilicé algo fuerza bruta manual hasta dar con los dos primeros numeros. '26' Casualmente son los dos primeros números de mi documento de identidad. (Cédula)
Introduje el numero completo y ¡CLARO! Completamente idéntico.
(http://i.imgur.com/ytMdMfB.png)
Ya se sabe que el tipo de código que usan es "Code 39" Y que lo que está detrás de el código es el número del documento de identidad. Ahora se puede generar un código, luego imprimirlo y así entrar a la universidad con el código de barras de otra persona, Y bueno, la verdad no es para nada difícil hacerse con un numero de identidad de otro alumno, ya que estos numeros siempre están expuestos en el libro de asistencias que firmamos diariamente. Solo con tomar una foto a una página puedes hacerte con casi 50 números que pueden ser convertidos a códigos.
Aclaro que por supuesto ese no es mi número de identidad y que muestro esto con fines educativos, no me hago responsable por expulsiones o demás ::)
Saludos a mis colegas de sistemas y a todos ustedes underc0ders!