(w oczekiwaniu z nie cierpliwością na część III )
chcialem dac nieco czasu na wchloniecie sie wiedzy ale juz przygotowuje tekst
ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)
czytałem trochę o operacjach na plikach i w ramach prostych ćwiczeń napisałem sobie coś takiego :P
Wiem że to banalne, ale chodziło o same ćwiczenie print, np piszącKod:print("\n[+]Generator skryptu PHP przechwytujacego adres IP"); print("\n[+]Umiesc wygenerowane pliki na swoim hostingu www"); print("\n[+]Ustaw chmod pliku ip.txt na 777"); print("\n[+]Wejdz po adres www.twojastrona.htm/catchIP.php"); print("\n[+]Sciagnij z serwera plik ip.txt i obejrzyj jego zawartosc :)\n\n"); print("\n----------------------------------------------"); print("\nby hedvb [Michal Slowik]"); #plik ip.txt open (HACK, '>>ip.txt'); close(HACK); #przygotowanie skryptu zapisujacego adres IP open (PLIK, '>>CatchIp.php'); print PLIK "<?\n"; print PLIK 'function zapisz ($plik, $dodaj) {'; print PLIK "\n"; print PLIK '$file = fopen($plik, r);'; print PLIK "\n"; print PLIK '$cont = fread($file, filesize($plik));'; print PLIK "\n"; print PLIK 'fclose($file);'; print PLIK "\n"; print PLIK '$cont. = "adres IP: ".$dodaj;'; print PLIK "\n"; print PLIK '$save = fopen($plik,w);'; print PLIK "\n"; print PLIK 'If (fwrite($save,$cont)) {return 1;}'; print PLIK "\n"; print PLIK "else {return 0; }\n"; print PLIK "}\n"; print PLIK '$adres=$_SERVER['; print PLIK pack("C*",39); print PLIK "REMOTE_ADDR"; print PLIK pack("C*",39); print PLIK '];'; print PLIK "\n"; print PLIK 'zapisz("ip.txt", $adres);'; print PLIK "\n"; print PLIK "\n"; #przekierowanie - maskowanie dzialania skryptu print PLIK "?>\n"; print PLIK "<?php\n"; print PLIK 'header("Location:http://www.google.pl/");'; print PLIK "\n"; print PLIK "?>"; print PLIK "\n"; close (PLIK); print("\n\nPHP script zostalpomyslnie wygenerowany :)\n\n"); print("\n\nNie zapomnij zmienic nazwy dla pliku CatchIp.php ;P\n\n"); print("Pozdr for all hedvb [Michal Slowik]\n\n");
print PLIK "$save = fopen($plik,w);'" w pliku php wynik był taki = fopen(,w);, kiedy się zorientowałem że trzeba dać ' wyskoczył mi błąd przy print PLIK'$adres=$_SERVER['REMOTE_ADDR'];', więc sobie przypomniałem o pack i poszukałem ascii dla ' (39), jednym słowem takie ćwiczenia są bardzo pożyteczne ;p czekam cd
Ostatnio edytowane przez hedVB : 04-22-2008 - 20:13
www.lingubot.pl - projekt sztucznej inteligencji.
Ok... wybiegles nieco z materialem (nie powiem ze to zje - wrecz przeciwnie) ale zanim wrzuce 3 czesc (mozliwe ze jeszcze dzisiaj) to pokaze jak inaczej, przejrzysciej mozna napisac ten sam program...
Kod:print <<_naglowek__; [+]Generator skryptu PHP przechwytujacego adres IP [+]Umiesc wygenerowane pliki na swoim hostingu www [+]Ustaw chmod pliku ip.txt na 777 [+]Wejdz po adres www.twojastrona.htm/catchIP.php [+]Sciagnij z serwera plik ip.txt i obejrzyj jego zawartosc :)\n\n ---------------------------------------------- nby hedvb [Michal Slowik] _naglowek__ #plik ip.txt - robimy odpowiednik unixowego touch open (IP, ">>ip.txt"); close (IP); #przygotowanie skryptu zapisujacego adres IP open (PLIK, '>CatchIp.php'); print PLIK <<_kod_php__; <? function zapisz (\$plik, \$dodaj) { \$file = fopen(\$plik, r); \$cont = fread(\$file, filesize(\$plik)); fclose(\$file); \$cont. = "adres IP: ".\$dodaj; \$save = fopen(\$plik,w); if (fwrite(\$save,\$cont)) {return 1; } else {return 0; } \$adres=\$_SERVER['REMOTE_ADDR']; } zapisz("ip.txt", \$adres); #przekierowanie - maskowanie dzialania skryptu header("Location:http://www.google.pl/"); ?> _kod_php__ close (PLIK); print <<_stopka; PHP script zostalpomyslnie wygenerowany :) Nie zapomnij zmienic nazwy dla pliku CatchIp.php ;P Pozdr for all hedvb [Michal Slowik] _stopka # za _stopka musi byc znak nowej linii
ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)
aargggh trzeba było tak od razu mam rozumieć że można sobie zapisywać / wyświetlać dowolnie sformatowany tekst między znacznikami:
i wyświetli/zapisze się w taki sam sposób w jaki napisałem?Kod:print <<_costam; _____,^==¬¬¬¬_/|___ )_,.--'''[ µ"\_\****””””””””" _costam <enter>
Ostatnio edytowane przez hedVB : 04-23-2008 - 19:38
www.lingubot.pl - projekt sztucznej inteligencji.
Tak, tylko zmienne trzeba 'lamac'
\@tablica, \$zmienna, \%procent
W nastepnej czesci pokaze Wam jeszce lepsze zabawy - np formatowanie tabelek tekstowych
ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)
Już nie mogę się doczekać!
http://nikowek.blogspot.com/
Zbrojne Ramię Pingwina!
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d- s++:++ a--- C+++ UL+++ P L+++ E--- W++ N++ o K- w--
O M- V- PS PE Y PGP++ t+ 5 X+ R tv- b++ DI- D-
G+ e- h! r% y?
------END GEEK CODE BLOCK------
Najprawdopodobniej nastepna czesc bedzie jutro wieczorem lub najpozniej w weekend - wlasnie dotarlem do domu z Infosecurity... to niby drugi koniec miasta ale meczaca droga do domu (a ile pub'ow po drodze, rotfl). Postaram sie tez wrzucic pozniej jakis opis co ciekawego bylo na Infosecurity.
Pomijajac fajne hostessy i sporo darmowych bajerow bylo troche fajnych rzeczy ale to racze na osobny post W kazdym razie postaram sie cos napisac...
ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)
chcialem sie pochwalic i jednoczesnie poprosic o sprawdzenie kodu niby uzylem stricta i nic mi nie wykrywa ale to czasem nic nieznaczy pewnie . to programik ktory napisalem po przeczytaniu pierwszej i drugiej czesci kursu, sluzacy do wyliczania podstawowych wartosci(delta, miejsca zerowe itd. itp.) dla funkcji kwadratowej. ponizej kod. jednoczesnie dziekuje bardzo TQM za kurs i cierpliwosc w odpowiadaniu na pytania. zabieram sie za tablice i hashe. a pozniej za czesc 3 .
Kod:use strict; #powitanie print "Witaj, w programie do obliczania delty dla funkcji kwadratowej!\n"; #podaj wybrane zmienne $a, $b, $c. #potegowanie zapisane jest znakiem x**y, gdzie x to podstawa, a y to wykladnik #jezeli widzisz znak -- to oznacza on +, jezeli wyjdzie --- to jest to - itd. #parzysta ilosc - to + nieparzysta to -. my $x = "x"; my $y = "y"; my $a = "-2"; my $b = "5"; my $c = "2"; my $delta = $b**2 - 4 * $a * $c; print "-----\n"; print "delta dla funkcji kwadratowej $y = $a * $x**$x + $b$x + $c wynosi:\n"; print "$delta\n"; print "-----\n"; if ($delta < 0) { print "ta funkcja kwadratowa niema miejsc zerowych!\nbo delta jest mniejsza od 0!\n"; } elsif ($delta == 0) { print "ta funkcja kwadratowa ma jedno miejsce zerowe!\nponiewaz delta rowna sie 0!\n"; &x0 } else { print "ta funkcja kwadratowa ma dwa miejsca zerowe!\nponiewaz delta jest wieksza od 0!\n"; &x1x2 } sub x1x2 { my $pierdelta = sqrt($delta); my $x1 = -$b - $pierdelta / 2 * $a; print "pierwsze miejsce zerowe tej funkcji to: ($x1,0)\n"; my $x2 = -$b + $pierdelta / 2 * $a; print "drugie miejsce zerowe tej funkcji to: ($x2,0)\n"; print "-----\n"; print "postac iloczynowa tej funkcji to f($x)=$a($x-$x1)($x-$x2)\n"; } sub x0 { my $pierdelta = sqrt($delta); my $x0 = -$b / 2 * $a; print "to miejsce zerowe to X0:($x0,0)\n"; print "-----\n"; print "postac iloczynowa tej funkcji to f($x)=$a($x-$x0)**2\n"; } print "-----\n"; my $p = -$b / 2 * $a; my $q = -$delta / 4 * $a; print "wierzcholek tej funkcji znajduje sie w punkcie W: ($p,$q)\n"; print "-----\n"; print "!DZIEKUJE ZA WYBRANIE WYLICZACZA FUNKCJI BY MTBS!";
Sorry za tak pozna odpowiedz - bylem off-line pare dni
Co do kodu jest jak najbardziej poprawny - zapis ok, zmienne zadeklarowane jak trzeba i gdzie trzeba i sie nie nakladaja (inaczej strict by bardzo krzyczal).
Co bym zmienil? Moze dodal 'use warnings;', przydaje sie przy debugowaniu problemow (odpalasz i widzisz ze np probujesz dolaczyc do tekstu zmienna ktora ma pusta wartosc itd.
Na pewno w sekcjach if() w zapisie kodu do wykonania po kazdej linii dalbym srednik... masz 2 linie w sekcji i tylko pierwsza konczysz srednikiem, druga nie ma nic, po niej nastepuje zamkniecie klamry (koniec sekcji) - ok - zapis jest poprawny, ale jesli bedziesz pozniej chcial zmieniac kod to nie raz zlapiesz sie na tym, ze ponizej dopisujesz linie kodu i nagle program nie dziala, bo zapomniales dac srednik gdzies wczesniej. Moze to moje osobiste zboczenie ale 'taniej' jest wyrobic sobie nawyk stawiania srednika po kazdej linii (chyba ze jest tylko jedna) niz ciagle wracac do kodu i szukac co jest nie tak... w koncu czas to pieniadz!
ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)