Hack-Web_Serial

Iniciado por NewLog, 23 Mayo 2007, 22:44 PM

0 Miembros y 1 Visitante están viendo este tema.

rakener

if (tmp >= 10){
  tmp = tmp.toString();
  tmp = tmp.substr(0,1) + tmp.substr(1,1);
  }


si la variable tmp es mayor o igual a 10 ocurre lo siguente.. creo que eso si lo interpreto bien :S o eso espero....

nqevna

Sí que lo interpretas bien, aunque si tienes que preguntar aquí para asegurarte es que no tienes mucha idea de javascript, así que te recomiendo que leas un poco sobre js

rakener

ya estuve mirandome guias de js lo unico que se me resiste es toString y por mas que busco no lo consigo entender :S plz exlicarme unicamente eso, por lo demas ya lo he entendido todo.

Gracias y siento haber molestado tanto

nqevna

tmp=toString() hace que la variable tmp se convierta en una cadena de texto

rakener

ya estoi de nuevo molestando por este foro :S sorry, veran es sobre

for (i=0;i<cod.length;i++){
   if (i%2 == 0){
   tmp = cod.substring(i,i+1) * 1;
   
   }
   else{
   tmp = cod.substring(i,i+1) * 2;
   }
   
  if (tmp >= 10){
  tmp = tmp.toString();
  tmp = tmp.substr(0,1) + tmp.substr(1,1);
  }
 
chk = chk.concat(tmp);
}



nose como pero estoi atrancado.... tengo que ser mas torpe de lo que pensaba T.T haber siendo i=0 y sumandole 1 hasta un maximo de 16 veces, si i partido 2 da de resto 0 ocurre que [extraigo una parte del cod]  pero como se el cod no lo se xD haber si me podeis ayudar

rakener

ya consegui resolver el serial ^^ pero lo unico malo esque nose exactamente como lo hice, y yo quiero hacer esto para aprender no para hacerlo con suerte :S

nqevna

Pues yo no te puedo ayudar, porque todavía no lo he pasado :xD

towers

Bueno un saludo a todos.
logré completar el reto en 6 horas , tube que estudiar javascript pero lo hice, y si preguntas como solo hice lo que muchos decian , seguir el algoritmo paso a paso y despues notar algo con el numero del puesto 16 XD, ojala les sirva

TickTack

Si esto me torturo hasta dejarme sangrado y por eso les voy a decir como lo hice yo de lo enjado y furioso que estoy por haber perdido mucho tiempo.

Veamos el codigo fuente:


<html>
<head>
<title>Zona 0</title>
</head>
<body>
<br><br>
Tu mision en el dia de hoy no es nada mas que entrar al area restringida de Zona 0. Como recuerdan estamos en una Zona de Guerra y tenemos que atacar a los enemigos. Se dice que hay una informacion que nos dara una gran ventaja en esta batalla. Nuestros espias nunca se equivocan y por eso necesitamos que tu entres a este lugar y nos saque la informacion. El problema es que solamente permiten a personas autorizadas con un codigo especial y un codigo solo sirve para una vez. Asi que intenta de entrar a la area restringida con algun codigo no usado previamente.<br><br>
Suerte,<br>
Torre de Comando

<script src="javascript"></script>


<br><br>
Codigo de Acceso:
<form name="shit" action="ver.php" method="GET">

<input type="text" name="cob">
<input type="submit" OnClick="ver(document.forms[0].cob.value)" value="Entrar">
</form>
<!--No intentes engañar el sistema-->
</body>

</html>


Para nosotros lo mas importante es javascript. Asi que vamos alla.


function ver (cod) {

if (cod.length != 16){
alert("Codigo No Valido");
return false;
}

var codx =new Array(cod);
var chk = '';
var tmp;
var cvs;
var cvd;

cvd = cod.substr(15,1);
cod = cod.substr(0,15);

if (cod.length != 15 || IsNumeric(cod) == false){
alert("Codigo No Valido");
return false;
}

for (i=0;i<cod.length;i++){
   if (i%2 == 0){
   tmp = cod.substring(i,i+1) * 1;
   
   }
   else{
   tmp = cod.substring(i,i+1) * 2;
   }
   
  if (tmp >= 10){
  tmp = tmp.toString();
  tmp = tmp.substr(0,1) + tmp.substr(1,1);
  }
 
chk = chk.concat(tmp);
}

tmp = '';


for (i=0;i<chk.length;i++){
tmp = (tmp*1) + (chk.charAt(i)*1);
}


tmp = tmp.toString();
chk = (tmp.substr(0,1)*1) + (tmp.substr(1,1)*1);
chk = chk * 10;
chk = (chk*1) - (tmp*1);
cvs = chk % 10;

  if (cvs == cvd){
 
  return true;
  }
  else{
  alert("Codigo No Valido");
  return false;
  }
}


function IsNumeric(sText)

{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;


   for (i = 0; i < sText.length && IsNumber == true; i++)
      {
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1)
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }



Analizemos esta linea:


if (cod.length != 16){


Eso significa que nuestro numero tiene que tener 16 digitos.

Analizemos esta linea:


if (cvs == cvd){


Eso significa que aprobaremos la prueba solamente si cvs es igual a cvd. Ahora bien, que es cvd? Veamos:


cvd = cod.substr(15,1);


Ahi vemos que es el ultimo digito de nuestro numero. Asi que, sea el numero que sea (tiene que tener 16 digitos), solo tendremos que cambiar el ultimo digito hasta que pasemos la prueba.


Citar
"Ninguna mentira puede inventarse lo suficientemente patán: el pueblo hispanohablante la cree. Por una consigna que se les dio, persiguieron a sus compatriotas con mayor encarnizamiento que a sus verdaderos enemigos."