por ThE InSpEcToR
Hoy se cumple una semana
desde la publicación del desafío
25 de ESET y esta entrada se dispone a compartir
el como llegué a la solución.
El reto dice: "Te dejo el mapa con la “info” de las torres de celular" y efectivamente
la imagen tiene marcadas dos torres de celular, sin embargo, esta
información no es suficiente, así que procedí a guardar una copia
de la imagen, de la cual lo primero que se observa es que se
encuentra en formato jpg, y si se abre el archivo con un editor
hexadecimal se puede observar al final una cantidad de bytes que no
corresponden al formato de la imagen, dado que esta debe terminar con
la secuencia 0xFFD9.
Tomando los bytes que le
siguen y guardándolos aparte, se obtiene un archivo cuyos primeros
bytes son 0x504B, lo que indica que es un archivo comprimido en zip,
que al intentar descomprimirlo, pregunta por una contraseña, si se
mira el archivo zip con el editor hexadecimal se pueden ver al final
una secuencia de bytes que no pertenecen al formato:
Usando la pagina md5decrypter se puede obtener el texto plano del hash:
password123, al ingresar la contraseña para descomprimir el zip se
obtiene la "info", que corresponde a 4 archivos de texto
que son:
El archivo notas dice que
el tiempo de procesamiento de las torres y del celular se tomará
como 0.
Los archivos de Log
Torre1 y 2 tienen tiempos de comunicación entre un móvil y las
torres.
El archivo triangulación
tiene la url de una pagina que permite trazar un radio alrededor de
un punto geográfico Free
map tools.
La descripción del reto
tiene las coordenadas de las dos torres:
Sin embargo, se
encuentran en un formato de grados, minutos y segundos, mientras que
la pagina espera esa información solo en grados, así que una
función en Python para hacer la conversión podría ser:
Aplicando la función con
las coordenadas suministradas se obtiene:
>>>
gradminseg2grad('S',34,37,19.2)
-34.622
>>>
gradminseg2grad('W',58,22,29.9)
-58.374972
>>>
gradminseg2grad('S',34,37,57.1)
-34.632527
>>>
gradminseg2grad('W',58,23,18.5)
-58.388472
La descripción del reto
da la velocidad de la luz en microsegundos que es:
1μs -> 299792,458mm
Así que tomando el
tiempo entre la comunicación de las torres y el móvil y teniendo en
cuenta que el log de la torre mide el tiempo de ida y vuelta se debe
dividir ese tiempo entre 2 para obtener el tiempo que tarda en llegar
la info hasta el móvil, luego se multiplica por la distancia
recorrida por la luz en un microsegundo y se obtiene:
μs entre el móvil y la
torre uno
18,07918 / 2 = 9,03959
9,03959 x 299792,458 =
2710000,90541222
μs entre el móvil y la
torre dos
17,27862 / 2 = 8,63931
8,63931 x 299792,458 =
2589999,980324
Por ultimo hay que tener
en cuenta que esos datos están en milímetros, por lo que deben
convertirse a km que es el formato que pide la pagina de
triangulación, la pagina también permite cargar los datos en
formato CSV, asi que el contenido con las coordenadas y el radio de
la circunferencia quedaría:
La pagina genera dos
circunferencias en el mapa donde hay dos puntos que cumplen con las
distancias entre el movil y las dos torres, sin embargo la
descripción del reto dice: "El punto de encuentro esta dentro
del mapa" por tanto, de los dos puntos, el punto que se
encuentra dentro del mapa es la "Plaza del Almirante Brown"
el cual desde donde se originó la llamada y a su vez el punto para la reunión el día jueves a las 18:00h.
No hay comentarios.:
Publicar un comentario