• Martes 16 de Abril de 2024, 07:43

Autor Tema:  Traduccion De Codigo En Perl --- Expertos  (Leído 3967 veces)

Kesar

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Traduccion De Codigo En Perl --- Expertos
« en: Viernes 27 de Agosto de 2004, 17:44 »
0
Hola a todos, yo soy programador web, pero no se programar en perl :(, y acaba de llegar esta funcion a mis manos y tengo k traducirla a javascript, por eso simplemente necesitaria que alguien me comentase el significado de las lineas que os marco con -------------------??, ya que creo k sabiendo el significado de esas lines yo podria entender la funcion y así podría pasarla a javascript,

Muchas gracias a todos  :)
Código: Text
  1.  
  2. sub decode{
  3.   $decoded = '';
  4.   $f = '';
  5.   ($y) = @_;    
  6.   use MIME::Base64; -------------------??
  7.   $decoded = decode_base64($y);
  8.   $a = unpack("H*",$decoded);-------------------??
  9.  
  10.   ## this is the offset hex table
  11.   ## this simple encryption just adds/subtracts a certain value
  12.   ## for each character.
  13.   @off = (54,68,65,20,73,65,74,75,70,20,70,72,'6f',63,65,'9f');-------------------??
  14.   $w = 0;
  15.   foreach $love (@off){-------------------??
  16.     $h = substr($a,$w,2);-------------------??
  17.     $d = hex $h;-------------------??
  18.     $l = hex $love;
  19.     $letter = $d - $l;  
  20.     $aa = pack("I*",$letter);-------------------??
  21.     $q =  substr($aa,0,1);
  22.     $f = $f.$q;
  23.     $w = $w + 2;
  24.   }
  25.   $f = substr($f,0,length($decoded));
  26.   return $f;
  27. }
  28.  

hippie

  • Miembro MUY activo
  • ***
  • Mensajes: 107
    • Ver Perfil
Re: Traduccion De Codigo En Perl --- Expertos
« Respuesta #1 en: Miércoles 15 de Septiembre de 2004, 23:04 »
0
Que "librerias" usa aparte de MIME::Base64? :blink:

Kesar

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Traduccion De Codigo En Perl --- Expertos
« Respuesta #2 en: Lunes 20 de Septiembre de 2004, 19:54 »
0
Hola hippie, disculpa la tardanza, es que tuve problemas con el pc.

Te pongo el codigo tal cual lo tengo, pero como no tengo ni idea de perl no se si falta algo o no :unsure:  pero creo que solo usa la MIME::Base64

Código: Text
  1.  
  2. ## u'll need MIME::Base64 to get it to work aka C:\>echo install MIME-Base64|ppm
  3.  
  4. $nicething = '-'x60;
  5. system('cls');
  6. print "\t".$nicething."\n";
  7. print "\t".'           Obscure'."\n";
  8. print "\t".$nicething."\n";
  9.  
  10.  
  11. if (@ARGV) {$passwd = $ARGV[0]} else {print "\t\t     usage: MDecode.pl userlist.dat\n\n";exit;}
  12.  
  13. sub decode{
  14.   $decoded = '';
  15.   $f = '';
  16.   ($y) = @_;    
  17.   use MIME::Base64;
  18.   $decoded = decode_base64($y);
  19.   $a = unpack("H*",$decoded);
  20.  
  21.   ## this is the offset hex table
  22.   ## this simple encryption just adds/subtracts a certain value
  23.   ## for each character.
  24.   @off = (54,68,65,20,73,65,74,75,70,20,70,72,'6f',63,65,'9f');
  25.   $w = 0;
  26.   foreach $love (@off){
  27.     $h = substr($a,$w,2);
  28.     $d = hex $h;
  29.     $l = hex $love;
  30.     $letter = $d - $l;  
  31.     $aa = pack("I*",$letter);
  32.     $q =  substr($aa,0,1);
  33.     $f = $f.$q;
  34.     $w = $w + 2;
  35.   }
  36.   $f = substr($f,0,length($decoded));
  37.   return $f;
  38. }
  39.  
  40. if (open (PASSF,$passwd)){
  41.   while (<PASSF>){
  42.     $dom = substr ($_,0,45);
  43.     $dom =~ s/ //g;
  44.     $user = substr ($_,45,30);
  45.     $user =~ s/ //g;
  46.     $enc = substr ($_,195,19);
  47.     $enc =~ s/ //g;
  48.     push(@enc,$enc);
  49.     push(@user,$user);
  50.     push(@dom,$dom);
  51.   }
  52.   close(PASSF);
  53.   $x = 0;
  54.   while ($x != $#enc+1){
  55.     print "\t\t".$user[$x].'@'.$dom[$x]."\t-->\t".&decode($enc[$x])."\n";
  56.   $x++;
  57.   }
  58. } else {print "\t\t\tCould not open $passwd"};
  59.  

hippie

  • Miembro MUY activo
  • ***
  • Mensajes: 107
    • Ver Perfil
Re: Traduccion De Codigo En Perl --- Expertos
« Respuesta #3 en: Jueves 23 de Septiembre de 2004, 23:57 »
0
:(  Lo siento no se, pero esto te podra ayudar, talvez.
"Al intentar ejecutar un guion se obtiene <<Pemission denied>>.
Compruébese los permisos en el guión, para ejecutar el guión Perl necesita permisos de lectura. Por Ejemplo :
---x------ 1 navarra 46 Apr 23 13::14 hello "

Yo creeo que las ----- son de permisos y el ? significa 0 o 1 vez. Ejemplo pe?p. Identificación pp o pep

clauclau

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Traduccion De Codigo En Perl --- Expertos
« Respuesta #4 en: Viernes 24 de Septiembre de 2004, 18:23 »
0
Hola como estas no tengo demaciada experiencia en perl pero algo puedo ayudarte.

Lo que estas haciiendo cuando haces  use MIME::Base64; es llamar a una funcion del paquete que tenes definido como MIME.

Cuando haces: @off = (54,68,65,20,73,65,74,75,70,20,70,72,'6f',63,65,'9f') estas definiendo una estructura off a la cual le asignas todos esos elementos, pudiendola usar despues accediendo por un indice.

Entonce cuando haces: foreach $love (@off) estas reorriendo esta estructura por cada ellemnto.

Esto: substr($a,$w,2) es una funcion q hace algo recibiendo 3 parametros.

Espero haberte ayudado, suerte.

claudia

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Traduccion De Codigo En Perl --- Expertos
« Respuesta #5 en: Sábado 14 de Mayo de 2005, 21:29 »
0
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 ""
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.