Hackear un e-badge barato: cómo Andrés Sabas tomó control total del firmware de un dispositivo chino de 10 dólares

Un badge electrónico con pantalla táctil a color y Bluetooth, vendido en Temu por unos 10 dólares, parece un juguete para convenciones de anime. Pero detrás de ese precio hay un chip sin documentación, una aplicación Android con serias carencias de seguridad y toda una cadena de suministro expuesta. Eso fue lo que descubrió Andrés Sabas —ingeniero en electrónica, parte de Electronic Cats, la empresa mexicana de hardware abierto— cuando decidió que hackear un e-badge barato sería su siguiente proyecto. Lo contó todo, paso a paso, en su charla "Compré un e-badge otaku de 10 dólares y terminé hackeándolo" en la DragonJAR Security Conference, cerrando con una demo en vivo y la liberación del SDK para la comunidad.

Índice
  1. El punto de partida: un badge de Temu y una skill de Android
  2. Qué esconde la app ZROOM: TLS ausente, claves en texto plano
  3. El teardown: un chip que cambia de nombre para no ser hackeado
  4. Callejones sin salida: la parte que nadie muestra
  5. El GitLab del fabricante: 9.022 archivos a un click
  6. Compilar firmware propio: la llave que estaba en el binario
    1. El primer brick y la regla de oro
  7. Lo que trae el firmware abierto
  8. Lecciones de seguridad de este caso
  9. Cómo empezar en hardware hacking, según Andrés
  10. Preguntas frecuentes
    1. ¿Qué es un e-badge y por qué es interesante hackearlo?
    2. ¿Se puede hackear cualquier dispositivo de Temu o AliExpress así?
    3. ¿Qué es ClickFlash y para qué sirve?
    4. ¿Qué tan grave es que una app no use TLS?
    5. ¿Dónde está el código liberado del badge?
  11. Conclusión: curiosidad, método y una comunidad que rompe badges
  12. Mira la Charla Completa Sobre ingeniería inversa a un e-badge de bajo costo

El punto de partida: un badge de Temu y una skill de Android

Como muchos proyectos de hardware hacking, este empezó de forma casual: una mañana navegando en Temu, Andrés se encontró con un e-badge otaku —de esos que suplantan los pines coleccionables de las convenciones de anime con una pantallita configurable. La versión más barata costaba unos 10 dólares e incluía pantalla táctil redonda (238×238 píxeles), Bluetooth, 4 MB de memoria flash y una app Android llamada ZROOM para cargarle imágenes y videos desde el celular.

Hackear un e-badge barato

La chispa que encendió la investigación llegó de la propia DragonJAR: Jaime había liberado una skill de auditoría Android que miles de personas ya usaban, y Andrés —que ya conocía Electronic Cats por los badges oficiales del evento— tenía el terreno abonado. El objetivo inicial era modesto: auditar la app del dispositivo para controlar el badge desde su computadora en vez de desde el celular. Pero la auditoría reveló algo mucho más grande.

Qué esconde la app ZROOM: TLS ausente, claves en texto plano

Al analizar la aplicación con la skill de auditoría Android, los hallazgos de seguridad cayeron en cascada:

  • La comunicación con los servidores no usa TLS: no hay cifrado entre la app y el backend del fabricante.
  • Los secretos están hardcodeados: las llaves que se utilizan para cargar el firmware viajan dentro del binario, en texto plano.
  • No hay autenticación entre el dispositivo y el servidor: cualquier persona puede solicitar y descargar una actualización de firmware.
  • Tampoco hay handshake entre el badge y el celular: el dispositivo jamás valida que quien le habla sea la aplicación oficial o que haya un intercambio de llaves legítimo.

Con ese panorama, la pregunta cambió: si el protocolo Bluetooth ya había sido descifrado por la comunidad —el repositorio E87 Batch Writer en GitHub permite cargarle imágenes por Python sin usar la app—, ¿qué sigue? La respuesta de Andrés fue la más ambiciosa posible: tomar control total del firmware.

El teardown: un chip que cambia de nombre para no ser hackeado

Abierto el badge, apareció una placa verde con dos microcontroladores. El principal, un chip de un fabricante chino cuyo número de parte —ACN707N en esta versión— cambia entre modelos con la misma arquitectura interna. Y no es casualidad: como explicó Andrés, la principal estrategia del fabricante para evadir la modificación de sus chips es cambiarles el número de parte, aunque internamente sea el mismo controlador multipropósito. Ese mismo silicio vive en bandas de medición de pulso, pantallas que se conectan al celular, controles remotos y otros badges algo más caros (con micrófono y bocina, que la versión de 10 dólares no trae).

