Volcados de memoria NFC y hex: leer los bytes en bruto de una etiqueta

Un volcado de memoria muestra cada byte de una etiqueta NFC en hex y ASCII. Así se organizan las páginas, cómo leer un volcado y qué significa cada bloque.

Published

Un volcado de memoria es el contenido en bruto de una etiqueta NFC, página por página, mostrado en hexadecimal, normalmente con una columna ASCII al lado. En lugar de leer la URL o el texto ya decodificados, ves los bytes reales que guarda el chip, incluidas las partes que un escaneo normal oculta: el UID, los bytes de bloqueo y el contenedor de capacidades. Es lo más cerca que puedes estar de mirar el silicio directamente.

Respuesta rápida

La mayoría de las etiquetas NFC de consumo son chips NFC Forum Type 2, y la memoria Type 2 se organiza en páginas de exactamente 4 bytes cada una, según la hoja de datos NTAG de NXP. Un volcado lista esas páginas en orden, cada una como ocho dígitos hex, junto a la interpretación en caracteres imprimibles de esos mismos cuatro bytes. Así, una sola línea de un volcado se ve así:

PAGE  HEX          ASCII
03    E1 10 6D 00  ..m.
04    03 2A D1 01  .*..

Lee el hex de izquierda a derecha, una página por fila, y tienes la etiqueta entera. La habilidad está en saber qué página contiene qué.

Cómo se organiza la memoria de una etiqueta

El número de páginas depende del chip. Una NTAG213, NTAG215 o NTAG216 tiene 45, 135 o 231 páginas, lo que da 144, 504 u 888 bytes de memoria de usuario. Las primeras páginas están reservadas para el propio chip, y el resto es tuyo.

Los bloques que siempre verás

Las páginas 0 y 1 contienen el número de serie, el UID que el lector anuncia en cuanto la etiqueta despierta. El primer byte es 04 en cualquier NTAG: ese es el ID de fabricante de NXP según ISO/IEC 14443-3, así que un 04 inicial es una señal rápida de que tienes un chip NXP auténtico.

La página 2 lleva los bytes de bloqueo estáticos en sus dos últimos bytes. Cambia un bit ahí y la página de usuario correspondiente queda en solo lectura, de forma permanente, ya que los bits de bloqueo son OTP (programables una sola vez) y no se pueden borrar. Ese es el mecanismo detrás de bloquear una etiqueta.

La página 3 es el contenedor de capacidades, y es la que conviene memorizar. Su primer byte es E1, el número mágico que le dice al teléfono "aquí hay un mensaje NDEF." El siguiente byte es la versión y el tercero codifica el tamaño disponible, según la especificación NFC Forum Type 2 Tag. Los datos de usuario —tus registros NDEF— empiezan en la página 4.

Paso a paso: volcar una etiqueta y leer el hex

  1. Acerca la etiqueta al teléfono e inicia un escaneo en una app que exponga la memoria en bruto. Un escaneo del sistema solo decodifica el contenido NDEF; necesitas una herramienta que lea páginas.
  2. La app envía el comando READ de Type 2 —opcode 0x30— que devuelve 16 bytes, o cuatro páginas, cada vez. Android lo expone mediante MifareUltralight.readPages() o un NfcA.transceive() en bruto, según la referencia de Android.
  3. Baja por la columna hex desde la página 0. Confirma el byte de fabricante 04, encuentra el E1 en la página 3 y fíjate dónde empieza el TLV NDEF 03 en el área de usuario.
  4. Usa la columna ASCII para detectar texto. Un registro de URL o de texto plano aparece como caracteres legibles; el resto son bytes estructurales que parecen ruido, lo cual es normal.

Problemas comunes y soluciones

Si las páginas a partir de cierto punto se leen como ceros o se niegan a responder, lo más probable es que la etiqueta esté protegida por contraseña o bloqueada. En el iPhone esto es más común, porque Core NFC no expone la autenticación de Ultralight ni las páginas protegidas por contraseña; la pila de más bajo nivel de Android alcanza más partes del chip. Si la columna ASCII es ilegible, es lo esperado para las páginas de cabecera y de bloqueo; solo los contenidos de los registros están pensados para ser legibles. Y si un volcado se queda corto respecto al tamaño total del chip, normalmente estás ante un chip más pequeño del que suponías: compara el número de páginas con la familia NTAG.

Hacer esto en NFCore concretamente

El Volcado de memoria de NFCore muestra la rejilla hex completa con la columna ASCII al lado, y resalta por ti los bloques importantes: las páginas del UID, los bytes de bloqueo estáticos y dinámicos, el contenedor de capacidades y dónde empiezan tus datos NDEF. Puedes recorrer todo el chip página por página, copiar el hex para un informe de error y comparar dos etiquetas lado a lado. Es una vista de lectura: NFCore te muestra los bytes; no salta contraseñas ni copia tarjetas protegidas. NFCore es gratis en la App Store y en Google Play.

Preguntas frecuentes

¿Qué es un volcado de memoria NFC?

Es el contenido completo de la memoria de una etiqueta mostrado en hexadecimal en bruto, página por página, normalmente con una columna ASCII. Incluye el UID, los bytes de bloqueo y el contenedor de capacidades, no solo el mensaje NDEF decodificado que devuelve un escaneo normal.

¿Por qué la memoria de una etiqueta se mide en páginas?

Los chips NFC Forum Type 2 como NTAG direccionan la memoria en páginas de 4 bytes, y los comandos READ y WRITE operan en esos límites de página. Por eso un volcado se alinea de forma natural como una fila de 4 bytes por página.

¿Qué significa el byte E1 en un volcado?

E1 es el número mágico NDEF en el contenedor de capacidades de la página 3. Le indica al teléfono que la etiqueta está formateada para contener un mensaje NDEF. Sin él, la mayoría de los teléfonos tratan la etiqueta como vacía o sin formatear.

¿Puede un iPhone leer un volcado de memoria completo?

En parte. iOS puede leer las páginas abiertas de una etiqueta Type 2, pero Core NFC no expone las páginas protegidas por contraseña ni la autenticación de Ultralight, así que una etiqueta bloqueada se vuelca de forma más completa en Android.


¿Listo para Comenzar?

Descarga NFCore y comienza a gestionar tus etiquetas NFC como un profesional.