Programación Web y Scripting > Perl

 Traduccion De Codigo En Perl --- Expertos

<< < (2/2)

su -:
esto te ayudara lo que esta en # son comentarios

--- Citar ---$nicething = '-'x60; #el signo - multiplicado por 60
system('cls');#hace un cls (clear screen em MSDOS) en unix clear
print "\t".$nicething."\n";#inprime \t(quire decit Tab) el valor de $nicething y \n (nueva linea)
print "\t".'           Obscure'."\n";#imprimt \t           Obscure\n
print "\t".$nicething."\n";


if (@ARGV) {$passwd = $ARGV[0]} else {print "\t\t     usage: MDecode.pl userlist.dat\n\n";exit;}#esto es la opcion de ejecute de programa, el else inprime usage: MDecode.pl userlist.dat y se sale del programa si no se cumplen las espesificaciones del if

sub decode{#pre declaracion
  $decoded = '';#valor escalar predeclarado
  $f = '';#valor escalar predeclarado
  ($y) = @_;#valor escalar predeclarado con un listado de escalares(@_)
  use MIME::Base64;#usa la libreria MIME::Base64(Encuentra informacion de este en search.cpan.org
  $decoded = decode_base64($y);#codofica $y en 64 bits
  $a = unpack("H*",$decoded);#creo que desempaqueta cada cractel

  ## this is the offset hex table
  ## this simple encryption just adds/subtracts a certain value
  ## for each character.
  @off = (54,68,65,20,73,65,74,75,70,20,70,72,'6f',63,65,'9f');#arriba lo dice
  $w = 0;#el objeto $w vale 0
  foreach $love (@off){#para cada cosa de @off en $love haga...
    $h = substr($a,$w,2);#saque $a, $w, 2(de $love)
    $d = hex $h;#creo que es una referencia exadecimal, no se
    $l = hex $love;
    $letter = $d - $l; #$letter equivale a $d menos $l
    $aa = pack("I*",$letter);#enpaqueta en codigo I*
    $q =  substr($aa,0,1);
    $f = $f.$q;
    $w = $w + 2;
  }
  $f = substr($f,0,length($decoded));
  return $f;
}

if (open (PASSF,$passwd)){#abre el archivo $passwd
  while (<PASSF>){#cuando lo abra aga....
    $dom = substr ($_,0,45);
    $dom =~ s/ //g;#esto es para remover o remplazar lo subtr
    $user = substr ($_,45,30);
    $user =~ s/ //g;
    $enc = substr ($_,195,19);
    $enc =~ s/ //g;
    push(@enc,$enc);#agrega a @enc el array $enc
    push(@user,$user);
    push(@dom,$dom);
  }
  close(PASSF);#cierra el archivo
  $x = 0;
  while ($x != $#enc+1){#esto es como un if(sie $x equivale a $#enc mas 1....
    print "\t\t".$user[$x].'@'.$dom[$x]."\t-->\t".&decode($enc[$x])."\n";#imprime lo que esta en "" y corre la sub funcion de decode con el parametro $enc[$x]
  $x++;#autoincrementacion de $x
  }
} else {print "\t\t\tCould not open $passwd"};#si no cumple el if de la linea 37 imprime lo que esta en ""

--- Fin de la cita ---

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa