Solve-It EE26: Nivel 4

Vamos con uno de los niveles que únicamente sacó un grupo (Barcelona92):

Captura de pantalla 2018-07-29 a las 11.26.40.png

Este es su enunciado con unas cuantas pistas más o menos normales y entendibles y luego con su posterior pista … casi indescifrable …

A este solveit la verdad es que no le dedicamos demasiado tiempo. Nos mantuvo bien entretenido el solve-it 2 la mayor parte del tiempo … No obstante alguna vuelta que otra (y paseo por el el pabellón) ya dimos.

Con ese croquis que nos aparece ahí, estaba bastante claro que tenía que sera alguna cosa que teníamos que buscar por ahí … una T invertida? a saber…

Las tres primeras pistas estaban bastante claras en general más o menos…

La primera nos indica casi literalmente… buscad en el pabellón 5 (el de la party) ya que en el 3 (opengune) y el 1 (dormitorios) “te harán perder el tiempo”, es decir, ahí no nos ha puesto lo que sea que tenemos que buscar.

La segunda nos dice que no hay que molestar ni tocar nada ya que “todo funciona por arte de magia”. Bueno, supusimos que con esto se refería a que no tenemos que andar preguntando ni incordiando a nadie (como hicimos la mayoría de los grupos con el solve-it 3 …). El tema de “todo funciona por arte de magia” no lo comprendimos excesivamente bien … supongo que si hubiéramos topado de inicio con lo que teníamos que buscar lo habríamos llegado a comprender.

Por cierto que hay una pista más en el título en referencia a esta “magia”… Luego la comentaremos.

La tercera pista deja claro que hay duplicados (tecnología RAID-1). Sea lo que sea que hubiera que buscar, están duplicados … supusimos que el pabellón 5 es lo suficientemente grande como para poner en un único punto lo que teníamos que encontrar…

El recordatorio no lo vamos a comentar y la pista ……….. tampoco … Todavía no entendemos muy bien a qué se refería marcan con esa pista …

Vamos al tema en cuestión.

Si nos dabamos un paseo por el pabellón 5 de la euskal y nos íbamos fijando bien a una altura de 1.4m podría darse el caso de que encontrásemos cosas como esta:

O esta:

Efectivamente era lo que había que buscar …

Y había un montón, en concreto 28, aunque con 14 (no repetidos) eran suficientes para resolver el nivel.

Y no era la disposición dentro del pabellón de esas pegatinas lo que había que tener en cuenta para resolver el nivel … aquí es donde entra en juego la pista “magia” que hemos dejado al margen un poco antes.

Si nos fijamos en el titulo del level: “NO F*!%ING CLUE” y cogemos las iniciales del mismo tenemos … NFC

Por si no sabéis qué es NFC os lo digo yo. Básicamente se trata de una tecnología de comunicación inalámbrica (Near Field Communication) basada en radiofrecuencia que ahora se usa bastante para el tema de pago con teléfonos móviles, intercambio de datos entre móviles, identificación de acceso tipo Forfait (los tornos esos de las pistas de esquí) …

Si echamos un ojo a la pegatina que tenemos en la bandera de Euskaltel en la captura anterior, pero por la parte posterior, podemos apreciar levemente las espirales:

img_1724.jpg

Sabiendo esto, ahora con casi cualquier movil moderno podemos leer el contenido de estos chips. Lo que contenían eran líneas como la siguiente:

img_1726.png

En general eso no dice mucho … pero bueno, si seguimos capturando información de las pegatinas que nos íbamos encontrando, vemos que, los datos de la izquierda son una fracción de 14 elementos y al final si capturamos todos (y como digo había repetidos) tenemos esta lista de datos:

01/14 : 02
02/14 : 07 01
03/14 O : 11
04/14 : 13
05/14 H : 06
06/14 O : 11
07/14 : 09
08/14 O : 13
09/14 : 12 07
10/14 O : 13 02
11/14 : 01 03
12/14 : 14
13/14 : 08
14/14 : 01 12

Tabulando un poquito para que quede todo más bonito tenemos :

photo_2018-09-14_10-21-17.jpg

La verdad es que esto … no llegamos a sacarlo con lo que no sé si habríamos llegado a alguna conclusión. Os adelanto que teníamos un farmacéutico en el grupo, así que igual habríamos dado con la solución más o menos fácilmente, pero a priori a mi una lista así, no me diría nada.

Si nos fijamos vemos que, ignorando la fracción, tenemos 2 campos separados por ‘:’ y en el campo de la derecha nunca pasa de 14 con lo que podríamos deducir que son uniones.

Si hacemos un croquis sobre la marcha de las conexiones que parece que hay entre los distintos elementos nos topariamos que queda algo asi (he puesto los numeros en circulo porque en linea era un cristo):

IMG_1988.JPG

Y entendí que aquí es donde tendría algo de sentido la pista de marcan “beauty matters etc… etc… “.

Si logramos colocar todos esos valores y conexiones sin que se intersecten *igual* podría verse algo …

Se me ocurre ahora mismo que para calcular la forma de esa castaña de manera que no cruce ninguna conexión, podríamos utilizar el software gratuito de cálculo de circuitos integrados “Fritzing” … Vamos a probar a ver si sale …

Con un poco de paciencia y arrastrando los “transistores” para que no se cruce ninguna linea (de ahí lo de “beauty matters”) vemos la figura de la parte inferior…

Si ahora dibujamos con los numeros y letras y con todas las conexiones faltantes obtenemos esto:

IMG_1989.JPG

Posiblemente a la gente que haya estudiado quimica esto le pueda resultar familiar o sonar de algo … Yo igual, como muuuuucho, podría haberlo asociado a química orgánica … y nada más xD. Ya que buscar el compuesto del que se trata … ya habría sido otra historia …

En resumidas cuentas; se trata del siguiente compuesto:

 

336px-Aspirin-skeletal.svg

ácido acetilsalicílico

(o comúnmente llamado: aspirina)

 

 

 

Solve-It AE01: Nivel 4

Hoy me sentía inspirado (y vale, también algo aburrido …) después de llegar del trabajo y se me ha ocurrido echar un ojo por encima a un solve it que tenía por ahí pendiente de revisar:

Captura de pantalla 2018-08-29 a las 15.59.32

