// INFORME: Análisis de Compatibilidad CLI
// PROYECTO: Proxmark3 Easy vs Chameleon Ultra
// EQUIPAMIENTO: Dos Mundos, Una Ilusión
// ESTADO: Expectativas vs Realidad
0x01: La Trampa de la Compatibilidad
Cuando adquirí el Chameleon Ultra, asumí que los comandos del Proxmark3 serían compatibles.
Después de todo, ambos trabajan con RFID/NFC y usan CLI, ambos operan en las mismas frecuencias.
Spoiler: Completamente diferente.
Este post documenta mi frustrante descubrimiento: los comandos de Proxmark3 -> NO funcionan en Chameleon Ultra.
Es una arquitectura completamente diferente que rompe el flujo de curro si estas acostumbrado a Proxmark3.
ADVERTENCIA CRÍTICA
Si vienes del ecosistema Proxmark3 y esperas que tus comandos funcionen en Chameleon, prepárate para reaprender todo desde cero.
0x02: Especificaciones
Antes de entrar en los fallos, entendamos las diferencias fundamentales de hardware que explican por qué estos dispositivos NO pueden ser compatibles.
| Especificación | Proxmark3 Easy 512KB | Chameleon Ultra |
|---|---|---|
| Procesador | AT91SAM7S512 ARM Cortex-M3 | nRF52840 ARM Cortex-M4 |
| Flash | 512 KB | 1 MB |
| RAM | 64 KB | 256 KB |
| FPGA | Spartan-6 (limitado) | No (ARM nativo) |
| Batería | No (USB solo) | 90 mAh LiPo (6 meses) |
| Conectividad | Micro-USB | USB-C + BLE 5.0 |
| Propósito | Análisis profundo / Investigación | Emulación portátil / Red Team |
Como ves, son diferentes.
- El Proxmark3 es un laboratorio completo con FPGA para análisis de señal en tiempo real.
- El Chameleon es un emulador compacto con batería. Diferentes arquitecturas = Diferentes comandos.
0x03: El Shock NPC Version - hw version & hw status
Mi primera decepción llegó con los comandos más básicos: hw version y hw status.
>> Comando: hw version
// PROXMARK3 - SALIDA DETALLADA
Client: Iceman Fork v4.20728
Plataforma: Windows (64b) MinGW-w64
Soporte: Python v3.14.3, Lua v5.4.8
ARM Bootrom: Iceman/master/v4.20728...
FPGA: fpga_pm3_hf.ncd, fpga_pm3_lf.ncd
uC: AT91SAM7S512 Rev A
Flash: 512 KB (80% usado)
// CHAMELEON ULTRA - SALIDA MINIMALISTA
[USB] chameleon --> hw version
Chameleon Ultra, Version: v2.1
Observación: El Proxmark3 te inunda con información técnica (compilador, FPGA, memoria, scripting).
El Chameleon te da una línea.
>> Comando: hw status
// PROXMARK3 - ESTADO REAL DEL HARDWARE
Memory: BigBuf_size 37184 bytes
FPGA image: fpga_pm3_hf.ncd
Flash memory: 2048 Kb, Baudrate 24 MHz
Smart card module: ( fail )
LF Sampling: 125.00 kHz
HF 14a config: Anticol override, BCC override
// CHAMELEON ULTRA - MENÚ DE ¿AYUDA?
[USB] chameleon --> hw status
// Muestra lista de subcomandos disponibles:
slot, settings, connect, disconnect, mode
chipid, version, battery, factory_reset
MOMENTO WTF
-
En Proxmark3,
hw statuste muestra el estado del hardware. - En Chameleon, te muestra un menú de ayuda.
- El mismo comando, funciones completamente opuestas.
- Bienvenido al infierno de la incompatibilidad.
0x04: Búsqueda de Tarjetas - hf search
Este fue el comando que me hizo perder la paciencia.
En Proxmark3, hf search es tu mejor amigo.
En Chameleon, es una broma cruel...
>> Proxmark3: Búsqueda Activa
Searching for ISO14443-A tag...
Valid ISO 14443-A tag found
UID: 72 56 E0 E2
ATQA: 00 04
SAK: 08 [2]
Possible types: MIFARE Classic 1K
Magic capabilities: Gen 1a
Prng detection: weak
Static nonce: yes
Hint: Try 'hf mf info'
Resultado: Detecta la tarjeta, identifica el tipo (MIFARE Classic 1K), detecta que es Gen1a (Magic Card), analiza el PRNG (vulnerable), detecta nonce estático (Fudan), y te sugiere el siguiente comando.
>> Chameleon Ultra: Búsqueda... ¿De Qué?
// No busca nada. Muestra menú:
14a (ISO14443-A)
mf (MIFARE)
mfu (MIFARE Ultralight)
// Añado parámetro "14a"... misma salida:
14a (ISO14443-A)
mf (MIFARE)
mfu (MIFARE Ultralight)
Resultado: Nada intuitivo -> Solo muestra un menú de categorías.
El parámetro 14a es ignorado completamente.
MOMENTO WTF
-
Un comando llamado
searchque NO BUSCA NADA. - Esto viola el principio más básico del diseño de interfaces: el nombre debe reflejar la acción.
- En Chameleon,
hf searches un menú jerárquico disfrazado de comando.
0x05: Lectura de Bloques y Sectores
Aquí es donde todo se derrumba.
Los comandos de lectura de Proxmark3 simplemente NO EXISTEN en Chameleon.
>> Lectura de Sector - hf mf rdsc
Reading sector 0
| sec | blk | data |
| 0 | 0 | 72 56 E0 E2 26 08 04 00 62 63 64... |
| 0 | 1 | 00 00 00 00 00 00 00 00 00 00 00... |
| 0 | 2 | 00 00 00 00 00 00 00 00 00 00 00... |
| 0 | 3 | FF FF FF FF FF FF 07 80 69 FF FF... |
Dumped 4 blocks ( 64 bytes ) from sector 0
Resultado Proxmark3: Lee el sector 0 completo (4 bloques) en una sola operación.
Muestra el UID en bloque 0, datos en bloques 1-2, y el sector trailer con las claves en bloque 3.
Please enter correct parameters
// Muestra lista de comandos disponibles:
nested, darkside, clone, dump
rdbl (Read Block), wrbl (Write Block)
info, wipe, sim, ...
Comando 'rdsc' NO EXISTE
Resultado Chameleon: El comando rdsc NO EXISTE? ¿really?
Chameleon solo tiene rdbl (read block), lo que significa que para leer un sector completo necesitas ejecutar el comando 4 veces manualmente.
>> Lectura de Bloque - Sintaxis Incompatible
hf mf rdbl: error: the following arguments are required:
--blk/--block
!!!Sintaxis incorrecta!!!
Intenté usar -b 0 para especificar el bloque (como en Proxmark3) pero Chameleon espera --blk 0 o --block 0.
Además, -b en Chameleon NO es el número de bloque, sino un flag que indica "usar clave B".
// SINTAXIS CORRECTA EN CHAMELEON
hf mf rdbl --blk 0 -b -k FFFFFFFFFFFF
// Desglose:
--blk 0 = número de bloque
-b = usar clave B (sin valor)
-k FFFF... = valor de la clave
MOMENTO WTF
-
En Proxmark3,
-bes el número de bloque. - En Chameleon,
-bes un flag booleano para usar clave B. - El mismo parámetro tiene significados opuestos.
- Esto no es incompatibilidad, es sabotaje cognitivo.
0x06: Información de Tarjeta - hf mf info
Otro comando crítico con comportamiento completamente diferente.
ISO14443-A Information
UID: 72 56 E0 E2
ATQA: 00 04
SAK: 08 [2]
Possible types: MIFARE Classic 1K
Fingerprint: Fudan based card
Magic capabilities: Gen 1a
Prng detection: weak
Static nonce: yes
Hint: Use 'hf mf c*' magic commands
Proxmark3: Analiza la tarjeta y te da información detallada (UID, tipo, fabricante Fudan, capacidades mágicas Gen1a, PRNG débil, nonce estático).
Te guía con ALGO.
// No muestra info de la tarjeta
// Muestra menú de comandos disponibles
nested, darkside, clone, dump, rdbl, wrbl
info, wipe, sim, econfig, elog, decrypt...
Chameleon: No muestra información de ninguna tarjeta.
Muestra otro menú de ayuda listando comandos disponibles.
PATRÓN DETECTADO
En Chameleon, los comandos no son acciones, son navegación por menús jerárquicos. hf → mf → info no ejecuta "info", sino que muestra el submenú de "info".
Para ejecutar la acción real, necesitas añadir más parámetros.
0x07: Matriz de Compatibilidad
Aquí está la tabla que resume mi dolor. Comandos esenciales de Proxmark3 y su estado en Chameleon:
| Comando Proxmark3 | ¿Funciona en Chameleon? | Comportamiento en Chameleon |
|---|---|---|
hw version | Parcial | Salida minimalista (solo versión) |
hw status | No | Muestra menú de ayuda (no estado) |
hw tune | No | Comando no existe |
hf search | No | No busca, muestra menú de categorías |
hf mf info | No | Muestra menú de subcomandos (no info) |
hf mf rdsc | No | Comando no existe (solo rdbl) |
hf mf rdbl -b N | No | Sintaxis incorrecta (necesita --blk) |
hf mf dump | Sí | Funciona (uno de los pocos) |
hf mf chk | Sí | Funciona |
hf mf csetuid | No | Comando no existe |
hf mf sim | Sí | Funciona (sintaxis diferente) |
lf search | Parcial | Comportamiento diferente |
lf em read | Sí | Funciona |
Veredicto: De 13 comandos esenciales probados, solo 4 funcionan correctamente, 2 funcionan parcialmente, y 7 fallan completamente.
0x08: Diferencias Filosóficas en CLI
Después de un rato de frustración, entendí el problema fundamental: no es solo sintaxis, es filosofía de diseño.
// PROXMARK3: ORIENTADO A LA ACCIÓN
Filosofía: Comandos son verbos que ejecutan acciones directas
search BUSCA activamente
info MUESTRA información de la tarjeta
rdsc LEE un sector completo
status REPORTA el estado del hardware
Ventaja: Intuitivo, predecible, rápido de aprender
Feedback: Resultados inmediatos con sugerencias de próximos pasos
// CHAMELEON ULTRA: NAVEGACIÓN POR MENÚS
Filosofía: Comandos son espacios de nombres jerárquicos
search NO busca, muestra categorías
info NO informa, muestra submenú
rdsc NO EXISTE (usar rdbl x4)
status muestra ayuda, no estado
Desventaja: Nombres engañosos, mayor carga cognitiva
Feedback: Menús genéricos sin contexto de la tarjeta
LECCIÓN APRENDIDA
Chameleon no tiene una CLI "mala", tiene una CLI diferente.
El problema es que usa los mismos nombres de comandos que Proxmark3 pero con significados opuestos.
Esto viola el Principio de Mínima Sorpresa y genera confusión masiva para usuarios que venimos del ecosistema Proxmark3.
0x09: ¿Cuándo Usar Cada Uno?
Después de esta experiencia, aquí está mi recomendación basada en casos de uso reales:
// USA PROXMARK3 CUANDO
- Necesitas análisis profundo de RF (sintonización de antenas, análisis de señal)
- Trabajas en laboratorio con PC conectado
- Requieres versatilidad de protocolos (ISO15693, iClass, etc.)
- Necesitas comandos intuitivos orientados a la acción
- Realizas investigación y desarrollo
// USA CHAMELEON ULTRA CUANDO
- Necesitas portabilidad extrema (batería, tamaño llavero)
- Quieres emular múltiples tarjetas sin PC (8 slots HF + 8 LF)
- Trabajo de campo / Red Team / Pentesting móvil
- Control inalámbrico (BLE 5.0)
- Enfoque en clonación/emulación rápida
// RECOMENDACIÓN PROFESIONAL
Pillar AMBOS es la solución ideal
Proxmark3 para análisis en laboratorio
Chameleon Ultra para operaciones de campo
0x0A: Conclusiones y Lecciones
Esta experiencia me enseñó varias lecciones dolorosas pero valiosas:
// VERDADES TÉCNICAS INELUDIBLES
1. La Compatibilidad es una Ilusión
No asumas que comandos con el mismo nombre hacen lo mismo en dispositivos diferentes.
2. Arquitectura Diferente = CLI Diferente
- Proxmark3 tiene FPGA, Chameleon no.
- Esto explica por qué comandos como
hw tune(sintonización de antenas) simplemente no pueden existir en Chameleon.
3. Los Nombres Importan
- Un comando llamado
searchque no busca nada es diseño hostil. - Los desarrolladores de Chameleon deberían renombrar estos comandos para evitar confusión.
4. Documentación > Suposiciones
- Pasé un buen rato intentando que comandos de Proxmark3 funcionaran en Chameleon.
- 10 minutos leyendo la documentación de Chameleon me habrían ahorrado time pero es que odio leer docu de Github.
5. Son Herramientas Complementarias
- Proxmark3 y Chameleon no compiten.
- Resuelven problemas diferentes en contextos diferentes.
- Dejar de buscar compatibilidad y aprovechar las fortalezas de cada uno.
Tengo ambos dispositivos en mi arsenal.
Uso Proxmark3 para análisis en mi laboratorio y Chameleon para operaciones de campo (te vas al Metro y la lias)
Cada uno con su propia sintaxis, su propia filosofía, y su propio propósito.
Bajo mi opinión ya que son perfectamente amoldables y ambos se complementan podrían hablar el mismo idioma, normal que pase igual con el amor en pareja
"Two devices, one mission, zero compatibility."
[ EOF ] 2DevNullPoisonXploit