La documentación oficial no existe para quien no es cliente del fabricante. Lo que Andrés encontró fueron hojas de datos antiguas, esquemáticos de chips parecidos en foros chinos, y la constancia de que la arquitectura del chip —VR35— no tenía soporte en las herramientas de la comunidad. Electronic Cats acababa de encontrar su primer objetivo: agregar ese soporte.

Callejones sin salida: la parte que nadie muestra

La charla dedica tiempo a algo que casi nunca se documenta: los caminos que no llevan a ninguna parte. Primero, la ingeniería inversa del firmware encontró comandos teóricos para flashear o dumpear la memoria... que no respondían porque no estaban habilitados en esa compilación. Después, el dispositivo hablaba de un modo bootloader vía USB; la placa tenía pines de USB de más, pero al conectarlos lo único que aparecía era una memoria USB con las imágenes cargadas. Nunca entró el modo boot, por más intentos que hizo.

Entonces llegó el giro: si el servidor del fabricante no pide autenticación, ¿por qué no pedirle el firmware directamente? Con un script en Python iterando versiones posibles —el número que detectaba la app más la versión de la PCB— dio con una combinación válida y el servidor le entregó el firmware oficial sin oponer resistencia.

El GitLab del fabricante: 9.022 archivos a un click

Con el firmware en mano hacía falta el entorno de compilación, y ahí el fabricante no ayuda: el SDK es cerrado y solo se entrega a clientes. En ese punto de máxima frustración, Andrés hizo lo que hoy hace cualquiera que trabaja con asistentes de IA: le soltó la investigación a agentes para que buscaran por él. El hallazgo fue de proporciones mayores que el propio badge: el GitLab del fabricante estaba mal configurado, con sus archivos indexados por Google y accesibles sin credenciales, pese a que el portal oficial pedía usuario y contraseña.

La descarga total: 9.022 archivos. No solo el SDK del badge, sino el toolchain completo, los proyectos de toda una línea de dispositivos del mismo fabricante —pantallas, bandas, controles— y la base genérica de desarrollo para el chip. De un golpe, el mayor obstáculo del proyecto se convirtió en su columna vertebral.

Compilar firmware propio: la llave que estaba en el binario

El camino restante fue pura ingeniería: identificar pines y configuración de cada componente, agregar soporte para la arquitectura VR35, y compilar. Para el análisis usó un plugin de Ghidra asistido por Claude —la analogía de la charla: Claude es su Rocky, domina el mundo virtual, mientras que él sigue siendo quien suelda, mide voltaje y conecta; cada uno con ventajas y desventajas—.

El bloqueo final lo puso el bootloader: el dispositivo rechazaba el firmware modificado porque validaba una firma. ¿Dónde estaba la llave de validación? En texto plano, al final del propio binario original. Bastó copiarla y pegarla al final del binario modificado para que el bootloader aceptara la carga. Un recordatorio brutal de que la seguridad por oscuridad no sobrevive a un hex editor.

El primer brick y la regla de oro

No todo salió a la primera: el primer intento de flasheo dejó el badge como un ladrillo. Por eso Andrés compró dos unidades desde el principio —"cuando hagan ingeniería a un dispositivo, mínimo compren dos"—, y aunque una "murió por la patria", la otra siguió viva para las pruebas. Para iterar sin miedo usaron un programador externo (un programador chino de unos 10 dólares, con una versión DIY basada en ESP32 y RP2040 en camino de Electronic Cats), y construyeron ClickFlash, una herramienta que permite cargar el firmware custom o restaurar el original en cualquier momento.

Lo que trae el firmware abierto

Con el control total obtenido, el badge dejó de ser un visor de imágenes y se convirtió en una plataforma abierta. Las funciones ya implementadas incluyen:

  • Bluetooth spoofing: el badge puede suplantar dispositivos y clonar direcciones MAC.
  • Bluetooth mouse: se conecta a una computadora y controla el cursor desde su pantalla táctil.
  • Escáner BLE: analiza periféricos Bluetooth cercanos y sus características.
  • Interfaz gráfica interactiva, navegación con botones físicos, modo suspensión, bloqueo por gestos y ajuste de brillo.

Todo el código —herramientas de carga, SDK, parches y binarios precompilados para quienes no quieran compilar— quedó liberado en GitHub con motivo del evento, y la versión especial del badge con firmware abierto fue la que llevaron los asistentes. En la demo en vivo, Andrés flasheó frente al público un badge recién sacado de su caja, dejándolo correr el firmware custom con el logo de DragonJARCON 2026 en pantalla.

