Bienvenidos al nuevo foro de hackplayers. En caso de encontrarse cualquier tipo de error, contacte con cualquier administrador por mensaje privado.
Recuerda que, para incrementar tu privacidad, tambien puedes acceder al foro usando el dominio forohpysho2t5mjs.onion de la red tor.

[pseudocodigo] Buscando algoritmo. Secuencia binaria y calendario

Buenas, a ver si alguien  me puede echar una mano en lo siguiente:

Se trata de una secuencia binaria relacionada con el calendario, por ejemplo, los primeros 14 días de julio de este año, serían así:
11010110010100

El programa tan solo muestra un dialog tipo calendar , entonces si se selecciona 22 o 23 julio 2017, devuelve un 0, que también corresponde con los elementos 8 y 9.
11010110010100

He estado dándole vueltas y no se por donde coger el asunto, calendario lunar, alguna relación con el número de la semana, con un random?, esto es muy complicado?

pd:fecha=`dialog --stdout --title "Algoritmo misterioso" --calendar "Elige una fecha que acierto" 0 0`
 no se porque no me deja hacer click los días que son domingo, pero esto es un tema aparte.


Mejor respuesta

Respuestas

  • #!/bin/bash
    #Algoritmo misterioso. Secuencia binaria (11010110010100) relacionada con el calendario.

    FECHA=`dialog --stdout --title "Algoritmo misterioso" --calendar "Elige una fecha que acierto" 0 0`

    clear
    echo $FECHA | awk -F"/" '{print $1}' > dia
    echo $FECHA | awk -F"/" '{print $2}' > mes
    echo $FECHA | awk -F"/" '{print $3}' > anyo
    DIA=$(cat dia)
    if [ $DIA -lt 10 ]; then DIA=`cat dia | awk -F"0" '{print $2}'` ; fi
    MES=$(cat mes)
    if [ $MES -lt 10 ]; then MES=`cat mes | awk -F"0" '{print $2}'` ; fi
    ANYO=$(cat anyo)

    #año bisiesto
    if [ $(($ANYO%4)) -eq 0 ]; then
    declare -a V_ANYO=(31 29 31 30 31 30 31 31 30 31 30 31)
    else
    declare -a V_ANYO=(31 28 31 30 31 30 31 31 30 31 30 31)
    fi

    #evaluar mes y calcular sus días
    MES=$(($MES - 2))
    SUMA=0
    for x in `seq 0 $MES`; do
    SUMA=$((${V_ANYO[$x]}+$SUMA))
    done
    #día del año
    DIANO=$(($DIA+$SUMA))
    echo $DIANO


    #repetir el vector 11010110010100 hasta llegar a 366 o +
    if [ -f /home/hiram/Escritorio/bin ]; then rm bin; fi
    for x in `seq 0 27`; do
    echo "11010110010100" >> bin
    done
    cat bin | head -c ${DIANO} | tail -c 1

    Lo que yo buscaba ya está. Iré probándolo a ver si de verdad funciona.
    Pero el script tienen un inconveniente, y es la secuencia en sí. Julio empieza de una forma y agosto de otra, y seguramente febrero de este año también empiece diferente. Hay algo que no me llega a cuadrar. No se si me entendéis. 

  • Gracias por tus respuestas.
    Por desgracia solo puedo explicar lo que puedo entender, y esto no sabía ni como plantearlo. Es una pesadilla recurrente que se me presenta en los sueños, y me deja destrozado por la mañana.

    Al principio pensé en recoger la fecha en php, pero después de conocer  el calendario de la caja gráfica con dialog calendar, creo que bash es la mejor opción, aunque el procesado de la fecha no tengo ni idea de como empezar.

    FECHA=`dialog --stdout --title "Algoritmo misterioso" --calendar "Elige una fecha que acierto" 0 0`
    clear
    echo $FECHA  | awk -F "/" '{print $1$2$3}'

    Se trata de una secuencia binaria relacionada con el calendario en que cada día está relacionado con cada dígito de esa secuencia (11010110010100) . Me imagino que habrá una ecuación matemática por detrás, de la misma forma como para saber si un número es par o impar, o para convertir un canal wifi a frecuencia.

    Transformación de julio 2017 a binario. A continuación agosto 2017

    1101011
    0010100
    1101011
    0010100
    110

    1011001
    0100110
    1011001
    0100110
    101

    y así consecutivamente siguiendo el orden 11010110010100

    El programa recibe la fecha y en un su proceso lo transforma a ese 0 o 1 correspondiente.
    Una solución sería almacenar los meses de cada año en su binario para devolver la conversión, pero esto es mucho código, con muchos inconvenientes, y debe haber una alternativa. Alguna sugerencia por favor?





  • Uy, creo que ya lo tengo.
    Primero calcular si febrero son 28 o 29
    un vector con los días de cada mes 31 28 31 30 31 30 31 31 30 31 30 31
    Evaluar número de mes
    Ir sumando los elementos hasta llegar al actual y sumar los días
    Multiplicar un número x 14 hasta que de mayor a la suma anterior
    Con ese primer número del paso anterior se añade (11010110010100) a un archivo
    Se busca el numero, que equivale al número de la suma.
    Eh voala! ..a celebrar cno limónmofeta.





  • Yo probaría comenzando por el año y terminando por el día
  • No sé si por desconocimiento mío o porque estoy recién levantado, pero no entiendo nada.
    En qué lenguaje está programado eso? Es un crackme? Tienes el codigo fuente a mano?

    PD: Odio los captchas. Hablaremos más en próximas actualizacions.
    ---
      Every reality is virtual.
Accede o Regístrate para comentar.