Escribiendo la aplicación
El principio es realmente muy simple, ya que sigues los mismos pasos que un bebé da para entender cómo hablan sus padres. Escuchas, observas lo que sucede, intentan replicar lo que escuchaste, esperando obtener la misma reacción.
Por ejemplo, un bebé podría inferir a su alrededor que “quiere pasta” le dará a alguien pasta y “quiere pizza” le dará pizza. Pueden comenzar con “querer pizza”, verificar que obtuvieron pizza, luego continuar con “querer chocolate” y ver si viene chocolate. Si es así, sí, el bebé ahora sabe que acaba de dominar el comando WANT de la API indocumentada de sus padres.
Para una aplicación móvil, el principio es el mismo, hace que la aplicación funcione en un entorno monitoreado (por ejemplo, solo se comunica a través de WiFi local, o trabajando en un emulador …), lo trabajas de manera muy limitada e intentas descifrar qué es enviando.
- ¿Cómo utiliza su equipo el software de gestión de proyectos (JIRA, Asana, Trello, etc.)?
- ¿Cuál es el mejor software 'desconocido' para Linux?
- WhatsApp: ¿Por qué no puedo ver el DP y el estado de WhatsApp de mi amigo aunque ambos nos hemos guardado el número?
- ¿Dónde puedo descargar Windows 7?
- ¿Cuáles son las herramientas de software libre para planificar su tiempo?
Si ve una conexión TCP en algún puerto 80 con “GET / user / foobar / newsfeed HTTP / 1.1 \ nHost: www.superduperapp.com”, bueno, jackpot. Dependiendo de la aplicación, es posible que deba superar el cifrado, algún formato binario personalizado, etc.
Cuando cree que comprende algún comando, intenta operarlo con su propio código y reza para que haga lo que pretendía.
Controlando
Bueno, no hay forma de saber quién está en el otro extremo de una conexión IP. Si su código usa algún esquema inteligente, ese esquema se puede aplicar ingeniería inversa. Si su código usa criptografía, las claves deben estar presentes en el cliente que distribuye, por lo que otra persona puede recuperarlas y usarlas.
Puede hacer que sea un poco más difícil para los ingenieros inversos, nunca frustrarlos por completo.