Se trata de un archivo de sonido .ogg (‘syster.ogg’ concretamente). Que al abrir suena bastante chirriante (muy agudo y bastante ‘roto’).

La gente un poco viejuna (como yo) enseguida se puede dar cuenta de que se trata de un sonido que se emitía hace años por una cadena de televisión de pago y que cuando sonaba además se veía así de mal:

Nagrasyster_encoded_frame.png

(Bueno, en la captura se puede apreciar claramente de qué cadena se trataba 😉

(os dejo el fichero de sonido para que lo oigais pero con video: marcan solamente nos daba el sonido como digo 😉

Es curioso que nada más escuchar el fichero sonido codificado, sólamente con oir el inicio pensé … eh! esto es “You never gonna give you up !! FIJO”… Y efectivamente lo era!!! pero …. la cosa no iba a ser tan fácil …. Ni la contraseña era “rick astley”, ni “you never gonna give you up” ni nada … había que descodificarlo …

Indagando un poco por internet, pude descubrir que el sistema de codificación que utilizaba Canal+ se hacía llamar Nagravision/Syster (de ahí viene el nombre del fichero de audio de hecho, una pista bastante clara).

Si abrimos con audacity el .ogg vemos que tiene esta pinta (con el análisis de espectro):

Audacity_01.PNG

Como vemos no hay frecuencias bajas, todo son frecuencias altas en torno a 300Hz hasta 15000Hz. Es curioso, no tenía ni idea de que este sistema de codificación dejase así el sonido.

Si buscamos en internet podemos encontrar un trozo de artículo que dice muy básicamente, cómo funciona el encriptado de Nagravision/Syster:

Syster_01.PNG

Al principio de este texto habla de cómo se codifica el video y demás, pero no nos interesa eso…

En la parte del audio dice cómo funciona. Literalmente “muy rudimentario”: invierte el espectro de sonido en torno a la frecuencia 12.8 kHz. Si lo pensamos tiene sentido: si ponemos en la frecuencia correspondiente a lo que tenemos ahora en 12.8 kHz, a la frecuencia 0, y si luego tiramos desde ese punto hacia frecuencias más bajas en la gráfica que tenemos y las asociamos a las frecuencias altas … es muy posible que tengamos la solución:

Audacity_02.PNG

El problema es … ¿cómo vamos a hacer eso? => bueno, seguro que audacity tiene alguna herramienta para invertir el espectro sobre una frecuencia 😉 …

Buscando por internet logré encontrar algo de información sobre este tema:

http://www.svengrahn.pp.se/trackind/scramble/scramble.htm

https://forum.audacityteam.org/viewtopic.php?f=39&t=77214

Esencialmente es un manual sobre un comando de Audacity molón llamado “Nyquist” (el famoso Nyquist y su amigo Shannon hacen acto de presencia …) que sinceramente no me apetecía ponerme a estudiar … No obstante, estoy seguro de que pensando un rato y un poco más de la cuenta, incluso que hasta con algún ejemplo de los que pueden venir, podría haberme salido sin mayor problema …

En cualquier caso, lo que hice fue más sencillo (algo realmente no muy habitual; ya que siempre voy a lo complicado 😛 …); pues esta vez pensé: “SEGURO, que alguien ya ha hecho un decodificador de audio de Syster…”. Y efectivamente buscando en internet encontré algo:

http://cryptimage.vot.pl/cryptimage.php

Pero este software tenía un problema …. y es que no acepta directamente los archivos de audio… por lo visto necesitan que sean de video…:

CryptImage_04.PNG

Así que nada … habrá que hacer un archivo de video … ponerle el audio … y luego ya pasarle por esta aplicación … porque sí, lo he comprobado, esta aplicación descodifica también audio además de video:

CryptImage_02.PNG

Total, que me descargué VirtualDub y me creé un vídeo de unos 6000 fotogramas (a 25 fps son unos 4 minutos de vídeo y el audio de marcan dura exactamente 3 minutos 30 segundos así que nos vale de sobra).

Y entonces es cuando después de crear el fichero de video en VirtualDub, voy a intentar meterle el sonido y ….

VirtualDub_03.PNG

¬¬

Todo problemas ….

Pues nada, voy a pasarlo a .wav… que ese formato seguro que acepta. La verdad es que no me apetecía andar buscando en internet ningún conversor y tenía reciente el haber cacharreado con ficheros de sonido en matlab así que en estas 3 líneas de código pasé el .ogg a .wav:

Captura de pantalla 2018-08-29 a las 16.03.49.png

Ahora sí que sí, VirtualDub lo traga bien:

VirtualDub_02.PNG

Listo, vamos a compilar todo … :

VirtualDub_01.PNG

8 Gb de archivo … bueno… no pasa na … 😛

Una vez terminó de hacerlo. Lo paso finalmente por el software de CryptImage …

CryptImage_03.PNG

Después de otro buen rato … finalmente tengo el fichero de audio perfectamente descodificado!

Y efectivamente …. se trataba de Rick Astley y su Never gonna give you up ! … marcan 100%

Si podéis ver el video, hacia el minuto 2:04 hay una voz que dice “cual es el productor del vídeo?

Y a partir de aquí, que estaba ya resuelto en un 99% fue donde perdí un poco los papeles porque NO encontraba quién demonios era el productor !! :/

Tras un buen rato buscando, tuve la brillante idea de echar mano de IMDB …..

Producer.PNG

Ahí tenemos nuestra contraseña 😉

Solve-It EE26: Nivel 3

Finalmente, vamos con el nivel 3 de esta euskal.

En el enunciado vemos lo siguiente:

Captura de pantalla 2018-07-29 a las 11.26.51.png

“Buscanos” : palabra clave que no entendimos muchos de los concursantes.

Directamente y tras una rapida búsqueda en google de “all your ink are belong to us”, nos dimos cuenta de que esto tenía que ver algo con la zona retro (debido al juego de Splatoon) así que allí fuimos a decirles la frase …

No. La cara rara con la que se nos quedaron mirando nos indicaba que ibamos mal por ese camino …

Mientras unos nos peleabamos con el nivel 2, otros fueron diciendo la frase a diestro y siniestro por ahí a gente ya aleatoria por toda la Euskal … (de aquí que igual te vinieran posibles quejas a posteriori marcan  …. O:D

Finalmente, uno de nosotros optó por la solución simple …. ir a decir la frase a marcan o imo… Y así fue como nos dieron este pedazo de hoja impresa plastificada:

photo_2018-08-17_15-49-51.jpg

Lo que se puede ver en ella es … lo que parece: un mogollonazo de letras impresas una encima de otra haciendo imposible ver nada legible en ellas.

Estuvimos observando esta etiqueta de mil formas distintas para ver si veíamos algo … Igual poniendo en perspectiva el trozo de papel podríamos ver algo ….. NADA.

Tras lo que sería … una hora o dos de andar dando vueltas con el papelito probando mil cosas (la luz del movil a traves, en la pantalla LCD del PC, con algunos leds que teniamos por ahi, ….),

llegamos a pensar que tendría que ser algo que tuviera que ver la luz UV. (ultravioleta) No obstante, no podía ser … no teníamos por qué disponer de serie con una luz UV en el móvil ni mucho menos de una linterna UV …

He de decir sin embargo, que no ibamos mal encaminados (nos equivocamos en la longitud de onda … xD).

En cualquier caso, y descartada la opción de la luz UV, fui yo mismo quien dijo … “seguro que el troll de marcan lo ha plastificado porque hay algo escondido dentro …” así que agarré una navajilla que tenía por ahí un compi y corte el plastico al ras del papel por una de las partes estrechas. Luego fue estirar para terminar de abrir el plastiquete y … sorpresa!!

photo_2018-08-17_16-12-19

… no, no hay nada … ¬¬

Con la de tinta que había impregnada en el papel en la parte posterior (el trozo de papel solamente estaba impreso por una cara), el plástico del plastificado se soltó a la perfección y, como se puede apreciar en la foto, se nos rompió un poco también al ir llegando al final. No le dimos mas importancia a este trozo de plastiquete y nos metimos con la parte impresa.

Después de volver a examinarla con mil luces opté por darle un pequeño remojón (veis el trozo de papel que falta? xD) Ahí me di cuenta que había tinta que no era tinta negra pura, ya que con el agua se corrió algo la tinta a color con la que marcan había puesto la contraseña. De hecho, yo pensé en un principio que era bolígrafo. Así que la clave tenía que estar ahí aunque no la vieramos! Siguiente paso? Conseguir otro trozo intacto …

No fue hasta la mañana siguiente cuando a un compañero se le ocurrió mirar en lo que habíamos desechado: el trozo de plástico del plastificado (y semiroto). Le había puesto un celo al movil que había pintado con rotulador azul para ver si lograba ver algo … y conseguía ver algo, pero no por la luz azul. De hecho, se veía mejor a simple vista.

Lo puso sobre un fondo blanco (dejando olvidadisimo su invento del movil con el celo pintado de azul-rotulador xD…) y:

photo_2018-08-17_16-38-13

Ahora sí, se veia algo!

WavelenghtDivisionMultiplexing

Y ahora la explicación de cómo debía haberse resuelto originalmente el solve-it …. xD

Nos comentaba marcan que el negro hecho a base de mezcla de tinta de color de las impresoras (cyan, amarillo y magenta) es sensible a la luz INFRAROJA (que no ULTRAVIOLETA, que fue lo que pensamos utilizar al principio).

Resulta que marcan había colocado bajo un televisor en la zona de redes un pequeño faro de leds infrarojos. Si poníamos el papel en ese foco, se podían distinguir (aunque he de decir que vagamente) las letras con la solución a este solve-it.

Estando intentando resolver el siguiente solve-it (buscando las pegatinas con las ‘ T ‘ invertidas, que ya comentaremos en el siguiente post) vimos un montón de gente dando vueltas en torno al foco IR con el trozo de papel (cuando nosotros ya habíamos resuelto éste) y fue gracioso que nos preguntamos …. ¿por qué andarán enredando ahí con el trozo de papel?, si el solve it no se hace asi … de hecho … pensamos que ese foco tendría que ver con el solve-it 4 y anduvimos con un movil grabando el foco, pensando que igual se podría apreciar algo que a simple vista no se veía …

Solve-It 4 : 2010

Antes de continuar con los solve-its de este año, vamos a hacer un inciso y a detenernos un momento en un solve-it del año 2010. De los más difíciles (yo creo) que ha puesto marcan.

Nos propone el siguiente enunciado:

Captura_Enunciado.PNG

Dentro de éste hay un enlace a lo que parece un fichero. Se trata de una imgen .png:

goindown.png

“goindown.png”

Antes de continuar he de decir, que tras estar dandole vueltas varios días y también dando la caca a @marcan42 por twitter pidiendole pistas … este solve-it no lo saqué … la verdad es que es de los “mas o menos” difíciles de marcan (como él bien me dijo por twitter 😉

En esta imagen hay que fijarse en un par de cosas; de hecho, en tres para ver por donde van los tiros:

La primera es que se trata de un .png y … es una fotografía … normalmente las fotografías son en formato .jpg. Si hacemos un ‘file’ sobre el archivo .png nos da la siguiente información:

Captura_FileGoindown

Se trata de un PNG de 1659×866, 8 bits de profundidad de color y lo realmente importante: tiene una capa de color Alpha (RGBA).

La segunda es la pista que nos da en el propio level. Todo es cada elemento tiene su razon de ser. Esto significa que los puntos están a diferentes alturas bien marcados en un cuaderno cuadriculado para indicar que es así porque tiene que ser así; es decir, que si un punto esta a 0.5 cuadrados más abajo que otro, es porque tiene que serlo.

Y finalmente la tercera son esas 2 líneas horizontales marcadas en la gráfica. Si nos fijamos cada una divide a la grafica en 6 cuadrados del cuaderno de altura; además de esto, hay que tener en cuenta que los cuadrados del cuaderno nos los divide por la mitad, lo que hacen que haya 12 alturas cada división.

Vamos por partes.

En primer lugar vamos a extraer el canal alpha de la imagen a ver qué vemos. Para ello usamos el comando “convert -alpha extract goindown.png alpha.png”. Luego abrimos la imagen con imageMagick y veremos que sale toda en blanco:

Captura_alpha.PNG

Sin embargo, si le damos a rellenar con negro en cualquier punto de la imagen obtenemos:

Captura_MiReDo.PNG

MiReDo>>

Esto es otra pista, que esencialmente nos esta diciendo que la gráfica se trata de notas musicales, que tenemos que pasar muy rapidamente.

Es por eso por lo que hay 12 divisiones entre lineas: se trata de divisiones entre octavas de todas las notas musicales:

Captura_ascendente_piano

Averiguado esto, y sabiendo ya de antemano la solucion, cogí y (con mis prácticamente nulos conocimientos de música) asumí lo siguiente (tras varias ojeadas en wikipedia y alguna otra web):

Captura_ascendente.PNG

Total, que teníamos que ponernos a producir música en base a las notas de esa gráfica.

Echemos mano de Octave (que para esto nos va a venir bien y así aprendemos un poco cómo funcionan las notas). Vamos a ver si conseguimos que suene algo decente.

En la wikipedia (entre otros) nos dan la frecuencia a la que vibran cada una de las ondas de las notas musicales (he puesto antes la captura).

Así que vamos a empezar por eso:

Captura_notas_octave

Esta realmente es la parte fácil … ahora hay que hacer sonarlas, lo cual realmente no es muy complejo tampoco … y más si buscamos un poco por internet, que encontraremos información de cómo hacerlo, ya sea con Octave o Matlab.

En primer lugar hay que elegir una frecuencia de muestreo (el mundo digital es lo que tiene…). Esto me da un poco igual, pero ya que es gratis voy a poner 44100Hz que es más o menos lo normal (además de 48000Hz):

>> fs=44100;

Posteriormente hay que hacer una señal sinusoidal (o cosenoidal, da lo mismo), que oscile con la velocidad la frecuencia de la nota que queremos. Para ello en Octave primero definimos una variable en la que introduciremos de tiempo que queremos que suene la nota, por ejemplo 1 segundo. Con esto creamos un array de tiempos que utilizaremos a continuación para generar la onda:

>> duracion = 1;
>> t = [0:1/fs:duracion];

Esto nos da un array de tiempos de 44101 valores/muestras. Como vemos, cuanta más frecuencia de muestreo, más muestras tendremos en el array ‘t’.

Ahora sencillamente hay que generar la onda con una de las frecuencias correspondientes a una nota, por ejemplo, la nota ‘LA’ (440Hz). Para generar una onda de amplitud S (en este caso cogeré S=1 para simplificar) cuya frecuencia sea 440Hz tenemos que hacer lo siguiente:

S·sin(w) , donde w = 2·pi·f => nota = sin(2·pi·440·t)

Aplicando esto en Octave tendríamos que hacer:

>> x = sin(LA*2*pi*t);

Si ploteamos la forma de esta señal tenemos:

>> plot(t(1:500),x(1:500));

(con el comando de arriba ploteamos solamente las 500 primeras muestras de la señal ‘x’)

Captura_SinLA.PNG

Donde el eje de abscisas es el tiempo (en segundos) y el eje de las ordenadas es la amplitud.

Si queremos oir esta señal, bastará que escribamos lo siguiente en la ventana de comandos de Octave:

>> sound(x,fs);

Ahora bien, aquí hemos representado y escuchado unicamente una nota (LA) durante 1 segundo… pero ahora tenemos que poner todas las notas, que nos presenta marcan en el dibujo, una de tras de otras y hacerlas sonar.

Bueno, antes de seguir comentar que en la captura que puse antes, las notas están colocadas de forma errónea en la octava, ya que no es ascendente desde el origen (desde el eje de ordenadas = 0 hacia arriba no empieza en DO (C4), luego al llegar a la posicion 12 es DO (C5), etc…) sino que la linea horizontal superior (24) se trata de la nota DO (C5) y la siguiente linea horizontal (12) representa la nota DO (C6). La forma correcta es:

Captura_nOTAS_bIEN.PNG

Hay que decir que para deducir este orden lo que hice fue prueba-error en relación a la solución que yo ya sabía … 😉

Cabe destacar que los puntos intermedios entre notas de la gráfica corresponden a las teclas negras de los pianos (notas sostenidas/bemoles (en la escala mayor; la típica, vamos): en la lista que he creado antes en Octave son las notas que llevan la ‘_’ al final son las notas sostenidas de la escala mayor).

>> c = 2*pi*t;
>> x = [sin((DO*2)*c), sin((SOL)*c), sin((DO*2)*c),sin((MI*2)*c),sin((SOL*2)*c), sin((DO*4)*c), sin((SOL*2)*c), sin((SOL_)
*c), sin((DO*2)*c),sin((RE_*2)*c), sin((FA_*2)*c), sin((RE_*2)*c), sin((FA_*2)*c), sin((DO*4)*c),sin((RE_*3)*c), sin((SOL_*4)*c), si
n((RE_*4)*c), sin((LA_)*c), sin((RE*2)*c), sin((FA*2)*c), sin((LA_*2)*c), sin((FA*2)*c), sin((LA_*2)*c), sin((RE*4)*c), sin(FA*4)*c, sin(LA_*4)*c, sin(FA*4)*c ];

He metido el array de tiempos en la variable ‘c’, que se ve arriba, para que el codigo quedase algo más legible.

Lo que hace esa linea de código es concatenar los arrays de las ondas que generamos para cada nota (cada diferente frecuencias), en un único array ‘x’.

Si os dáis cuenta también, hay algunas ‘notas’ multiplicadas por 2 o por 4.

Esto es debido a la octava. Según en la octava en la que estemos, si estamos haciendo un DO (C4), para subir de octava, DO (C5), hay que multiplicarlo por 2 (su frecuencia en una octava mayor es el doble). Y si queremos hacer un C6, habría que multiplicarlo por 4 (o la C5 por 2) y así sucesivamente y con todas las notas.

El resultado de hacer esto es un array gigantesco de 1190727 elementos:

Captura_chorizo.PNG

Con esto tenemos un sonido que dura 27 segundos (1 segundo por nota) … cosa que no cuadra mucho con el ‘>>’ que vimos en la primera pista del .png (en el canal alpha).

A partir de aquí es probar distintas velocidades hasta que de algo decente.

Si hacemos que la duración del sonido sea en total de 1 segundo => 1/27 = 0.031s por nota:

>> duracion = 0.031;
>> t = [0:1/fs:duracion];
>> c = 2*pi*t;
>> x = [sin((DO*2)*c), sin((SOL)*c), sin((DO*2)*c),sin((MI*2)*c),sin((SOL*2)*c), sin((DO*4)*c), sin((SOL*2)*c), sin((SOL_)
*c), sin((DO*2)*c),sin((RE_*2)*c), sin((FA_*2)*c), sin((RE_*2)*c), sin((FA_*2)*c), sin((DO*4)*c),sin((RE_*4)*c), sin((SOL_*4)*c), si
n((RE_*4)*c), sin((LA_)*c), sin((RE*2)*c), sin((FA*2)*c), sin((LA_*2)*c), sin((FA*2)*c), sin((LA_*2)*c), sin((RE*4)*c), sin(FA*4)*c, sin(LA_*4)*c, sin(FA*4)*c ];

Con esto finalmente, pasamos a .ogg el fichero:

>> fich=’menudaCrisis.ogg’;
>> audiowrite(fich,x,fs);

Y sonará así:

Descargar fichero .ogg final

… para el que después de oír el fichero de sonido aún no sepa cual es la contraseña… os diré que es:

seta

Solve-It EE26: Nivel 2

Vamos ahora con el nivel 2 de los solve-its.

En este solve-it nos encontramos con el siguiente enunciado, que nos propone imobilis:

photo_2018-08-03_12-07-04

Spin-Up: Que en este nivel el enunciado no es que fuera una pista … de hecho yo diría que más bien fue un troleo …

Si escuchamos el fichero de sonido nos encontramos con que es un disco duro acelerando y rascando (ese sonido que hace cuando hacemos lecturas/escrituras sobre el mismo) y finalmente desconectándose y decelerando.

Lo primero que hacemos directamente es pasarlo por el Audacity para ver a qué nos enfrentamos de forma más visual:

IOPS01

Lo primero que se nos pasa por la cabeza al ver esto es el morse. Haciendo un analisis de espectros y ajustando algún que otro parámetro logramos obtener lo siguiente:

IOPS02

Ahí visualizamos más claramente donde están los pulsos que da el disco duro (lecturas/escrituras).

Podemos ver que cada cierto número de pulsos, y hasta un máximo de 5, hay un espacio de alrededor de 150 ms, por lo que separamos estos datos así en base a esos 150 ms:

4, 4, 2, 3, 2, 4, 4, 3, 2, 4, 4, 3, 3, 3, 3, 4, 4, 4, 1, 1, 3, 2, 3, 4, 4, 2, 4, 3, 1, 5, 1, 3, 3, 4, 1, 4, 1, 5, 1, 1

Esta lista de números es lo primero que obtuvimos pero no teníamos muy claro qué podíamos hacer con ella…

Teníamos esperanza de que pudiera ser morse, pero no tenía sentido, los pulsos eran iguales, no parecía haber diferencias notables entre lo que podrían ser los puntos y las rayas del código morse…

Pensamos bastante tiempo en letras asociadas a esos números pero también carecía de sentido, ya que estabamos hablando de 5 letras únicamente. Estuvimos dando vueltas a esto bastante tiempo a pesar de que habíamos visto que no parecía llegar a buen puerto en ningún caso…

Cambiamos un poco de tercio y basándonos en el nombre del fichero de audio hicimos algunas búsquedas por internet donde localizamos que habían logrado extraer datos de un disco duro por los ruidos que este emitía. Estuvimos echando un ojo también a un paper que encontramos sobre el tema pero… nos pareció que era excesivamente complejo… sobre todo para estar hablando de un solve-it de nivel 2…

Otra de nuestras opciones fue la de pasar a binario los elementos para ver si podíamos distinguir alguna forma o patrón:

IOPS03.PNG

No parecía tener buena pinta … pero confiabamos que tendrían que ir por ahí los tiros por ahí así que hicimos lo mismo pero cogiendo cada pareja de valores:

IOPS04.PNG

Agua…

O algo estabamos pasando por alto, o nos faltaba algún detalle más…

Seguimos por el camino de utilizar el título del level como “guía” y el propio nombre del fichero de audio, pero eso no nos llevaría mas que otros callejones sin salida. Analizamos el espectro de la señal en la zona “limpia” de la misma y sacamos algunas conclusiones (que no llevarían a ningun sitio… ):

IOPS05.PNG

Como vemos en la captura anterior, en el espectro frecuencia , la frecuencia dominante en este tramo correspondiente a 90Hz: eso nos dijo simplemente que el HDD estaba girando a 5400rpm … a modo de curiosidad es muy bonito, pero en lo que es avanzar para resolver el level, no nos serviría para nada…

Teniendo esto, hicimos por otro lado el análisis en frecuencia de cada uno de los bloques de conjunto de pulsos:

IOPS06.PNG

La frecuencia de 90Hz va a estar siempre ahí, pero al hacer ruido el disco duro se añaden más frecuencias, como se puede ver en el gráfico, y como estaban en torno a 90Hz también, pensamos que las frecuencias podrían corresponder a código ascii… pero era otro callejón sin salida:

IOPS07.PNG

Dejamos un poco a parte este nivel y nos centramos en el level 3…

Al día siguiente (ya viernes) lo retomamos un poco y optamos por la idea original del morse… que sabíamos de sobra que no era morse, pero también sabíamos que seguro que tenía algo relacionado o semejante con ello aunque no tuviéramos ni idea de qué podría ser…

Se nos ocurrió buscar por internet algo como “morse code variant” y fue cuando encontramos de casualidad, en imágenes de google, algo que nos llamó la atencion a los dos que estabamos mirando en la misma pantalla del ordenador esperando encontrar algo:

IOPS08.PNG

Una tabla de 5×5 (casualmente el máximo valor de pulsos que teníamos era 5!!) que asociaba por parejas de números una letra del abecedario… tenía muy buena pinta!

Empezamos a coger los datos numéricos de los pulsos de 2 en 2 y qué sorpresa cuando empezaron a salir cosas legibles:

4,4, t
2,3, h
2,4, i
4,3, s
2,4, i
4,3, s
3,3, n
3,4, o
4,4, t
1,1, a
3,2, m
3,4, o
4,2, r
4,3, s
1,5, e
1,3, c
3,4, o
1,4, d
1,5, e
1,1, a

Como veis, teníamos un código legible que tenía toda la pinta de ser la solución pero … no nos cuadraba bien la última letra …

thisisnotamorsecodea

… nos habíamos dejado algo o habíamos cogido ese dato de más?

En cualquier caso, primero optamos por introducir el código tal cual (incluida la ‘a’ del final). Pero no era la contraseña… así que … optamos por introducir el dato sin la última ‘a’ (al final ésta era la respuesta más sencilla; ¿qué datos iba a haber después de esa ‘a’?) y es AQUI cuando hicimos nuestra primera gran cagada: introdujimos la contraseña CON ESPACIOS:

this is not a morse code

A continuación, nuestra segunda gran cagada que fue la que hizo que se nos fuera de las manos este level, escribiendo auténticas idas de olla después. Fue al introducir a mano lo siguiente (entre otras cosas):

thisnotamorsecode

Sin el ‘is’ …

Luego este…

thisisnotamorescode

SI, 2 letras cambiadas por introducir a mano la password… y os preguntaréis que por qué sé que introdujimos las claves exactamente así (de mal) … luego lo contaré…

Total, que ya está liada: después de esto vino el despiporre y las estiradas de pelos y las juradas en griego incluyendo a imo en ellas (eh, pero siempre con cariño, que no se lo tome a mal nadie 😉

¿Qué posibilidades había de que hubiésemos encontrado ese código y NO fuera la contraseña? Era prácticamente imposible! encontrar un código y que sea una troleada? Pues la cosa es que lo pensamos… y como el nivel se llamaba Spin-Up nos obsesionamos por encontrar la clave en la arrancada del HDD.

Empezamos a pasarle filtros de mil tipos, espectros, calculamos aceleraciones, velocidades, luego empezamos a pasar a morse la clave, a binario, hexadecimal … y un sin fin de mierdas más sin sentido …

Fue el sabado a eso de las 11 de la mañana (a 1 hora para el deadline de la prueba) cuando un compi escribió la password con serenidad, tranquilidad y algo de cabeza y…  voilá, funcionó por fin !!! unas 12 horas liándola con la contraseña cuando ya la teníamos !

thisisnotamorsecode

Tras finalizar la prueba y después del deadline del apartado de Software Libre (sabado a las 23.59), fuimos a hablar con imobilis para ver si podríamos ver el log de las passwords que habíamos estado introduciendo desde que averiguamos la contraseña correcta.

He de decir, que cuando nos las mostró fue de los momentos mas desternillantes que he pasado durante esta Euskal. Había auténticas barbaridades, de las que algunas no sabíamos ni de dónde habían salido: vimos desde cosas como “No” o “El Equipo A” hasta “for the love of motherfucking god, what the hell’s missing here!”. Fue épico; llorando de la risa (gracias imobilis por ese momento !! xDDD).

Solve-It EE26: Nivel 1

Y otro año mas hemos estado en la multitudinaria Euskal Encounter (26ª edición) en la que, cómo no, hemos participado en el HackIt 2018 organizado en el apartado de Software Libre.

A diferencia de ikasten.IO (DiarioLinux), nosotros solemos obcecarnos con los Solve-Its más que con los Hack-Its (en nuestro grupo el fuerte no es la informática y los Hack-its en general se nos quedan grandes). Para el que no sepa, los Solve-Its están más orientados al manejo de software y el PC de forma más general y de uso común para llegar a las soluciones, mientras que los hack-its están más enfocados a tener habilidades de programación y conocimiento más profundo de tecnologías informáticas para dar con las soluciones.

No voy a alargarme mucho más con la introducción, pues como bien comenta en sus primeros párrafos el equipo de DiarioLinux en su web ikasten.IO, que al igual que nosotros participaron en este evento y que cuya lectura recomiendo ;), al final participar en este evento no lo hacemos principalemente por ganar, sino por aprender y pasar un buen rato … aunque hay que decir que “pasar un buen rato” ….. la verdad es sufrimos bastante para resolver las idas de olla de marcan & imobilis & company :P.

Entrando un poco en materia, de los 5 solveits de este año (aunque me pareció ver que inicialmente había 6), la gran mayoría de los equipos logramos sacar 3 de ellos y únicamente un equipo (Barcelona 92) consiguió sacar el 4º: no sin sufrirlo y tras buenas horas perdidas de sueño según anduvimos comentando con ellos al finalizar el evento …

Pero vamos al tema en cuestión…. aqui tenemos el primero de los Solve-its de esta edición:

 

photo_2018-08-03_10-52-35.jpg

Básicamente se nos presenta una tirada de imágenes que, con la pista del título del solve-it “Amigos Comunes”, no cuesta mucho averiguar en qué nos tenemos que fijar para resolverlo. De hecho, mientras yo estaba creando el usuario para “darnos de alta” en el evento, un compañero lo resolvió en pocos minutos.

El tema de este solve-it es que todos esos dispositivos que vemos en la imagen …

retro.png

… tienen que tener algo en común. Basta que busquemos un poco por Wikipedia o en Google en general.

Tenemos de izquierda a derecha lo siguiente: Commodore Amiga, Calculadora Texas Instruments TI-89, Sega Megadrive, Atari ST, Apple Lisa, Osciloscopio LeCroy 9400 y una impresora LaserWriter de Apple.

Si nos fijamos un poco, con buscar de hecho 2 o 3 de los dispositivos de la lista anterior, nos podemos dar cuenta de que comparten la misma CPU. Se trata de un microprocesador Motorola 68000 o MC68000.

Y ésta es la contraseña que nos daría acceso al siguiente nivel.

Solve-It GE08: Nivel 1

Vamos con otro solve it sencillito.

01.png

“El nivel menos significativo”. Una pista realmente importante …

Si intentamos buscar patrones en los números que aparecen en esa lista. no vamos a ver nada. Puntos sueltos que no significan mucho así que, ya que el nivel se llama “menos significativo” vamos a pasar a binario toda esa tirada de numeros.

Se puede hacer en python, pero yo he optado, cómo no, por usar Octave.

Para introducir los números en Octave yo he usado el notepad de toda la vida y he copiado la lista tal cual. Posteriormente con la magnífica herramienta de “Reemplazar” he ido reemplazando todos los numeros del 0 al 9 por su correspondiente numero pero añadiendo un espacio; por ejemplo “0” por “0 “. Y así vamos obteniendo:

02.png

Posteriormente he quitado los “intros” y he introducido en una matriz todos estos valores para manipularlos tranquilamente.

Escibiendo este pequeño código:

03

lo que hacemos es pasar a binario todos los datos respetando los 4 bits máximo que se necesitan para representar un número de una cifra: obtenemos lo siguiente (en la captura hemos sustituido los 0’s por espacios:

04.PNG

No se ve nada claro pero si nos fijamos un poco y dado que el nivel se llama “menos significativo” si miramos el bit menos significativo de cada cifra, podría haber algo:

05.PNG

Cómo modificamos el programilla para ello? facil:

06.PNG

Elegimos el ultimo bit de esa forma y obtenemos lo siguiente:

07.PNG

A simple vista no se ve mucho, pero si sustituimos los 1’s y los 0’s por algo que contraste mas:

08.PNG

Obtenemos la solución:

3v3n4ch1ldC4nd0it

PD: … Visto esto podría habersenos ocurrido antes pero …. basta con mirar que el numero de la lista original sea un numero par o impar…. el bit menos significativo en binario, nos indica si el número decimal correspondiente es par o impar

Solve-It GE07: Nivel 4

Captura08.PNG

Vamos con otro Solve-It de los facilitos (la pista demasiado clara eh? marcan? mu facil :P)

Aquí nos da marcan un fichero de sonido llamado “ubercat.ogg” que inmediatamente abrimos con Audacity:

Captura05.PNG

La verdad que a simple vista … no tiene mucha historia. Sin embargo marcan nos da una pista bastante clave en este caso (para lo que es él normalmente … que da hasta las pistas codificadas…)

Vamos a echar un ojo al Espectro del sonido; audacity tiene una herramienta para ello:

Captura06.PNG

Vaya … qué cosas … Mira lo que nos encontramos en la banda por encima de los ~27KHz…

Tiene bastante pinta de que ahí hay algo…

Vamos a pasarle un filtro paso alto para quitarnos toda la morralla de la parte de las frecuencias inferiores a 27KHz a ver qué nos encontramos:

Captura07.PNG

Aplicamos el filtro y anulamos lo máximo que podamos el resto de frecuencias (con la configuración de la captura anterior) y nos sale esto:

Captura03.PNG

Choprechaa!! aquí hay algo, está clarísimo. Podría ser morse pero ….. los huecos y las franjas son bastante irregulares …. Vamos a acentuar estos cambios amplificando el “volumen” de la siguiente forma:

Captura04.PNG

Amplificamos al máximo permitiendo el corte de la forma de onda y …:

Captura01.PNG

… Bueno, a estas alturas y ya con este aspecto …. creo que está bastante claro de qué se trata …. 😉

Limpiamos un poquito la imagen y le pasamos por un lector de códigos de barras:

Captura02.PNG

Listo! tenemos nuestro código:

c0de_NYAN128

Hack-It 2010: Nivel 5

Retomando un poquito los hackits de hace algunos años me he topado a la tarde con uno que tenía a medias desde hacía bastante tiempo … este hackit de 2010:

Captura de pantalla 2017-11-13 a las 19.32.44

El señor marcan nos da una imagen en .png en el enlace:

amberpixels.png

Estos suelen ser los hackits/solveits que más me gustan. Este sin embargo me trajo un poco de cabeza durante bastante tiempo …. Y como siempre no era excesivamente dificil …. (sabiendo la clave para resolverlo, cualquiera es facil realmente…)

Empezamos por fijarnos en que en la imagen a simple vista hay pixels de 2 tonos de amarillo/ámbar; sin embargo, si miramos más detenidamente algunas zonas, podremos distinguir un tono de ámbar más pálido:

Captura de pantalla 2017-11-13 a las 19.38.44.png

Partiendo de ese dato, vamos a diferenciar los píxeles de ese color del resto de ellos con este código hecho en Matlab/Octave:

Captura de pantalla 2017-11-13 a las 19.43.40.png

Captura de pantalla 2017-11-13 a las 19.43.01.png

Parandonos a pensar un poco en la imagen, podemos ver que hay algo que destaca claramente en el centro mientras que hay algo de código que aparentemente parece seguir un patrón, por los alrededores del centro …

El siguiente paso que se me ocurrió fue desplazar las líneas horizontales para ver si se podía leer algo de esta forma…

Matlab y Octave tienen una funcion molona que rota arrays el número de rotaciones que se le indiquen: ‘circshift’.

La siguiente pregunta era…. vale… ¿y cuánto rotamos las lineas? Para responder a eso se me ocurrió fijarme en los puntos de la zona central que “parecía” que se repetían:

Captura de pantalla 2017-11-13 a las 19.49.24

Captura de pantalla 2017-11-13 a las 19.49.12

Como vemos, la diferencia es 213-110 = 103. Lo que haremos es, no solo hacer un offset de 103 en esa linea, ya que no dejaría nada claro. Tiene toda la pinta de tener el offset de linea en linea así que a cada linea le añadiremos un offset de 103; es decir, la primera 0, la segunda 103, la tercera 206, la cuarta 309, etc, etc…. Si hacemos eso con todos los pixels (del canal R (o sea, color rojo de la imagen RGB) unicamente en este caso) obtendríamos la siguiente imagen :

Captura de pantalla 2017-11-13 a las 21.22.05.png

El código con el comando ‘circshift’ que he comentado y que produce la imagen anterior es el siguiente:

Captura de pantalla 2017-11-13 a las 21.24.45.png

Qué curioso …. podemos leer casi claramente algo aqui:

Captura de pantalla 2017-11-13 a las 21.26.38.png

Si; dice “Buen trabajo ;)” no obstante…. parece como que la parte superior e inferior del texto no es correcta del todo… ¿por qué? ¿qué es lo que podría estar fallando para que se vea todavía algo mal?

Si nos fijamos un poco, vemos que en la ‘B’ de “Buen” falta la “capota” de arriba (la parte de arriba de la B y que la cierra) y vemos que ésta está más a la derecha en esa misma línea¿?¿?

Captura de pantalla 2017-11-13 a las 21.31.07.png

Además podemos ver cómo los pixels la parte de arriba de la ‘t’ y la ‘b’ (de la palabra “trabajo”) también están más a la derecha en esa misma línea…. ¿Y cómo es esto posible? ……. Pues la respuesta es bien simple: esto significa sencillamente que en una misma linea de la imagen orignal que nos da marcan hay más de una línea de la solución que tenemos que encontrar.

Hay que fijarse que en la imagen original (sin offsetear las líneas con el código de matlab de ‘circshift’ de antes), que podemos ver más arriba (en la imagen en blanco y negro), podemos apreciar que la “capota” de la ‘B’ originalmente está antes que el comienzo de los dos “palitos” que continúan formando la ‘B’ hacia abajo.

De estas observaciones podemos sacar una conclusión: hay que partir las línas cada x para ir formando la imagen final…. Es decir, hay que ir leyendo la imagen linea a linea de izquierda a derecha como si fuera texto y haciendo “intro” cada cierto tiempo

Y ahora la gran pregunta…. ¿cada cuánto hay que hacer “intro”? Imagino que pensando un poco podría sacarse alguna conclusión con los datos que ya tenemos pero… eh, que tenemos un ordenador para sacar todas las posiblidades!!!

Vamos a ello:

Escribiendo el siguiente código:

Captura de pantalla 2017-11-13 a las 22.03.03.png

Conseguimos ejecutar lo siguiente y podemos más o menos, estimar qué valor es el que nos deja una solución legible:

Como podemos ver…. la búsqueda la podemos acotar entre 400 y 450 así que yendo esta vez más despacio descubrimos que el valor “mágico” es … 408:

Captura de pantalla 2017-11-13 a las 22.06.13

Listo! tenemos el texto bien puesto en su sitio!! Vamos a resaltar lo que está en color pálido (como hemos hecho al principio) y…

Captura de pantalla 2017-11-13 a las 22.07.39.png

Aquí podemos ver el código finalmente! ….

1337r0mh4x

Islandia 2017 – Dia 1


Dejemos esta vez un poco al margen los Hack-It y Solve-It para hacer un pequeño diario de lo que fué el viaje a Islandia que hicimos durante las vacaciones.

Voy  a ir subiendo aquí algunas fotos y describiendo un poco lo que fuimos viendo en nuestro viaje a Islandia este verano … que bueno … verano … fuimos en Octubre realmente; pero eran nuestras vacaciones de verano 😉

Intentaré enrollarme poco y destacar las cosas más importantes del viaje, que pudieran ser de interés para otra gente.


Dia 0

Llegamos desde Barcelona al aeropuerto de Keflavik tarde por la noche, a eso de las 21:30 (… realmente cuando estaba previsto, pero se hizo largo el viaje de avión en parte debido a que tuvimos una escala excesivamente larga en el aeropuerto de Barcelona).

Salimos de la terminal de Keflavic de recoger las maletas para ir al hotel Aurora. El hotel esta pasando un parking que hay al lado del aeropuerto. Es bastante visible asi que llegamos sin problemas. Cenamos algo en la misma habitación (llevamos algunos sobres de sopa) y nos fuimos a dormir directamente.

El desayuno del hotel estaba incluido con la habitación y es buffet libre. No tiene gran cosa pero lo que hay esta bastante bien. Yo de hecho me puse bastante fino desayunando a la mañana siguiente…


Dia 1

Despues de desayunar salimos del hotel y vamos a coger la camper.

Es una VW Caddy Diesel Automática. El chico nos explica el funcionamiento de la camper (tema nevera, calefaccion, cama, USBs, camping gas, etc…) y nos comenta que son muy exigentes con el tema golpes/picotazos en el coche (principalmente debidos a grava y asi), esto teníamos sabido de haber leído en internet y cogimos el seguro premium que engloba eso y alguna otra historia (más información en http://www.rent.is). El coche lo teniamos a las 9:00 la recogida y a las 9:05 nos lo dieron pese a estar alli a las 8 y poco listos para llevarnosla.

IMG_8536.JPG

Despues de recoger la camper ponemos rumbo hacia el círculo dorado. En primer lugar vamos a Þingvellir.

Hacía un día bastante malo en general. Estaba lloviznando sin parar, aunque fuera poca lluvia.

IMG_0708IMG_0712

Había bastante gente (aunque luego veríamos que en todas las zonas turísticas había bastante gente).

Destacar en este sitio que el parking era de pago (unos 4€), que no se exactamente qué hubiera pasado si no hubieramos pagado ya que no parecía haber mucho control. El sitio era bastante chulo, aunque es cierto que no había mucho más que ver que el muro y unos paseos que había al otro lado del mismo.

Posteriormente pusimos rumbo hacia los géiseres donde si había gente en el lugar anterior, había todavía más gente todavía más gente aquí.

IMG_0736.JPG

Por supuesto que seguía lloviendo …

La atracción principal aquí era un géiser bastante gránde que cada 8-10 minutos entraba en mini-erupción. Por lo demás lo que había eran pequeños “charcos” de los que emanaba vapor y se podía ver agua hirviendo en muchos de ellos. Era realmente curioso ver charcos hirviendo por el suelo…

Después seguimos nuestra ruta en coche hacia la cascada de Gullfoss:

IMG_0739IMG_0752

La cascada era realmente chula. También sacamos algún que otro video.

Es curioso que justamente para un rato que no nos llueve durante el día… nos metiéramos voluntariamente en un paseo al lado de la cascada donde caía bastante agua…

IMG_8311.JPG

Después de la visita a esta cascada fuimos hacia Keriđ. Un cráter que nos cogía de camino hacia nuestro primer camping en Selfoss.

IMG_8318.JPG

Dimos una vuelta por la zona al borde del agua en el interior y luego en el contorno superior. Había gente volando drones haciendo tomas de vídeo. Este hábito de sacar vídeos con el dron resultó bastante común en zonas de turisteo, nos sorprendió.

Se nos echó encima la noche después de esta visita y fuimos rápidamente al pueblo de Selfoss, donde dormimos en el camping Gesthus.

Un camping discreto pero bastante agradable. Tenía cocina/comedor, aseos y duchas; todo incluido en el precio final (1500 ISK).

Captura.PNG

En resumen, esta fue la ruta que hicimos el primer dia basicamente. Del aeropuerto (A) hasta Selfoss en el punto (D) inferior.