Programación Web y Scripting > Perl
Traduccion De Codigo En Perl --- Expertos
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
[*] Página Anterior
Ir a la versión completa