Lecciones de seguridad de este caso

Más allá del badge concreto, la charla deja conclusiones para cualquiera que fabrique o audite dispositivos:

  • Autentica tus actualizaciones: si el servidor entrega firmware a quien lo pida, cualquiera puede pedirlo. El dispositivo debe validarse contra el servidor, y el celular contra el dispositivo.
  • Nunca dejes llaves en texto plano en el binario: la "firma" que protegía el bootloader se copió y pegó en segundos.
  • Configura bien tu GitLab: un portal de clientes con contraseña no sirve de nada si el GitLab detrás está indexado por Google. La cadena de suministro suele ser el eslabón más débil.
  • El TLS no es opcional: la comunicación de la app viajaba sin cifrar, con secretos hardcodeados.
  • Los callejones sin salida son parte del trabajo: hipótesis, intento, fracaso y repetir. Lo que distingue a la investigación no es acertar a la primera, sino esquivar sistemáticamente lo que no funciona.

Cómo empezar en hardware hacking, según Andrés

En las preguntas del público, Andrés dio una lista de arranque para gente de software que le tiene miedo al hardware: perder el miedo a tocar la hojalata y soldar; empezar con tarjetas de desarrollo con chips comunes de la industria como ESP32 y STM32; hacerse de un multímetro y un cautín —con eso y cables ya se puede experimentar y hasta escanear señales de comunicación—; y más adelante, si hay presupuesto, sumar un programador universal tipo J-Link o herramientas de glitching como osciloscopios. La idea de Electronic Cats, dice Andrés, es exactamente esa: que la gente de software pierda el temor a acercarse, romper y modificar hardware.

Preguntas frecuentes

¿Qué es un e-badge y por qué es interesante hackearlo?

Es un pin digital con pantalla táctil que muestra imágenes o videos configurables desde una app. Para la seguridad es interesante porque encapsula todo un ecosistema: firmware cerrado, app Android, protocolo Bluetooth y servidores del fabricante, en un dispositivo barato y fácil de conseguir.

¿Se puede hackear cualquier dispositivo de Temu o AliExpress así?

El método —teardown, auditoría de la app, extracción de firmware, compilación propia— es replicable en otros dispositivos de bajo costo. Lo que varía es el nivel de protección de cada fabricante. En este caso, la ausencia de autenticación y el GitLab mal configurado hicieron el camino más corto.

¿Qué es ClickFlash y para qué sirve?

Es la herramienta creada para este proyecto que permite flashear el badge por USB: carga el firmware custom o restaura el original cuando se quiere volver al estado de fábrica. Se liberó junto con el SDK y los binarios precompilados en GitHub.

¿Qué tan grave es que una app no use TLS?

Muy grave: sin cifrado, la comunicación puede interceptarse, y si además los secretos viajan hardcodeados en el binario, basta decompilar la APK —con herramientas como la skill de auditoría Android de DragonJAR o Ghidra— para extraerlos.

¿Dónde está el código liberado del badge?

Electronic Cats liberó herramientas de carga, el SDK con los parches aplicados y las imágenes precompiladas en GitHub con motivo de la DragonJAR Security Conference. La charla muestra el QR y la dirección del repositorio.

Conclusión: curiosidad, método y una comunidad que rompe badges

Hackear un e-badge barato no fue un golpe de suerte: fue curiosidad metódica —una app auditada con las herramientas correctas, un firmware pedido sin que nadie preguntara nada, un GitLab encontrado por agentes de IA— sostenida por la voluntad de compartir el resultado. El badge de 10 dólares terminó con un SDK abierto, una herramienta de flasheo libre y una comunidad lista a romperlo de nuevo. Como dijo Andrés sobre la comunidad DragonJAR: siempre que vemos un badge, lo rompemos.

Para seguir aprendiendo sobre seguridad ofensiva a partir de casos reales, regístrate en https://www.dragonjarcon.org. Allí podrás acceder a charlas como la que acabas de leer y conocer más sobre DragonJARCON, el congreso anual que reúne en Colombia a profesionales e investigadores de la seguridad informática.

Y si tu organización necesita este mismo nivel de análisis y escrutinio, conoce los servicios de seguridad ofensiva de DragonJAR en https://www.dragonjar.org/servicios-de-seguridad-informatica.

Mira la Charla Completa Sobre ingeniería inversa a un e-badge de bajo costo

Todo el recorrido técnico —del teardown a la demo en vivo con firmware custom— está en la charla completa de Andrés Sabas:

Subir