miércoles, 16 de septiembre de 2009

Desbloqueando terminales RobCo

Recientemente me he enganchado al videojuego "Fallout 3", el cual es bastante entretenido, puesto que sobre otros juegos parecidos él, este añade la posibilidad de elección de una forma muy elaborada: durante el juego tomas continuamente decisiones que tienen repercusiones muy distintas, y eso hace que tu partida sea muy "personal", puesto que como en la vida misma, es fruto de todas tus decisiones.


Pero esta no pretende ser una entrada de opinión en la que se analice el juego en cuestión, sino una entrada geek, al estilo de la página. Durante el juego es común encontrarse con "terminales RobCo" que protegen diferentes cosas (desde sistema de armamento programado, apertura de puertas, datos, etc.). Para hackearlos hay que introducir una clave (y esto se hace a través del típico juego de descubrir una palabra probando y diciéndote cuántas letras en común tiene con la que buscas). Al principio perdí mi tiempo haciéndolo "a mano", pero esto se acabó, porque he sacado mis propias terminales de hackeo de RobCo xD!



Básicamente es un script muy tontuelo en Linux que, partiendo de una lista inicial de palabras, y con una de ellas y el número de letras en el orden correcto en común con la clave (datos que te da el propio juego), reduce la lista mostrando sólo las posibilidades compatibles que esos datos. Si se hace varias veces (teniendo cuidado, porque los intentos son limitados), llegas a la clave o a una lista considerablemente reducida de posibilidades.

El código que he usado es el siguiente:


#!/bin/bash
directorio=`pwd`
clear
k=1
ref=0
while [ $k = 1 ] ; do
    echo "********************************************"
    echo "PROTOCOLO TERMLINK DE ROBCO INDUSTRIES (TM)"
    echo "BY ASTAROTH (O.R.G.)"
    echo "http://astarothsworld.blogspot.com"
    echo "********************************************"
    if [ $ref = s ] ; then
      cop="Vamos a empezar. NO VUELVA A COPIAR LA LISTA DE PALABRAS."

    else
      cop="Para empezar, escriba todas las palabras que le aparecen en la terminal de RobCo en un archivo de texto al que deberá llamar \"palabras.txt\". IMPORTANTE: Escriba una palabra por línea y en minúsculas. El archivo debe ser guardado en el mismo directorio en el que esté este script, es decir, en $directorio."

    fi
    echo " "
    echo "Este programa intentará hackear los ordenadores de Robco del Fallout 3."
    echo " "
    echo "INSTRUCCIONES:"
    echo " "
    echo "$cop"
    echo " "
    echo "Para empezar, pulse \"return\"..."
    read nada
    echo " "
    echo "ÚLTIMA LISTA DE CANDIDATOS:"
    echo " "
    cat palabras.txt
    echo " "
    echo "Elija una palabra al azar (de la última lista de candidatos) y díganos cuál ha sido:"
    read palabra
    echo " "
    echo "Así que ha elegido la palabra \"$palabra\". Muy bien, ahora prúebela en"
    echo "el terminal del juego y díganos cuántos aciertos ha habido:"
    read a
    echo "Espere..."
    ul=`cat palabras.txt | grep -n "[[:alpha:]]" | sed -n '$p' | awk -F \: '{print $1}'`
    ulet=`cat palabras.txt | sed -n '1p' | grep -o "[[:alpha:]]" | grep -n "[[:alpha:]]" | sed -n '$p' | awk -F \: {'print $1'}`
    for i in $(seq $ul) ; do
      c=0
      for j in $(seq $ulet) ; do
        l=`cat palabras.txt | sed -n ''$i'p' | grep -o "[[:alpha:]]" | sed -n ''$j'p'`
        L=`echo "$palabra" | grep -o "[[:alpha:]]" | sed -n ''$j'p'`
        if [ $l = $L ] ; then
          c=`echo "$c + 1" | bc`

        fi

      done
      if [ $c = $a ] ; then
        cat palabras.txt | sed -n ''$i'p' >> seleccionadas.txt

      fi

    done
    clear
    echo "********************************************"
    echo "PROTOCOLO TERMLINK DE ROBCO INDUSTRIES (TM)"
    echo "BY ASTAROTH (O.R.G.)"
    echo "http://astarothsworld.blogspot.com"
    echo "********************************************"
    echo " "
    echo "Esta es la lista de palabras que tienen $a letra(s) en común con la palabra \"$palabra\" en la misma posición:"
    echo " "
    echo " "
    cat seleccionadas.txt
    echo " "
    echo " "
    echo "Puede probar a ojo esos resultados, o intentar refinar la búsqueda probando otra palabra."
    echo " "
    echo "Refinar la búsqueda (s/n)"
    read ref
    if [ $ref = s ] ; then
      mv seleccionadas.txt palabras.txt

    else
      k=0

    fi
    clear

done
echo "********************************************"
echo "PROTOCOLO TERMLINK DE ROBCO INDUSTRIES (TM)"
echo "BY ASTAROTH (O.R.G.)"
echo "http://astarothsworld.blogspot.com"
echo "********************************************"
echo " "
echo "Esperamos haberle sido de ayuda. Hasta pronto!"
rm seleccionadas.txt
#rm palabras.txt



El cual podéis descargaros de aquí:


ACTUALIZADO: Os dejo también el trailer del juego, que encontré el otro día, y que me encanta :p! Una clara referencia a las ridículas campañas de emergencia nuclear de los 50's del gobierno estadounidense de las que ya hemos hablado en esta página.


Comparte en Facebook

6 comentarios:

  1. Así que enganchado a otro video-juego, ¬¬ vaya, vaya, pasa a estudiar ahora mismo! :P

    "Decisiones que tienen repercusiones muy distintas..."
    "...puesto que como en la vida misma, es fruto de todas tus decisiones"
    Mmmmmmmmmm, eso es lo que pasará a los que votan por la foto de "A navegar" la decisión de no votar a "El Templo" traerá graves consecuencias mwajajaaj, sí, sí, a navegar entre rayos, diría yo!! :P Vale, es buena la foto, pero la de "El Templo" está mejor! :P

    A estudiar eh, que te vigilo ¬¬ ya sabes lo que tengo en la mano, verdad? estás pensando que es un rayo? ayss que mal pensado eres, sólo estoy comiendo lacasitos :P

    Un kiss ;)

    ResponderEliminar
  2. Un juego que te ayuda a estudiar...mmmm

    El lobo es lo único que mola del juego :P no veo yo ninguna conexión estre el juego y la física!

    Ya da igual a quién voten, la "namber guan" es El Templo, se pongan como se pongan!

    Hemmm, govierno, se escribe con "b" :P ajaajaj

    Guan kiss

    ResponderEliminar
  3. "Caminando con lobos"

    Tú sabías que el que anda con lobos, termina aullando?

    Vi uno hace tiempo, nunca se me olvidó la forma en que me miró, fue alucinante...tardé un rato en reaccionar, pero creo que no sentí miedo :p
    Molan....

    ResponderEliminar
  4. Y qué le pasa al que camina con el diablo? :P ajajaaj

    A ver, mmmm, hoy vamos a sortear.....la espada de Astaroth!
    Anda! pero si he comprado yo todas las rifas! jajajaaj
    Venga, dámela! me ha tocado a mí! y no pongas excusas que llamo al notario :P
    No ofrezcas resistencia y nadie saldrá herido ¬¬ (o rayado :P)

    Sí, ya sé que estás pensando "y sigue con lo de la espada!" pero mira:
    "La esperanza no es lo último que se pierde,
    sino lo primero que se encuentra cuando sentimos que todo esta perdido"
    Así que la espada aún no la doy por perdida :P

    Buenas noches Astaroth...

    ResponderEliminar
  5. "Pórtate mal para pasarlo bien" :P ajajajja

    Te has fijado? He recibido tu comentario a la 1:11 jaajaj, casualidades? ¬¬

    No te pases que no estamos en agosto! así que nada de apuntarme con la espada! :P
    Fium fium, zas!! Crrggrr!!

    Kissillos.

    ResponderEliminar
  6. Mira lo que puedo hacer si "alguien" me apunta con su espada:

    http://www.youtube.com/watch?v=Pr2sdSWehL0&feature=related

    ResponderEliminar

Querido astarothista!,

Si te ha gustado la entrada y quieres dejar constancia de ello, tienes alguna sugerencia para completarla o corregirla, quieres mostrar tu opinión respecto a algo de lo que se haya hablado en esta entrada (con respeto) o simplemente quieres dejarme un mensaje a mi o a la comunidad, no dudes en comentar ;)!

Recuerda que también estamos en Facebook y en Google+.