- Dołączył
- Wrzesień 24, 2011
- Posty
- 325
KursPerla by VR8
Wstęp
To mój pierwszy kurs.
Nie mam zamiaru tutaj opisywać wszystkiego na temat np. zmiennych, trochę teorii i przykład użycia.
Sam przeczytałem tylko jeden kurs Perla, przeanalizowałem kilka exploitów, pogooglowałem; 1 dzień i znam podstawy. Resztę nauczyłem się w trakcie.
Postaram się tu streścić podstawy i trochę więcej..
A więc...
1. Pierwszy program
Tak będzie wyglądał nasz pierwszy program:
Kod:
[b]#!usr/bin/perl
print "Hello World!";[/b]
#!usr/bin/perl - to odwołanie do interpretera, to raczej pod Linuxa ale pod windą też działa.
print - to jedna z funkcji wywołujących tekst.
Aby działała, trzeba umieścić nasz tekst w cudzyslowiach czyli " ".
Zakończenie funkcji to " ; ". Jeżeli go nie umieścimy to funkcja będzie ciągnąć dalej i oczywiście wywoła błąd.
2. Drugi program
Więc...
Kod:
#!usr/bin/perl
$text = "Hello World 2!";
print $text;
$text to zmienna skalarna. Aby dodać zmienną skalarną należy w nowej linii napisać "$(nasza_nazwa)"
Zmienne skalarne to takie jakby schowki, do wielokrotnego wykorzystania zawartości. Czasami są niezbędne.
Można w nich umieścić tekst, ale też funkcje które opiszę później.
W tym programie do zmiennej schowaliśmy tekst "Hello World 2!" a później wywołaliśmy ten tekst funkcją print.
Jeżeli jest konieczność umieszczenia 2 zmiennych skalarnych obok siebie, musimy pomiędzy nie wstawić kropkę.
$text1 = "Hello ";
$text2 = "World 2!";
print $text1.$text2;
Kropką oddzielamy wszystko co musi stać obok siebie. np.
$text1 = "Hello ";
$text2 = "World 2!";
$text3 = "Moj drugi program.";
Aby wywołany tekst nie wyglądał tak: Hello World 2! Moj drugi program. musimy dodać nową linię.
Możemy dodać to na 2 sposoby.
1.
do $text3 musimy dodać "\n"
\n to znak nowej lini.
2.
print $text1.$text2."\n".$text3;
Mamy tu 3 zmienne skalarne i kawałek tekstu.
W tym przypadku to jest znak nowej linii, ale może tam leżeć dosłownie wszystko.
NIE robimy tak:
print $text1.$text2."\n"."Moj drugi program";
Program który napiszemy w ten sposób będzie działać poprawnie, ale po co klikać w niepotrzebne literki.
print $text1.$text2."\nMoj drugi program";
UWAGA! Brak spacji między \n a tekstem jest celowy! Jeżeli pomiędzy znak nowej linii a tekst dodamy spację wyjdzie to tak:
[spacja]Moj drugi program
Czyli oddalimy tekst od lewej części programu, o jeden odstęp.
3. Tablice
Ok.
Kod:
#!usr/bin/perl
@tablica = ("tekst1", "lub funkcja2", "albo tekst3", "możemy tu dać wszystko.");
print @tablica[1];
Do tablicy, tak jak do zmiennej skalarnej dodajemy "znak rozpoznawczy" czy to tablica, hash(nie opiszę go tutaj, bo zazwyczaj go nie używam. Nie ma w nim żadnego porządku, jego znak rozpoznawczy to "%"), czy zmienna skalarna.
Do tablicy dodajemy tekst lub funkcje.
Możemy jedno i drugie.
Tablica jak widać na przykładzie wygląda tak : @tablica = ("lol, "lol", "lol");
To co jest w niej zawarte musi być w
a) nawiasie
b) cudzysłowiu
c) musi być oddzielone przecinkiem
Aby wywołać całą tablicę stosujemy poprostu "@tablica".
Jeżeli chcemy wywołać tylko jeden tekst/funkcje która się w niej znajduje robimy tak:
@tablica[1]
Czyli pierwszy tekst lub funkcje.
Dużo razy użyłem tu wyrazów "tekst lub funkcje".
Jeżeli to byłby program, mógłbym sobie to uprościć robiąc coś takiego
$tf = "tekst lub funkcje";
Dużo razy użyłem tu wyrazów $tf
Więc..
Podsumowanie
Kod:
#!usr/bin/perl
#To jest komentarz
print "To już koniec..."; // Komentarz 2
print "\nMam nadzieję że nauczyliście się tu podstaw Perla";
$zms = "zmienna skalarna";
$tab = "tablica";
print "\nWiecie już co to ".$zms.", i ".$tab.".";
print "\nTeraz opiszę jeszcze kilka funkcji.";
4. Kilka funkcji
Po #!usr/bin/perl dodajemy funkcje.
np. use LWP::UserAgent; , use HTTP::Cookies.
LWP::UserAgent to funkcja która obsługuję przeglądarkę.
Aby ją wywołać używamy (np.)
$lwp = LWP::UserAgent -> new;
Jeżeli piszemy exploita (remote) to musimy użyć przeglądarki.
Pokażę tu przykład.
Kod:
#!usr/bin/perl
#Przyklad by VR8
use LWP::UserAgent;
head(); // Opisze później
if($ARGV[0]) {
attack($ARGV[0]);
} else {
usage();
}
sub attack() {
print "Atak startuje...";
$sqli = "; and union+select....";
LWP::UserAgent -> new;
LWP::UserAgent -> get($_[0].$sqli);
print "Zaatakowano cel.";
}
...
$ARGV to zmienna skalarna dla funkcji ARGV. ARGV może też być w postaci tablicy.
Gdy uruchamiamy program w perlu wpisujemy do CMD:
c:\program.pl;
ARGV to to co podamy po ścieżce programu.
c:\program.pl argv
ARGV może być nieskończenie dużo.
5. SUB
sub czyli odpowiednik function które jest używane w PHP, czy JS.
Funkcje którą wrzucamy do sub zakreślamy BISami czyli { }.
Początek {
Koniec }
No.
Kod:
#!usr/bin/perl
print "Hello ".$ARGV[0]; // ARGV 0 to tutaj nick który podałeś.
sub(5);
sub sub() {
Print "Program kończy pracę.";
exit(1);
}
6. Koniec
Mam nadzieję ze nauczyłeś się tu czegoś. Nie opisałem tutaj wielu funkcji, ale podstawy już znasz.
Narka
Ostatnia edycja: