Ingeniería inversa · caso de estudio

Cómo se lee
una caja negra

Un producto SaaS solo enseña la parte que decide enseñar. Antes de construir nada encima, quise saber qué hay realmente dentro y dónde acaba mi derecho a mirar. Esto es el método, las cifras y los límites de un ejercicio hecho únicamente sobre la superficie pública de un producto en producción.

133archivos JS descargados
20.201nodos del grafo semántico
290peticiones observadas sin sesión
53módulos de producto mapeados

0 credenciales · 0 accesos al backend · 0 datos de terceros

01

El problema: decidir a ciegas

Un SaaS vertical se presenta con una promesa simple y un puñado de pantallas de marketing. Pero la pregunta que de verdad importa —¿qué hace esto por dentro, y qué no hace?— no se responde mirando la landing. Y sin esa respuesta, cualquier decisión de producto se toma por intuición: o lo reimplementas entero, o te casas con la herramienta sin saber hasta dónde llega.

La ingeniería inversa resuelve exactamente eso: leer lo que el producto ya le entrega a cualquier visitante y convertirlo en un mapa. No es un fin, es un instrumento para decidir mejor.

02

La regla de juego

Antes de la primera línea de código, una frontera escrita. No es un trámite: el método entero depende de respetarla, porque lo que hace útil el ejercicio es precisamente lo que deja fuera.

Dentro del alcance

  • El HTML y los assets que el navegador descarga al abrir la web
  • Los diccionarios de idioma servidos como JSON público
  • El tráfico que genera una visita anónima a la página de acceso
  • La documentación y el material de soporte públicos

Fuera del alcance

  • El backend, sus endpoints protegidos o su infraestructura
  • Cualquier intento de saltar autenticación o autorización
  • Datos de clientes, cuentas o terceros
  • Ingeniería social, fuerza bruta o explotación de fallos
03

El método, en cinco movimientos

1

Copiar la superficie

Una petición a la página de acceso y su lista de assets. Sin sesión, sin cookies, exactamente lo mismo que recibe cualquier visitante.

↓ 133 ficheros JS · 3,5 MB · 1 CDN
2

Reconocimiento estático

Búsqueda de hosts, rutas, nombres de servicios y vocabulario de dominio. El código está minificado, pero los textos no: sobreviven intactos.

↓ stack, terceros y ~20 rutas de API del cliente
3

Grafo semántico

Un analizador convierte el bundle en un grafo de funciones, llamadas y literales. Se acota a dos ficheros: el entry y un chunk de dominio.

↓ 20.201 nodos · 16.673 relaciones · 1.432 funciones
4

Tráfico anónimo

Un navegador headless abre la página de acceso y registra la red. La respuesta 401 no es un error: es la frontera del sistema, confirmada.

↓ 290 peticiones · 2 endpoints reales · auth por cabecera
5

Diccionarios de producto

Los ficheros de traducción son públicos y funcionan como inventario: cada módulo, cada pantalla y cada función tiene su nombre ahí.

↓ 106 ficheros → 53 módulos de producto
·

Por qué en este orden

Cada paso estrecha el objetivo del siguiente. Descargar todo primero y analizarlo después habría sido inviable: el grafo completo de 133 ficheros se mide en cientos de megabytes.

↓ acotar antes de analizar
04

El hallazgo: el producto era más grande que la promesa

El marketing vende una función. Los diccionarios describen 53 módulos: compras, escandallos, inventarios, ventas, tesorería, nóminas, consolidación de grupo, conciliación bancaria, contabilidad. Lo que se presenta como una herramienta puntual es, por dentro, un ERP vertical completo.

Ese desajuste entre el mensaje y el producto es el hallazgo más valioso del ejercicio: define el hueco real del mercado y, a la vez, avisa de lo que no tiene sentido reconstruir.

Costes y compras

15
documentoscompraspedidos pendientes proveedoresproductoscategorías platos y escandallosmenúsmodificadores unidadesinventariosinventarios v2 incidenciasconciliaciónescandallos de grupo

Finanzas

4
bancatesorería pagossuscripciones

Ventas

2
ventasventas de grupo

Personas

1
nóminas

Grupo y holding

10
inicio de grupodocumentosgastos P&Lproductosventas proveedorestesoreríacomún holding

Plataforma

21
accesoactivaciónpermisos rolesonboardingnotificaciones integracionesidiomasconfiguración soporteportadapanel whatsappformulariosavisos glosarionovedadescomunes vacíosbajasportal
53 / 53 módulos clasificados en 6 áreas fuente: diccionarios de idioma públicos
05

Lo que este método no hace

Un caso de estudio que solo cuenta lo que salió bien no sirve para aprender. Estos son los muros con los que me encontré, y por qué el resultado sigue siendo útil a pesar de ellos.

El resultado no fue un hallazgo, fue una decisión

El mapa sirve para no repetir trabajo

Saber que el producto ya cubre 53 módulos cambia por completo la estrategia. Reconstruir lo que ya existe a un precio de suscripción bajo es la peor inversión posible. El hueco está en lo que el producto no hace —previsión, reputación, formación de equipo, cuadro de mando unificado— y en la capa que lo conecta todo.

El resultado del ejercicio no es código: es un perímetro. Y con un perímetro claro, el trabajo que queda es el que nadie más está haciendo.

Regla que me llevo: si ya existe un SaaS que lo hace por ~200 €/mes, no lo construyas — intégralo.