Antecedentes del Jack
"Es universal para todas las marcas de teléfonos, así que debe tener un nombre" en realidad no lo es. Ha habido muchos teléfonos a lo largo de los años que han utilizado varios conectores. La tecnología "estándar" no es un estándar formal como lo que se considera cualquiera de los estándares IEEE. La industria simplemente ha evolucionado con el tiempo para tender a utilizar lo que todos conocemos como conector de audio.
La típica clavija de sólo audio tiene 3 anillos, normalmente llamados Tip, Ring, Sleeve (TRS). Éstos suelen corresponder a la izquierda, la derecha y la tierra. Los fabricantes de teléfonos querían hacer que esta toma funcionara con los auriculares existentes, por lo que utilizaron un conector con 4 anillos, llamado punta, anillo, manguito (TRRS). Estos conectores corresponden a la izquierda, la derecha y la tierra, al igual que los 3 anillos, pero el conector final corresponde a un micrófono. Esto hace que si conectas un cable sólo de audio en él, la entrada del micrófono se conecta a tierra para que nada se dañe. También significa que si se conectan unos auriculares con micrófono a un dispositivo de sólo audio, el micrófono se conecta a tierra, con lo que tampoco se perjudica nada. Hay conectores similares de 2,5 mm (utilizados en algunos teléfonos para ahorrar espacio), de 3,5 mm (para teléfonos, reproductores de mp3, etc.) y de 0,25" (para auriculares más grandes, guitarras, etc.).
Datos sobre el gato
En cuanto a los "datos" que viajan por él, son puramente analógicos. Algunas personas han reutilizado estos cables para pasar datos en serie por ellos, pero son muy específicos de la aplicación. En el caso de los dispositivos que utilizan el conector para otros fines, pueden hacer lo que quieran siempre que la señal en la línea esté limitada por la banda, lo que significa que no se utilicen frecuencias altas. La razón de esto es que hay un filtro en la entrada que bloquea las frecuencias demasiado altas. Esta frecuencia cambiará dependiendo del propio aparato, pero suele estar en torno a los 12 KHz o así.
El método de envío de datos por este medio suele ser bastante similar al funcionamiento de los módems de las líneas telefónicas. El concepto general es que hay un mapeo entre las frecuencias que se transmiten y los datos en serie. Si quisieras hacer ingeniería inversa de un sistema, tendrías que grabar la línea y mirar qué frecuencias hay. Lo difícil es averiguar lo que se supone que significan los datos resultantes.
Comunicación bidireccional
También me gustaría señalar que la comunicación bidireccional es posible en estos sistemas. La línea del micrófono se utiliza para enviar información al teléfono y las líneas de salida de audio se utilizan para enviar información de vuelta a su dispositivo externo. Si usted está tratando de hacer ingeniería inversa de un dispositivo, usted querrá mirar el micrófono, la izquierda y la derecha para ver si parece que hay alguna comunicación bidireccional.
Ingeniería inversa
Mencioné que la ingeniería inversa sería la parte difícil. Este es el método que yo utilizaría para hacerlo:
- Comprueba qué líneas tienen datos. Puedes utilizar el conector de audio de un ordenador para capturar los datos. Este será probablemente el método más fácil para ver los datos.
- Determina la tasa de símbolos. Básicamente, cuando observas los datos capturados, deberías ver puntos muy específicos en los que las frecuencias cambian.
- Fíjate si se utilizan frecuencias discretas y cuántas se utilizan al mismo tiempo. Por ejemplo, podría haber 6 KHz, 8 KHz, 10 KHz y 12 KHz. Estos podrían asignarse a 4 bits por símbolo. Así que si ves 6 y 8 a la vez puede significar 1100 (o quizás 0011). Mira el siguiente símbolo y podría ser 6, 8 y 12 y podría significar 1101. Por supuesto, si se trata de un protocolo personalizado, podría significar lo que ellos quisieran. Pero esto le dará al menos un comienzo.
- Suponiendo que hayas recogido los datos ejecutando una tarjeta de la que conoces los datos, puedes buscar patrones. Aquí es la información incluida en las tarjetas. Puedes hacer cosas como, por ejemplo, si tu tarjeta tiene una secuencia corta que se repite, mirar si tus símbolos tienen un patrón de repetición similar. Una vez que hayas resuelto algunos de estos patrones, deberías ser capaz de hacer una comparación 1 a 1 para el resto de los números, deberías ser capaz de tener una idea bastante buena de lo que se está enviando.
Puede que se envíen datos que no tengan nada que ver con tu tarjeta y que nunca sepas lo que significan, pero mientras conozcas la posición de los datos que te interesan, eso es todo lo que se necesita. Sólo hay que esperar que el fabricante del hardware no haya puesto ninguna medida "antihacking" o "antireutilización". Es posible que el diseñador haya utilizado la comunicación bidireccional para proporcionar encriptación. También es posible que mezclen todos los datos para que sea difícil averiguar qué es qué. Sin embargo, yo diría que es poco probable que hayan hecho algo de esto.