Pokaż wyniki od 1 do 3 z 3

Temat: Kurs Perl by VR8

  1. #1
    Dawni Moderatorzy Avatar VR8
    Dołączył
    24-09-2011
    Skąd
    Kraków
    Posty
    324

    Domyślnie Kurs Perl by VR8

    [SIZE=5]
    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:
    #!usr/bin/perl
    
    print "Hello World!";
    #!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
    Ostatnio edytowane przez VR8 ; 09-12-2011 o 16:38

  2. #2
    Dawni Moderatorzy
    Dołączył
    15-02-2011
    Posty
    260

    Domyślnie

    Jakoś bez rewelacji. Nie znam języka więc wypowiadam się jako potencjalny odbiorca. Popraw mnie jeśli się mylę.
    1)
    Cytat Napisał VR8 Zobacz post
    To co jest w niej zawarte musi być w
    a) nawiasie
    b) cudzysłowu
    c) musi być oddzielone przecinkiem
    b) cudzysłowu? Co jeśli wklejamy nie tekst a np. zmienną 'abc'?
    2)Może przeoczyłem, ale tablica zaczyna się na pozycji [1] czy [0]?
    3)Kompilatory, nawet jeśli ja wiem co i jak to czytać to może ktoś kto zupełnie nie wie.
    4)Kurs zaczyna się od:
    Cytat Napisał VR8 Zobacz post
    [SIZE=5]
    może taki był plan ale nie wiem czy dobry .
    5)
    Cytat Napisał VR8 Zobacz post
    sub czyli odpowiednik function które jest używane w PHP, czy JS.
    Wybacz, ale to żadne wytłumaczenie. Kierujesz tekst też do osób, które pierwszy raz stykają się z programowaniem.
    6)A do ";" to czy faktycznie nie ma możliwości, że coś będzie działać? - to jest pytanie, nie retoryczne, takie zwykłe.
    Pytam co do " musi kończyć się ";" ".
    7)Opisy danych funkcji są raczej słabe. Może je jakoś rozbudować, osoba, która nic nie wie nie zrozumie a to nie jest dla innych osób poradnik. Przynajmniej ja mam takie odczucie, przerost formy (dla choć trochę znających się) nad treścią (dla raczej nowicjuszy) i to trochę wybrakowaną.
    Sama przejrzystość tekstu jest dość kiepska.
    8)Może go rozbudujesz?

    Nie martw się, jak na pierwszy tekst tego typu nie jest źle. Popracujesz trochę, napiszesz jeszcze kilka i będzie lepiej.


    To są moje prywatne odczucia, jeżeli ktoś ma inne rozumiem i zgadzam się, że się myliłem nie będę wdawał się w dyskusję!
    Ostatnio edytowane przez dodoxx6 ; 09-12-2011 o 21:16

  3. #3
    Dawni Moderatorzy Avatar VR8
    Dołączył
    24-09-2011
    Skąd
    Kraków
    Posty
    324

    Domyślnie

    Co do ";". Bez tego będzie działać, ale czasami może źle zinterpretować kod.

    Postaram się to od nowa napisać, bardziej zrozumiale i rozbudowanie.

Uprawnienia

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •