Conversión estática desde DOCX. Fuente: /home/sebas/work/projects/ballbox/docs/tcn-maquinas-recibido-2026-05-26/PARTE 6 - Ingenieria Inversa Avanzada y Autonomia Tecnologica.docx
Ingeniería Inversa Avanzada y Autonomía Tecnológica
Hasta este punto la máquina funciona.
Sin embargo BallBox depende todavía de varios terceros:
OurVend
EasyCoin
BillWallet
La pregunta estratégica pasa a ser:
¿Qué dependencias podemos eliminar?
Hardware
Actualmente inevitable.
Cloud
OurVend
Actualmente obligatorio.
Pagos
EasyCoin
Actualmente necesario.
Cobro
MercadoPago
Actualmente necesario.
Arquitectura deseada:
Usuario
↓
↓
Backend BallBox
↓
Máquina
Sin depender operativamente de:
OurVend
Hallazgo
En logs aparece:
qrc.ourvend.com
puerto 4150
Además aparecen:
TCPClient
socket connect
heartbeat
mensajes JSON
Conclusión
La máquina habla TCP.
¿Cómo autentica?
¿Cómo registra máquina?
¿Cómo sincroniza slots?
¿Cómo sincroniza stock?
¿Cómo sincroniza precios?
¿Cómo descarga publicidad?
Herramienta recomendada:
Wireshark
Procedimiento
Conectar máquina a red controlada.
Capturar tráfico.
Filtrar:
4150
Objetivos
Identificar:
endpoints
autenticación
comandos
Encontrado:
ad.ourvend.com
Usuario:
ysftp
Contraseña exportada.
Preguntas
¿FTP sigue activo?
¿Se puede conectar?
¿Qué directorios existen?
¿Hay carpetas por Machine ID?
¿Hay publicidad?
¿Hay idiomas?
¿Hay skins?
Realizar desde PC.
Intentar conexión.
Objetivo:
listar contenido.
NO modificar nada.
Sólo lectura.
Encontrado:
update.xml
Servidor:
tfs.android.tcnvmms.com
Preguntas
¿Qué actualiza?
Recursos
Idiomas
Configuraciones
Objetivo
Descargar update.xml.
Analizar.
Hallazgo:
is_use_language_package=true
Conclusión:
Existe soporte para paquetes externos.
Objetivo
Encontrar:
language package
Posibles ubicaciones:
Text
v3Skins
Android/data
Traducción completa BallBox.
Hipótesis:
branding.
Posible contenido:
logos
fondos
colores
layouts
Objetivo
Reemplazar identidad china.
Hipótesis:
imágenes de productos.
Objetivo:
mostrar productos propios.
Sin depender aprobación manual.
Hallazgo:
AdvertRemote=false
Interpretación:
Función existe.
Pregunta:
¿Puede apuntarse a servidor propio?
Servidor BallBox
↓
Publicidad
↓
Máquina
Actualización automática.
Objetivo mínimo:
Dashboard.
Mostrar:
stock
ventas
conectividad
estado
Objetivo medio
Administrar:
publicidad
productos
precios
Objetivo máximo
Reemplazar OurVend.
EasyCoin permite:
liberar producto
sin intervención directa de OurVend.
Esto es enorme.
Porque permite:
↓
EasyCoin
↓
Máquina
aunque OurVend siga existiendo.
Socio premium.
Beneficio:
1 bebida gratis.
ATC valida.
ATC llama API EasyCoin.
Máquina libera producto.
Sin pago.
Ganador recibe premio.
Premio digital.
Canje en máquina.
Liberación automática.
Código promocional.
Canje.
Producto.
Liberación.
Fase futura.
Por máquina:
Machine ID
ubicación
ventas
stock
última conexión
temperatura
estado EasyCoin
estado publicidad
Stock bajo.
Temperatura fuera de rango.
Sin internet.
Sin ventas.
Puerta abierta.
10 máquinas
Control manual.
50 máquinas
Dashboard necesario.
100 máquinas
Automatización necesaria.
500 máquinas
Centro de operaciones.
ImageGoods controla imágenes.
Text controla idiomas.
v3Skins controla branding.
FTP distribuye publicidad.
OTA distribuye recursos.
Protocolo TCP es replicable.
Backend propio es viable.
Analizar TrayPreferences completo.
Analizar Text.
Analizar v3Skins.
Analizar Android/data/com.tcn.vending.
Descargar update.xml.
Investigar FTP.
Capturar TCP.
Documentar API EasyCoin.
Probar liberación remota.
Diseñar dashboard BallBox.