![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivw_B_mviJ1sMjhMFhjFQmY9MXE3VvEP47NmZOuUAQnp6UID9t_C6cbu1yDjIf_FvjT7MHmKiLxC4NLOKTRFy0eUiBvAs2b8Chs_OUb-DerChzXydSPX5g0eutbu5XMX3bJI1s-l5vUrA/s320/Captura+de+pantalla+2016-02-19+a+las+21.59.02.png)
Estas Smarth Tag de reducido tamaño no necesitan de una alimentación externa y eso las a llevado a
ser utilizada en muchos sectores. Control de accesos, configuración de teléfonos, pagos en establecimiento...
ser utilizada en muchos sectores. Control de accesos, configuración de teléfonos, pagos en establecimiento...
Además según el fabricante son "imposible de copiar", pero en la práctica veremos que no es así.
Hace unos días se me presento una situación con estas llaves. Las piscinas y pistas de mi comunidad funcionan con un sistema que utiliza este dispositivo. El caso fue que perdí una y fui a la comunidad de vecinos a pedir una de repuesto, pero quisieron cobrarme 20€ por la llave, que no vale más de 30 céntimos por Internet. Así que me puse a indagar por Internet como funcionaban, como almacenaban la memoria. Todo el mundo preguntaba lo mismo, como clonar una llave pero ninguno lo conseguía con éxito, siempre acababan estropeando la llave.
Existen aplicaciones para Android que dicen que son capaces de clonarlas como:
- TAGINFO
- MFCLASSIC
- NFC CLONER
Estas son algunas de ellas, pero hay muchas más. La verdad es que todas leen la UID de la llave y los bloques de memoria, pero no son capaces de clonarlas. Después de todo el proceso de investigación mi amigo Arduino me dio la solución, por tan solo los 30 céntimos que cuesta la llave. Ya que el resto de herramientas las tenia ya por casa.
Me fue de gran ayuda este Tutorial del Señor Giltesa que podéis repasar aqui antes de seguir con este post, el cual además me dios los pasos para investigar.
Para empezar con el proceso vamos a conocer un poco el funcionamiento de las Smart Tag.Tambien conocidas como Mifare:
MIFARE es una tecnología de tarjetas inteligentes
sin contacto (TISC), de las más ampliamente instaladas en el mundo, con
aproximadamente 250 millones de TISC y 1,5 millones de módulos lectores
vendidos. Es equivalente a las 3 primeras partes de la norma ISO 14443 Tipo A de 13.56 MHz
con protocolo de alto nivel, con una distancia típica de lectura de
10 cm (unas 4 pulgadas). La distancia de lectura depende de la potencia
del módulo lector, existiendo lectores de mayor y menor alcance. Es
propiedad de NXP Semiconductores (antes parte de Philips
Semiconductores).
Podéis seguir leyendo más en la Wikipedia pinchando aquí. Esto os ayudará a entender como funciona.
Las llaves que nosotros vamos a clonar son:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhA83XsdZPdJz-QcN3eMjLuT0HxYvtIusyiabwoMDu3FNzBTknSRqG6N7v1nCzrXsKpr7ViXvcnwnEuoVpLLB6Xzbwqt4cUU4dAjDAysuvPnVdPSnODMhINCqW3j76Ofwhv1YJgeZPgHAQ/s320/Captura+de+pantalla+2016-02-19+a+las+22.15.24.png)
Una vez visto todo esto vamos a detallar todo lo que necesitamos para el copiado de las Tags:
* Pasos a seguir desde cero para todos aquellos que no tengan ni idea aun de lo que es Arduino.
1º Paso:
como el programa que te ayudará a controlar y cargar los datos en tu Arduino.
2º Paso:
Instala el archivo descargado en tu ordenador. Si es Windows, sigue estos pasos.
Para Linux estos y para OS estos. (para los que uséis Mac, ya sabréis que están simple como arrastrar y listo
3º Paso:
Descarga la libreria para la Shield con chip PN532 e instala la en tu ordenador. Os dejo el enlace de descarga de la modificada por el Señor Giltesa la cual esta muy completa.
4º Paso:
Lo siguiente que vamos a hacer es conectar la placa Arduino Uno y la Shield con sistema RFID.
Como en la foto.
Conectarla al ordenador mediante el cable USB.
5º Paso:
Abre el ejemplo "ReadAllMemoryBlocks". Ahora vamos a cargar en nuestra placa Arduino. Para ello primero seleccionamos el tipo de placa que tenemos en el menú de arriba en la pestaña de Herramientas/placa/ Arduino Uno.
Automáticamente nos reconocerá que esta conectada mediante USB. Así que ahora apretamos el botón de Carga y esperamos a que finalice.
Una vez hecho esto en la parte superior derecha encontraremos el símbolo de una lupa, que es el monitor Serial. Aquí es donde veremos los bloques de memoria de los que consta nuestra llave a copiar.
La acercamos al lector y esperamos a que nos muestre los 63 bloques de la llave. Después de esto ya podemos retirarla.
Os tiene que quedar algo parecido a la foto. con la diferencia que los número variaran en vuestras llaves con las mías.
Vamos a analizar la imagen. El primer bloque en la posición 00, es el Bloque de fábrica. Aquí el fabricante graba la UID de la llave (identificación única) en los 4 primeros byte, y el resto datos del fabricante y demás. La UID es algo único para cada llave y se graba al fabricarla, por este modo muchos sistemas de acceso utilizan solo estos códigos y no aprovechan el resto de memoria para nada.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggGjEF3lBw-cfsO-FUvy5POUkanj5EKjIf3GWL7fNkjVNLIUXH4g224P_meJx8yl0EUV6P8fZuvqvjSGHZ2EOoVv8GVNZ_U9czu8JpOEhG56GxAJ0qpK2P1usd2rboyDCgMGEEqsXqtjE/s320/Captura+de+pantalla+2016-02-19+a+las+21.39.44.jpg)
bloques. Si modificamos los Sectores Trailer, perderemos la memoria de la llave y solo servirá para leer la UID.
6º Paso:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiABeG50M40MMKCNLlVoWj5vdYm4FEolv1Ud9ZAqr8gfl9O8fS7TkGwBeCm4G2oStG7f7i1GQCfxp6tMhsqfvnbgW4LGf-jbLVJWWpzFGyBvO93Jjg2xx40NeLBUMVBS6JaQa5kA_wF53A/s640/Captura+de+pantalla+2016-02-19+a+las+21.38.53.png)
Y también modificaremos el bloque en el que queremos escribir, ya que nosotros queremos copiar el bloque que viene grabado de fábrica.
Debemos modificar el ejemplo exactamente como este que podeis ver en la imagen. La única diferencia con vuestra llave serán nos números en hexadecimal que vosotros habeis copiado en el paso anterior.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjq4LtvBUUcVBOAms1BHG5tTp4-VtNIqAKPgNsizaEdi9MNtc0cjw6lZ3_WRH7k9v6KmEeUVUHqHgUIsF-7l0S81y6Le2GsfqW8QnhlZQp4qdEn8Xdpog2FCkv33uhOEL6EAuvTxXvWdQ/s640/Captura+de+pantalla+2016-02-19+a+las+21.49.51.jpg)
Por último teneis que cambiar la posición del bloque donde debe copiar el código, eso lo encontrais en la linea que pone "if(nfc.readMemoryBlock(1,0x00,block))" vosotros tendreis otra posición pero debeis cambiar la por esta que aparece en la foto.
Por último compilamos el programa y lo cargamos en arduino, no nos tiene que dar nigún fallo. Si se diera el caso, debemos revisar todas las lineas y ver que son iguales a las de la foto. Ahora cogemos una NFC regrabable de las que hemos comprado por internet, abrimos el Monitor Serial y pasamos la llave por encima del lector/grabador.
En la pantalla del Serial veremos que ha grabado con exito el bloque de memoria y os lo leerá correctamente con el código que nosotros hemos grabado.
Por último nos queda probar la llave en la puerta de garaje o piscina. Yo no tube mayor problema, lo que más me costo fue encontrar un proveedor que me vendiera este tipo de llaves en las que puedes modificar el bloque de fábrica.
Saludos y espero que o sirva de ayuda.
Hola no puedo ver las fotos....
ResponderEliminarHa habido un problema con mi Google+ y he perdido todas las fotos de mi blog, este fin de semana intentare restaurarlas.
ResponderEliminara mi no me funciona, no escribe en el bloque 0, podrías colgar el código?
ResponderEliminarEn la última foto tienes el código completo, pero tu tendrias que cambiar cada linea que ves en el recuadro en rojo por el código de la llave que quieres copiar. Recuerda que no lo puedes hacer con cualquier llave NFC, sino con una que hayas comprado con el código de Manufacturer abierto. Cuesta encontrar las pero si buscas al final encuentrar algún vendedor.
ResponderEliminarUse ese mismo código y escribe bien otros bloques pero no el 0. No se porque. Las tarjetas me las compré con uid changeable en ebay y aliexpress y nada, con ninguna. Alguna sugerencia?
ResponderEliminarCuando lees la llave NFC, si esta abierta en el bloque 0, tienen que salir todos los bloques a 00 00 00... Salvo los "Sector Trailer" que son los bloques de acceso. Te diria el proveedor de ebay al que yo se las compré pero ya las últimas que me envío no valian. Muchos te dicen que vienen abiertas en el bloque de Manufacture pero es mentira. Es probar y tener suerte que las que te llegan son las correctas. Yo copie 10 con exito. Suerte en tu busqueda. Siento no poder ayudarte mucho más.
ResponderEliminarComo puedo ponerme el contacto contigo para una asesoría sobre este tema estoy en Argentina. Mi correo es pablogallay84@gmail.com
ResponderEliminarSe podría copiar a un movil con sistema NFC?GRACIAS
ResponderEliminarNo entiendo muy bien la pregunta. ¿Quieres clonar la Tag en tu móvil? Si ese es el caso, siento decirte que yo nunca lo he conseguido, la unica utilidad que le dan al lector de los móviles es para cambiar la apariencia del dispositivo segun le el ID de una TAG.
Eliminarhola!
ResponderEliminarLa placa NFC que usas en el tutorial ¿Tiene que ser la misma que usas tú o puede ser la V2.0 o la V3?
Como clono una llave que requiere autentificacion en Hex, en algunos sectores???? Gracias
ResponderEliminarHola compañero, lo tienes todo explicado en el post, te invito a que vuelvas a leer lo tranquilamente. Y si sigues teniendo dudas vuelve a preguntar. Saludos
EliminarSe puede realizar el procedimiento con otro modulo RFID (Específicamente el RC522)
ResponderEliminarHola Crisitian, lograste hacer andar el modulo RC522? si tenes el código me podrías hacer el favor de pasarlo? Muchísimas gracias. luchi_martini_94@hotmail.com
EliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarDe donde me descargo la programación, el código para arduino ??
ResponderEliminarhola, puedo clonar una trajeta mifare classic 4k en mi smart phone?
ResponderEliminarHola esta muy bueno to aporte, quisiera saber si es posible que me envíes el código, desde ya muchas gracias!
ResponderEliminarluchi_martini_94@hotmail.com
Hola!, se puede hacer desde el módulo RC522?
ResponderEliminarHola, en el codigo readMifareUId, sale en el monitor serial la UID y despues sale read card # xxxxxxx, este número en teoria es la ID, pork no son iguales?
ResponderEliminarHola!, compre hace poco unos llaveros con UID sobreescribible y siguiendo tus pasos no me escribe el UID que necesito
ResponderEliminarEn dónde está el código fuente? Sólo veo hasta la linea 75 del código.
ResponderEliminarHola, encotre tu pagina buscando como copiar la llave que tengo de Mifare, la verdad que he leido todo lo que pones y creo entenderlo casi todo, pero tengo una placa que es la RFID-RC522, como puedo hacer lo mismo? al ser diferente he mirado software y demas y no consigo hacer nada, gracias
ResponderEliminarDeberias buscar una libreria en acorde a tu placa. Habrá palabras clave que cambien pero si es para arduino suelen tener la misma estructura. Me imagino que deberas modificar un poco el código para adaptarlo a esa librería. Si entiendes el código no tendrás gran problema en eso. Saludos
ResponderEliminarY si uso un escritor para emitir la señal en vez de un tag? le puedo poner la informacion que yo quiera tecnicamente o no? hacer tu propio smart tag
ResponderEliminarMuy buenas. Estoy ya avanzado con el tema y he logrado leer la llave, modificar el código, compilar sin errores pero, supongo que lo que me falta es cambiar de posición el coman de "if(nfc.readMemoryBlock(1,0x00,block))" , porque me entra en un bucle que se la pasa leyendo. Y en las fotos no la vi. Me puedes pasar el código por mail por favor y así corrijo la posición que supongo debe estar antes de la escritura. Gracias gerores@hotmail.com.
ResponderEliminar