Monday, June 18, 2007

::ENTER ::soon::revista::de::informatica::

ENTER http://fl0-fl0w.docspages.com
In curand o revista de informatica va intra in atentia voastra.
Proiectul se doreste a fi unul strict educativ.

Revista :
* format .PDF;
*stiri din securitate;
*Articole;
*White papers;
*Tutorials;
*Interviuri cu numerosi experti in computere;
Si articole speciale ,colaborari.

..:::::::::::::::::: http://fl0-fl0w.docspages.com :::::::::::::::::::::::::::::::::::::::::::::::::::::::..

Cracking[INTRODUCTION]

Nume de cod : &[$ 'TEORIA 7 28 14 7 21 18 22 '$]&
Buna seara !
Pentru a intelege ca un cracker nu bantuie pur si simplu internetul crack-uind diverse
lucruri cu diverse programe,trebuie intelese anumite ramuri ale securitatii:criptografia.


Un domeniu destul de vast cu radacini in securitate poate chiar un element de baza
al acesteia.O ramura a matematicii care a dezvoltat securitatea in sine inca din
timpul lui Cesar si pana in zilele noastre.

O sa ne axez in acest tutorial pe sistemele de criptare prin chei publice.Pentru
a intelege aceste sisteme trebuie facuta o comparatie cu sistemele de chei private
si anume:sistemele de bazate pe chei secrete presupun o singura cheie cunoscuta
de catre emitator si receptor,sistemele bazate pe chei publice folosesc doua chei:
una publica si alta privata.

Dar de ce explic eu acum cand voi nici nu stiti ce e aia o cheie !! pai vreau sa va
intoarceti in urma cu un motiv anume, o sa va dati voi seama :) .
Sa incepem cu inceputul.
Criptografia este arta si stiinta ascunderii semnificatiei unei comunicari impotriva unor
interceptari neautorizate.
Codurile sunt o transformare care opereaza la nivelul cuvintelor sau frazelor.
Cifrul bloc se obtine prin separarea textului initial in blocuri de cate n caractere
sau biti si aplicarea unui algoritm si a unei chei identice K,pentru fiecare bloc.
Criptograma sau textul cifrat reprezinta un mesaj neinteligibil.
Cifrarea este o transformare criptografica a unor caractere sau biti.
Cheia sau variabila de criptare este o informatie sau o secventa prin care se
controleaza cifrarea si descifrarea mesajului.

In sfarsit am ajuns si la algoritmul criptografic: este o procedura pas cu pas
utilizata pentru cifrarea unui text clar si descifrarea textelor cifrate.
Tipuri de criptare :
* criptare end-to-end.
*inlantuita
In primul tip atat expeditorul cat si destinatarul folosesc aceiasi cheie de criptare
in varianta pentru criptari simetrice.Trebuie mentionat faptul ca criptologia reuneste
criptografia si criptanaliza.
Pe noi ne intereseaza sistemele de criptare prin chei secrete sau simetrice.Un sistem
de criptare prin cheie secreta are in structura sa informatie publica si privata ,precum
si cele publice sau asimetrice.Criptarea inlantuita am sa o las in pace deocamdata.
Revenim la sistemele de criptare prin chei publice.

1) C=Kp(P)
2)P=Ks(C)
3)C=Ks(P)
4)P=Kp(C)
Unde C=textul criptat(crypted text)
P=textul clar(plain text)
Ks=cheie secreta
Kp=cheie publica
Criptarea unei chei publice necesita multe calcule si astfel devine mult
mai icneata decat criptarea prin chei private,mai exact de 1000 la puterea 10.000 ori
mai inceata.Solutia acestei probleme a fost creerea unor algoritmi de catre mintile
luminate ale matematicii secolului trecut,acesti algoritmi sunt concretizati in sistemele
hibride.Acestea dupa cum sugereaza denumirea lor folosesc criptografia prin chei publice
pentru transmiterea cheilor secrete.
Am sa prezint in continuare cativa algoritmi pentru ca de altfel exact prin asta acest articol
va capata substanta :) .
*RSA
*Diffie-Hellman
*MD5
*SHA
*SSL
Popular sa zicem asa este MD5 in randul nostru si foarte utilizati sunt RSA si
Diffie-Hellman.
Am sa explic in cuvinte si in formule.
Vreau sa expun algoritmul Diffie-Hellman pentru a intelege complexitatea unui algoritm de
criptare.
Meteoda Diffie-Hellman se bazeaza pe conceptul perechii de chei publice private.Fiecare
calculeaza cate o cheie publica,cheia publica calculata este o functie matematica a cheilor
private respective.Urmatorul pas consta in shimbarea cheilor publice apoi se calculeaza o functie
a propriei chei private si a cheii publice a celeilalte persoane.

Fie persoanele A si B.
Sa recapitulam C=Kp(P); P=Ks(C); C=Ks(P); P=Kp(c).
Fie exponentierea
1)y=g la puterea x mod N.
Conform problemei logaritmului discret 2)log de bazag din y =x,relatia numarul 1) poate
fi calculata usor insa este greu sa se calculeze x din y.
Folosind desigur aritmetica modulara se simplifica problema.
Fie pentru persoana A si B.
1)Ks=xa
2)Kp=ya
3)Ks=xb
4)Kp=yb
Se calculeaza exact cum am descris in primi pasi.(Atentie urmariti pentru fiecare
persoana A si B si va sfatuiesc sa scrieti si voi pe o foaie ca altfel nu o sa intelegeti nimic).
Avem relatiile :
1)ya=g la puterea xa modp
2)yb=g la puterea xb mod p
yb la puterea xa mod p
ya la puterea xb mod p
K=ya la puterea xb mod p=xb la puterea xa mod p=g la puterea xa*xb mod p
Unde k=cheia mesajului.

Pentru restul algoritmilor am sa explic in alt tutorial deoarece am de expus foarte mult
si trebuie sa fac eu inainte ca sa pot intelege si sa pot sa generez exemple personale si in
plus ocupa multe pagini :p .
Eu caut o metoda prin care sa atrag cititori nu sa ii plictisesc cu un tutorial de 100 pag.
RSA
RSA este un sistem de criptare de chei publice realizat de Ronald L. Rivest,Adi Shamir si
Leonard M.Aleman in scopul de a asigura securitatea internetului.
RSA foloseste aritmetica modulara si teoria numerlor pentru a calcula doua numere prime foarte
mari.
MD5
MD5 este un algoritm care are ca input un mesaj de o lungime oarecare si produce ca output un
message diegest de 128 biti.Este folosit pentru semnaturi digitale unde un fisier mare trebuie
comprimat si protejat inainte sa fie criptat cu o cheie privata.
SHA
SHA sau secure hash algoritm este un algoritm care are ca input un mesaj de o lungime
oarecare si produce ca output un message diegest de 160 biti.
SSL
SSL sau secure socket layer este un protocol conceput de Netscape in scopul transmiterii
de documente,date private prin intermediul internetului.SSL foloseste o cheie privata pentru a
cripta datele transferate cu ajutorul conexiunii SSL.


Daca sunt interesati de cracking sau criptografie in general sa imi spuna si am sa mai fac si alte
materiale ..acest forum nefiind de hacking nu pot sa pun chiar ce vreau eu din acest domeniu.
Pot prezenta o continuare in password cracking si atacuri criptografice,dar nu aici .. presupun
ca daca nu se accepta hacking de ce s-ar accepta cracking. Ma puteti gasi pe MLQGLZCQU (sorry nu pot
face reclama) va descurcati.Sau daca nu dati un search pe google cu nick-ul meu si prima gasire..:).

Atacuri criptografice.Password cracking
Parolele sunt prin definitie criptate.Eu sunt de parere ca importanta
este cat de buna este criptarea.Ocriptare buna sau foarte buna face ca parola sa fie mai
puternica si deci mai greu de spart,daca nu chiar imposibil de spart.
Un sistem de criptare este fara folos fara parole bune si invers.
De altfel sistemele criptografice trebuie sa fie protejate astfel incat sa fie imposibil de spart.
Parerea mea este ca nu exista asa ceva insa intervine o alta problema : timpul.Teoretic
orice
tip de criptare oricat de puternic ar fi el in n la puterea n ani el poate fi spart.Am sa prezint
si sa dezvolt aceasta idee in randurile ce urmeaza.
Metoda brute-force a facut ca aceasta teorie sa prinda viata,prin aceasta sistemele
criptografice pot fi sparte prin incercarile succesive ale cheilor.Pentru a incerca toate
cheile este nevoie de multa munca,nu din partea noastra a oamenilor,ci a computerelor.
Cu cat sunt mai multe chei cu atat computerele trebuie sa fie mai puternice si
mai numeroase.O cheie de 32 de biti presupune verificarea a 2 al puterea 32 pasi.O cheie de
40 de biti presupune verificarea a 2 la puterea 40 pasi cea ce ar insemna cam o saptamana
cu un singur computer.
DES este un sistem de 56 biti,pentru a-l sparge este necesara o retea de cateva
computere iar in cateva luni ar fi realizabil.Apoi sunt cele de 64 biti ,80 biti iar fratele
lor mai mare de 128 biti este asigurat cativa ani buni,mai exact un numar nedefinit ,pentru a
putea fi spart.
Taticul lor este sistemul de 256 biti ,imposibil de spart in viata asta :) ,pentru a
realiza de ce : ar trebui 149*10 la puterea 12 ani.
Insa nu uitati ca exista si oameni care s-au dedicandu-se fenomenului au inventat
alte metode,lasand brute-force-ul in ceata,si anume:
*text clar cunoscut
*text clar ales
*text clar cu selectie adaptata
*text criptat selectat
*text criptat cu selectie adaptata
*atacul zi de nastere
*intalnire la mijloc
*om la mijloc
*criptanaliza diferentiala
*criptanaliza liniara
*criptanaliza diferentiala liniara
*factorizarea
Exploatarea erorilor in sistemele de criptare,atacuri folosind exhipamente speciale sunt alte
metode.Pe cat de puternic este un sistem criptografic pe atat de complexe devin metodele de
criptare.
Computerele cuantice functioneaza pe baza de cuante.In loc sa efectueze sarcinile una
cate una pe unitate de timp cum functioneaza computerele seriale acestea le efectueaza simultan.
Computerele bazate pe molecule DNA,dar sunt in faza de cercetare.


fl0 flow © 2006

The computer system theory

The computer system theory ..,,;-~''"^~ fl0 fl0w -~;_""\.-~'""..

_______________2.2===============Networking================2.2______________
Cuprins_________________________
A. Introducere
~Pentru incepatori~
1A.Internet Protocol;

2A.Ip adresses,clasess;

3A.Subnetting VLSM si IP;

4A.Adrese:sa recapitulam___________________________________________
| |
{ adresa Ip; adresa de retea; adresa de brodcast; masca de retea. }

B. ~Pentru avansati~
1B.Studiu de caz || ARP Engeneering | Introducing to psihycal hardware adress mapping ||

------------------------------------------------------------------------------------------------
Memoria poate fi privita ca o succesiune de celule binare
,fiecare celula fiind capabila sa retina o cifra binara ,adica 0 sau 1.
Bitul reprezinta cantitatea de informatie ce poate fi inregistrata intr-o celula.
Cantitatea de informatie stocata intr-o succesiune de 8 celule binare se numeste
octet.
Numarul de bytes care pot fi inregistrati in memorie reprezinta capacitatea memoriei.
Multipli byte-ului sunt :
*1 kb
*1 mb
*1 gb
*1 tb
Acesti multipli ale byte-ului se folosesc pentru a exprima capacitatea memoriei.
Pentru cine nu stie computerul nu este capabil sa utilizeze simboluri si anume
litere,cuvinte,propozitii etc., el utilizeaza doar doua simboluri si anume 0 si 1.
Pentru a comunica cu un computer omul trebuie sa converteasca datele si comenzile
sale intr-o forma pe care computeRul sa o poata intelege si anume o forma binara.
Aceasta informatie poarta denumirea de CODIFICARE.
Codificarea caracterelor consta in a asocia in mod unic fiecarei litere ,cifre sau semn special
o valoare numerica.
Codul alfabetic explicat de mine va fi codul ASCII,denumirea vine din American Standard Code
for Information Interchange,prin care sE asociaza caracterelor un cod format din 7 cifre binare
deci o valoare numerica din Multimea {0,1,2,3,....,127}.
Codul pentru A este 065,deci B 066 etc.
Codul ASCII utilizeaza si codul ASCII extins pEntru a reprezenta anumite simboluri matematice,
grafice ,din alte limbi etc. .
Codificarea datelor numerice se face dupa anumite criterii :
* codificarea numerelor naturale
* codificarea numerelor intregi
Pentru mai multe informatii cautati un cod ASCII si va veti laMuri,se gaseste in orice carte
de informatica de liceu.
Am dat un exemplu in sectia inceputa de voi.. .
Pur si simplu am luat
2 la 7 2 la 6 2 la 5 2 la 4 2 la 3 2 la 2 2 la 1 2 la 0
A ->065
B ->066
C ->067
D ->068
........
A - 01000001
B - 01000010
C - 01000011
D - 01000100
................

Am sa expun cateva idei legate atat de partea tehnica cat si
despre fluxuri informational in general.
Orice activitate desfasurata de om presupune existenta unor
fluxuri informationale in general.
Fluxurile informationale se organizeaza in sisteme informationale.
Computerele sunt :
*supercomputere
*microcomputere
*mainframe
Un computer este alcatuit din sistemul managerial si sistemul
operativ.Ansamblul componentelor pentru prelucrarea,stocarea si
executarea datelor reprezinta componentele software si hardware.
Computerele mainframe au un procesor complex precum si o memorie
mare.De celelalate tipuri sigur ati mai auzit si aveti o idee
formata in privinta lor.Dar totusi am sa dau cateva detalii.
Supercomputerele se caracterizeaza prin :
*viteza de lucru foarte mare;
*numar mare de microprocesoare;
*suporta calcule paralele si programare paralela.
Microcomputerele sunt PC'urile.
In fiecare sistem de calcul trebuie sa existe o unitate de comanda
si control.Aceasta asigura executarea operatiilor aritmetice si
logice de calcul.
Creierul unui computer este microprocesorul.Componenta de
prelucrare a unui microprocesor este UAL.Aceasta componenta
efectueaza multe tipuri de operatii de comparatie,de manevrare,
aritmetice etc.
Componentele principale ale unui PC sunt :
*placa de baza;
*procesorul;
*memoria RAM;
*placa video;
*carcasa;
*sursa;
*hard disk;
*drivere optice;
*keyboard,mouse,speakers etc. .


A|_
1_|

Ip face parte din protocolul TCP/IP si este un model alcatuit din patru straturi:
*Application
*Transmition Control Protocol
*Internet Protocol
*Network Adress

Ip'urile sunt facute pentru interconectarea retelelor pentru a forma
internetul si pentru
a da si primi date.IP contine informatii ce mobilizeaza pachete de date
pentru a fi routate
in internet.Un pachet este un ansamblu logic de date ce include un header
cu informatii de
control.Routerele descompun aceste headere si le analizeaza apoi le
recompune din nou.
Functia primara a unui IP este termed connectionless,controleaza datagramele.
Datagramele reprezinta
grupari logice de informatii trimise ca un network layer.
IP datagrams sunt unitatile primare
de informatii de pe internet.
IP fragmenteaza si reasambleaza datagrams pentru a forma link'uri
de marimi diferite.IP datagram
este unitatea de data comutata intre modulele IP.Acestea contin headere
cu informatii pentru
routere.Headerul IP este elementul principal pentru adunarea informatiei
cat si pentru control.
Fragmentation -este procesul de impartire a datagramelor pentru a se
incadra in standardele
MTU(Maximum Transfer Unit) al retelei.


2_|

InterNIC (Internet Information Center) da si controleaza toate adresele
retelelor folosite pe internet in trei clase A,B,C fiind alcatuite din
numere de 32 de biti.

NIC Assigment Class C : 210.3.125.1
Primul octet 210 clasa C,IP range cu formatul Network.Network.Network.
Exista 8 biti in ultimul octet pentru hosts.Acestia sunt prelucrati
de catre echipamentul infrastructurii ca routers.
CIR (Classless Interdomain Routing) acest sistem face ca un route
sa nu mai fie asociat cu o adresa IP ci un route sa fie asociat
cu o adresa si mask clasificand astfel reteaua in subnets si supernets.

3_|

Subnetting se ocupa cu divizarea claselor derivate in psyhical networks.
VLSM (Variabilele Length Subnet Masking) este Broadcasting'ul informatiei
subnet prin intermediul protocoalelor routing.
Subnet mask este un numar format din 32 biti carE determina fragmentarea IP
in retea la nivel de bit.

Class :A
First octet :1-126
Octets as network v.s host :network.host.host.host
Netmask binary :1111 1111 00000000000000000000000 sau 255.0.0.0


Class :B
First octet :128-191
Octets as network v.s host :
Netmask binary :111111111111 000000000000000 sau 255.255.255.0

Class :192-223
First octet :
Octets as network v.s host :
Netmask binary :11111111111111111111111 00000000 sau 255.255.255.0

Class :D | MULTICAST OPTON |
First octet :
Octets as network v.s host :
Netmask binary :

Class :E | MULTICAST OPTON & EXPERIMENTAL |
First octet :
Octets as network v.s host :
Netmask binary :


4_|

IP ADRESS : Numar pe 32 biti scris de obicei in format zecimal grupat
pe cei patru octeti prin care se poate identifica in mod unic un nod.

NETWORK ADRESS : Numar pe 32 biti scris de obicei in format zecimal grupat
pe cei patru octeti care identifica o retea.NumaRul nu poate fi asignat unui nod.
Portiunea de adresa corespunzatoare gazdei contine numai valori binare de 0.

BROADCAST ADRESS : Numar de 32 biti scris de obicei in format zecimal grupat pe cei
patru octeti utilizati pentru a adresa toate nodurile din cadru unui retele de
computere.Portiunea din adresa corespunzatoare gazdei contine numai valori binare
de 1.

Mask adress : Numar pe 32 de biti scris de obicei in format zecimal grupat pe cei
patru octeti utilizat pentru a calcula adresa de retea prin efectuarea unei fragmentari.


B
1_|

ARP | RARP Engeneering :Introducing to physical hardware adress mapping

Putini veti intelege partea asta ,asa si trebuie.
Procesul de mapping face comunicarea posibila.Fiecare interfata sau interfata de retea
(NIC) intr-o statie ,server sau echipament de infrastructura are o adresa physical unica
care este programata de manufacturier.
Scopul softului de infrastructura este de a stabili comunicarea folosind o adresa IP asignata
sau internet adress in timp ce ascunde physical adress a hardwarului.

adress mapping ----->asigned adress of the hardware
Pentru a mapa aceste adrese programatorii folosesc Adress Resolution Protocol sau ARP.ARP este un
pachet raspandit prin broadcastingul hosturilor atasate de o physical network.Acest packet contine
adresa IP a nodului sau a statiei cu care senderul doreste sa comunice.Celelalte hosturi ignora
acest packet dupa ce salveaza adresa IP /hardware adress mapping a senderului.Target hostul va da un
reply cu adresa hardware care va fi stocata in ARP response cache a senderului.


fl0 fl0w © 2oo7

C++ INTRODUCTION

Salut sunt flo si am sa va prezint un tutorial c++.Am sa va scutesc de introduceri tampite gen “ISTORIC”,cine a facut ,cine a dres si am sa incerc sa fiu cat mai explicit ,si la subiect ,pentru ca scopul este sa intelegeti si sa invatati notiunile respective.Pentru a va orienta mai usor pun ca inceput un cuprins. :
1)Structura unui program c++;
2)Tipurile de date standard c++;
3)Preprocesoarele;
4)Citiri si scrieri;
5)Instructiuni { f.important }
6)Cum cred ca ar trebui organizat;
Pai ,un program c++ este construit dintr-o succesiune de module,denumite functii.Trebuie subliniat ca functia principala in orice program C si C++ este functia main().Aceasta trebuie sa apara obligatoriu o singura data in orice program C++.Cel mai simplu program ,ati vazut sigur in orice manual de cls a 9-a ,sau carte C ,este :
Void main()
{ }
Definirea unei functii este constituita din ANTETUL FUNCTIEI si CORPUL FUNCTIEI .Antetul contine numele functiei,tipul rezultatului pe care il calculeaza functia si o lista de parametri prin care functia comunica cu exteriorul ei,incadrata intre paranteze rotunde.
Asadar in functia de mai sus ,lista de parametri este vida si functia nu intoarce nimic.
2)La tipuri de date am sa va dau o definitie tip manual(nu e dedusa de moi), UN TIP DE DATE defineste multimea valorilor pe care le pot lua datele de tipul respective,modul de reprezentare a acestora in memorie ,precum si operatiile care se pot efectua cu datele respective.
TIPUL DE DATE INT : valorile de tip int sunt nr intregi in intervalul [-32768,32767].Tipul int suporta modificatorii de tip UNSIGNED si LONG.
TIPUL DE DATE CHAR : este de tip intreg,si suporta un singur modificator-UNSIGNED.Valorile de tip char sunt cuprinse in intervalul [-128,127],iar unsigned char [0,255].Tipurile reale sunt :FLOAT ---reprezentare pe 4 octeti,DOUBLE ---reprezentare pe 8 octeti,LONG DOUBLE reprezentare pe 10 octeti(deci e mare rau…..J).Tipul VOID este un tip special ,multimea valorilor fiind vida.
3)Preprocesoarele.Iarasi definitie :
Preprocesorul este un program lansat in executie automat inainte de compilare.El executa toate directivele preprocesor incluse in program,efectuind substitutii de texte.
Toate incep cu #.Exemplu : #include,#define……. .
Si avem : #include--include fisierul antet de functii matematice.
#include---fisierul antet al bibliotecii limbajului C++ cu functiile de intrare/iesire.
#include …………………………………………… C cu funtiile de intrare/iesire.
Citiri si scrieri,variabile de memorie cred ca stiti nu are rost sa mai mentionez.
Am sa prezint acum cea mai importanta parte : instructiunile. ( mare atentie aici ).
Instructiunea if.
If(expresie) instructiune_1;
Else instructiune_2;
Exemplu : if(a) cout<<” este nenul “;
Else cout <<”este zero “;
Instructiunea swich (expresie)
{ case exp-constanta 1; secventa –instructiuni 1;
………………………………………………..
case exp-constanta n;secventa-instructiuni n;
secv –instr. N+1;
default
}
Instructiunea while
While(expresie) instructiune;
Istructiunea do instructiune while (expresie)
Instructiunea for,cea mai puternica si flexibila dintre toate.
For(exp_initializare;exp_continuare;exp_reinitializare) instructiune;
Da ,cam atat,restu invatati si voi,poate mai pun si altele,dar daca mai pun vreau sa fie probleme.
fl0 fl0w © 2006

METODA DIVIDE ET IMPERA

==========METODA DIVIDE ET IMPERA=============
Aceasta metoda consta in doua etape,divide si impera.Divide :problea data este impartita in doua sau mai multe subproblemede acelasi tip,dar de dimensiuni mai mici.Subproblemele se rezolva direct,daca dimensiunea lor permite aceasta,sau,fiind de acelasi tip,se rezolva in mod recursive prin acelasi procedeu.
Impera:se combina solutiile subproblemelor pentru a obtine solutia problemei initiale.
Metoda pare destul de complicata dar in realitate este mult mai simplu.In cele mai multe situatii ,problema se imparte in doua subprobleme de dimensiuni aproximativ egale.
DECI · Descompunerea cazului ce trebuie rezolvat intr-un numar de subcazuri mai mici ale aceleiasi probleme.
·Rezolvarea succesiva si independenta a fiecaruia din aceste subcazuri.
· Recompunerea subsolutiilor astfel obtinute pentru a gasi solutia cazului initial.


*Am sa va prezint in randurile urmatoare o rezolvare a problemei Turnurie din Hanoi.
Aceasta problema a fost propusa la sfarsitul secolului trecut de catre matematicianul francez Eduard Lucas,care a comercializat-o sub forma unui joc de opt discuri si trei baghete,numit ‘turnurile din Hanoi’.

*Jocul este inspirat dintr-o straveche legenda hindusa ,in care se povesteste ca zeul Brahma ar fi fixat pe o masa a templului sau din Benares trei baghete verticale de diamant,pe una dintre ele plasand 64 de discuri de aur in ordinea descrescatoare a diametrelor.Xi si noapte calugarii templului mutau discuri de pe tija 1 pe tija 2,folosind ca tija de manevra tija 3,respectand ordinea descrescatoare a diametrelor.Legenda spune ca atunci cand toate discurile vor fi mutate va fi sfarsitul lumii.


*Da frumos ,dar acum sa revenim pe planeta noastra,sa lasam povestile si aburerile la o parte si sa ne apucam sa rezolvam matematic si apoi informatic sau algorithmic cum vreti sa-I spuneti problema.


*Avem la dispozitie trei tije numerotate 1,2,3 si n discuri de diameter diferite.Initial toate discurile sunt plasate pe tija 1in ordinea descrescatoare a diametrelor,considerand sensul de la baza la varf.
Problema consta in a muta discurile de pe tija 1 pe tija 2,folosind ca tija de manevra tija 3,respectand urmatoarele reguli.
-la fiecare pas se muta un singur disc;
-orice disc poate fi asezat doar peste un disc cu diametru mai mare.
Acum cum rezolvam aceasta problema mai ales ca trebuie sa explicam metoda divide et impera.


*Vom nota o mutare sub forma Iŕj,unde j(1,2,3),I diferit de j,cu semnificatia se muta un disc de pe tija I pe tija j.
Daca n=1,problemase reduce la a muta un singur disc,ceea ce se poate face direct.
Daca n>1,pentru a muta discul de pe diametrul maxim de pe tija I pe j trebuie sa il eliberam ,adica sa plasma cele n-1 discuri de deasupra sa pe tija de manevra.Cele 3 tije fiind numerotate distinct cu valori din multimea {1,2,3},suma numerelortijeloreste 6,deci tija de manevra este numerotata 6-I-j.Discul de diametrul maxim fiind eliberat ,poate fi mutat pe tija j,dupa care cele n-1 discuri de pe tija 6-I-j pot fi mutate pe tija j,folosind de data asta aceasta tija I,care este goala,ca tijade manevra.
Cam atat ,o sa prezint si rezolvarea propriu-zisa daca vreti dar la clasa inca nu am ajuns cu idiotul meu de prof la aceasta metoda si de aia imi vine oarecum mai greu.

#include
ofstream f(“Hanoi.out”);
ifstream g(“Hanoi.in”);
void muta(int x,int I,int j)
{ //deci aceasta functie muta x discuri de pe tija I pe tija j ;
if(x>1)
{ muta(x-1,I,6-I-j); //tija de manevra;
f< “< muta(x-1, 6-I-j , j);
}
void main()
{ g>>n; muta(n,1,2); f.close(); g.close(); }
flo_flow © 2006

RETELE

===========RETELE==============
Tot ce tine comunicare,in viata de zi cu zi,este strans legat de retele.Fie ca sunt retele prin care se realizeaza o comunicare prin telefon,prin posta,posta electronica,cea mai importanta parte a sistemului in sine sunt retelele care au redenumit conceptul,relelele dintre computere.
Poate cele mai complex alcatuite si mai raspandite in toata lumea puterea lor venind din modul in care sunt ‘legate’ una de cealalta.
Am sa va scutesc de povesti gen ‘scurt istoric’,si am sa trec direct la miez.Am prezentat un scurt punct de vedere,pentru a explica cat mai bine.
Am sa incep cu definitia :
O retea de calculatoare reprezinta un ansamblu de calculatoare interconectate prin intermediul unor medii de comunicatie, asigurându-se in acest fel utilizarea in comun de catre un numar mare de utilizatori a tuturor resurselor fizice (hardware), logice (software si aplicatii de baza) si informationale (baze de date) de care dispune ansamblul de computere conectate.
Protocoale
Comunicarea intre doua computere si anume in acest caz,transmiterea de informatii intre cele doua se poate realiza numai daca acestea prezinta acelasi limbaj.In acest caz limbajul este protocolul si el poate fi :
*Ethernet –cel mai folosit
*ip-internet protocol
Acestea doua fiind protocoalele internetului.
Protocoalele stratului de transport :
*tcp-transport control protocol
*udp-user datagram protocol
Protocoalele care apar in stratul de aplicatie tcp/ip sunt :
*http –hyper text transfer protocol
*ftp-file transfer protocol
*smtp-simple mail transfer protocol
*dns-domain name service
*tftp-trivial file transfer protocol
*tcp-transport control protocol
*udp-user datagram protocol
Acum sa stau sa vi le explic pe fiecare in parte : sunt impartite in trei categorii :
*protocoale de aplicatie
*protocoale de transport
*protocoale de internet
Protocoalele de aplicatie sunt
*ftp-este folosit pentru a transmite informatii,fisiere intre doua computere,cele mai folosite porturi sunt 20 is 21.
*http-este folosit pentru a traduce informatii intre paginile web,portul cel mai folosit fiind 80.
*smtp-este un serviciu de mail,care e bazat pe modelul tcp/ip.Transfera serviciul mail intre doua dispozitive si ofera informatii despre mailul primit,portul cel mai folosit fiind 25.
*dns-asociaza un domeniu cu o adresa ip
*tftp-functioneaza exact ca ftp numai ca in de tcp utilizeaza udp,portul 69 fiind cel mai folosit.Este in felul acesta mai rapid dar mai putin sigur.
Protocoalele de transport sunt :
Pentru a transporta asa zisele segmente de informatie sunt doua protocoale folosite pentru transportul stratelor : tcp si udp.
Tcp este o conexiune intre punctele finale ale unei retele,acesta sincronizeaza si organizeaza traficul.Aici e mai complicat pentru ca acesta trimite un pachet initial numit syn recipientului,daca nu ma insel.Recipientul trimite un pachet de 'instiintare' ca la primit numit syn/ack.Dispozitivul care a primit pachetul trimite si el la randul sau un pachet,pentru a valida instiintarea.Acum si recipientul si primitorul au stability o conexiune prin care se pot trimite date de la unul la celalalt.
Udp este un protocol de transport care nu necesita o conexiune,acesta lucreaza intr-un mod similar cu al tcp,insa acesta trimite pachete fara pachetul initial,depinzand acum de cel care a primit pachetele respective daca le accepta sau nu.
Am sa trec la exact ce ma intereseaza pe mine cel mai mult : adrese ip.
Domain name:
*org
*edu
*com
*net
*gov
Un domain name este o adresa web,numele se identifica cu una sau mai multe adrese ip.Fiecare server web necesita cate un nume de domeniu : DNS – domain name system.Internetul este bazat pe adrese ip si nu pe ‘ domain names ‘.
Adresele ip sunt cele care dau identitatea dispozitivelor care fac parte din retea.Fiecare computer trebuie sa aiba o adresa ip pentru a se putea identifica in interiorul unei retele,indiferent de anvergura acesteia :LAN-local area network,MAN-metroppolitan area network,WAN-wide area network.
Ip-urile sunt constituite din 32 biti,divizati in 4 sectiuni cu 8 octeti.Ip=network si host,o parte identifica reteaua din care face parte iar ultima parte host-ul respective.
Ip-urile sunt impartite in clase ,4 clase mai exact,aceasta clasificare fiind facuta in functie de ce parte a adresei este folosita pentru a identifica reteaua si ce parte este folosita pentru a identifica host-ul.
Pentru inceput cam atat despre retele ,sper ca am fost destul de explicit,acest material adresandu-se celor mai n00bi.
Sincer sa fiu si eu sunt mai la inceput in retelistica dar invat permanent despre.
In legatura cu acest capitol o sa mai auziti de mine. J
fl0 fl0w © 2007

===========Virusii==========

===========Virusii==========
Virusii,sa nu zica nimeni ca nu ii este frica de virusi ca nu il cred.Multi fraieri nici macar nu stiu ce e ala un virus,va asigur,ca din 10 persoane 7-8 habar n-au da habar nu au ce e ala un virus,stiu decat ca la un computer nu trebuie sa ai decat un antivirus si cu asta basta toate probleme tale au disparut.

Necesitatea distingerii intre un virus sau alte o mie de lucruri care ar putea sa iti afecteze pc-ul este pentru mine foarte importanta daca vreau sa inteleg cum functioneaza securitatea pe internet.

Sa trecem la treaba,am sa incep prin a specifica,ca un virus este definit ca fiinf un software cu anumite caracteristici :

*se auto-multiplica in sensul ca virusul se ataseaza de alte soft-uri,sau prin suprascriere;

*se auto-executa :se poate atasa altor soft-uri,se ascunde in codul care ruleaza automat la deschiderea anumitor tipuri de fisiere sau aplicatii.

Un virus este programat sa atace ceva anume,fie o parte soft fie una de hardware,deci un virus nu este facut la intamplare,el are o tinta bine definita,o tinta fixa cea ce ii da si un punct de executie puternic,in sensul ca nu poate fi depistat usor (in cazul lipsei unui soft antivirus sau firewall etc.) sau daca este depistata,este prea tarziu,raul fiind facut,dar pe de alta parte si o slabiciune,acesta fiind usor depistat de un antivirus,antivirusul avand tocmai tinta de a verifica anumite parti ale sistemului in care "stie" ca ar ataca virusii,depistand astfel potentialul atac.

Desigur programatorii de virusi au rezolvat si aceasta problema sa ii zicem asa si anume au inceput sa apara si virusii care au mai multe tinte:virusii multipartiti.

Tinand cont de tinta infectarii virusii pot fi clasificati in :

*virusii paraziti;

*virusii de boot;

*virusii de master boot;

*virusii de macro-uri;

*virusii de link-uri;

*virusii pereche;

*virusii ascunsi;

*virusii criptati;

*virusii specifici;

Si preferatii mei :) *virusii trojeni.

Am sa incep de la coada : trojeni : In primul rand trebuie specificat ca trojeni nu se auto-multiplica, prin urmare se pot auto atasa la un program existent,cu alte cuvinte nu pot infecta un fisier,ci afecteaza sistemul.Acesta este preferatul pentru un hacker.

Trojenii pot fi impartiti in urmatoarele categorii :

*backdoors;

*password stealers;

*logical bombs;

*denial of service tools;

-Backdoors :acest tip actioneaza in scopul de a prelua controlul asupra computerului utilizatorului fara stiinta acestuia.

-password stealers: sunt programe incluse in fisiere care practic fura parole,si denumirea este evidenta.Desigur ca parolele furate sunt trimise celui care a facut trojanul.

_Logical bombs: acesti trojeni sunt cei care compromit securitatea sistemului prin efectuarea unor operatii distructive,la executarea lor,de catre utilizator sau in alte conditii.

_Denial of service tools:aceste programe trimit anumite secvente de date catre o tinta cu intentia de a intrerupe serviciile de internet ale tintei.Culmea ca aceasta metoda este utilizata si de catre cei care fac programele respective :spre exemplu daca un hacker este urmarit si acesta isi da seama de acest lucru el poate efectua un atac asupra anumitelor servere de "mascare" a adresei sale si anume a serverelor proxy,bine daca foloseste o inlantuire,pierzandu-si astfel urma.

Virusii paraziti afecteaza fisiere executabile.Virusul respectiv este lansat atunci cand fisierul executabil este pornit.Ei pot fi :

*virusi rezidenti in memorie

*virusi non rezidenti in memorie

Rezidenti in memorie sunt cei care pot controla intregul sistem.

Non-rezidenti care sunt activati numai la pornirea aplicatiei gazda.

Acesti virusi se raspandesc prin orice mediu de stocare:floppy,CD-uri,retele,modem-uri etc.

Virusii de boot afecteza fisierele executabile si la fel sunt lansati cand fisierul executabil respectiv este pornit.Majoritatea sunt creati pentru DOS si nu tin cont de sistemul de operare astfel ca toate computerele sunt vulnerabile.

Virusii de master boot sunt rezidenti in memorie ca si virusii de boot,singura diferenta fiind ca sunt localizati in sectorul master boot.Acesti virusi vor salva in alta locatie o copie curata a sectorului master boot.

Virusii de macro-uri sunt facuti special pentru a se plasa intr-un macrou dintr-un document microsoft office.

Virusii de link-uri afecteaza structura de directoare redirectionand calea directorului intr-un fisier infectat catre zona in care este localizat virusul.Dupa lansare virusul poate incarca fisierul executabil,citind calea corecta a directorului fisierului respectiv.

Virusii ascunsi se multiplica si se comporta in asa fel incat sa preia controlul asupra datelor si continutului programelor,fara stiinta utilizatorului bineinteles sau a programelor antivirus.Acest tip de virus rezida in memorie.Acesta cand este rulat codul viral este ascuns si nu poate fi detectat.

Virusii criptati folosesc o tehnica de modificare a propriului cod viral,astfel incat programele anti-virus sa nu-i depesteze.Dar ca acestia sa se raspundeasca trebuie sa se autodecripteze,fiind astfel detectati.

Virusii specifici sunt destinati anumitelor programe,gen cei pentru ACTIVE X pentru a infecta produsele Microsoft,etc.

Acum sper ca v-ai facut o parere cat de cat si daca spuneti vreodata ca nu va este frica de virusi,inseamna ca nu aveti nici un pic de respect fatade programatori.
Nu cred ca este cineva care sa nu se gandeasca la un virus
atunci cand ii merge pc-ul mai greu
sau atunci cand apar fel de fel de culori pe desktop :) ,asta este sunt din ce in ce mai
multi si mai periculosi,dar parerea mea este ca sunt si cei care fac "revolutii" in lumea securitatii.


Am sa incep sa explic intr-o alta maniera virusii ,si anume cei mai cunoscuti : deci acestia apar in diferite forme,unii sunt aproape
inofensivi
iar altii actioneaza cu urmari devastatoare.

Am sa ma concentrez in acest tutorial exclusiv asupra celor mai periculosi virusi facuti
vreodata,
adevarate capodopere ale distrugetii in masa a bitilor.Un exemplu bun ar fi virusii de corespondanta
mail care se numesc mai exact email worms,acestia se infiltreaza in retele si se inmultesc haotic
formand
un trafic nedorit si blocandu-le astfel.


Codurile virusurilor nu sunt in mod necesar complexe,dar compacte si puternice.O retea ar trebui scanata
periodic virusi pentru a fi in regula din punct de vedere al securitatii.Companiile de devirusare lucreaza
non-stop de asemenea pentru a aduce antidoruri,dar sa fim sinceri acum ca ele sunt si cele care mai raspandesc
cate un virus....v-ati prins voi.


VIRUSUL 1
W32.CIH.Spacefiller sau Chernoby
Chernoby este un virus extrem de periculos,odata ce a infectat un pc,incepe sa stearga sau chiar sa
formateze hard-ul,si sa va impidice sa bootati.


VIRUSUL 2
WIN32/EXLORE.ZIP VIRUS
Acest virus este un virus de email,cauta documente Mircrosoft Office,odata gasite dupa extensia lor,acesta
incepe sa sterarga totul,apoi trimitande-se prin email.Acesta vine ca un atasament la mainl
sub forma unei arhive zip,su numele zip_files.exe,cel mai probabil acesta va sosi in bulk.


VIRUSUL 3
I LOVE YOU VIRUS
Apare cu diferite extensii .vbs,.jpg.vbs,cu denumirile,veryfunny.vbs,virus_warning.vbs,
love-letter for-you.vbs.I love you este un WIN 32 based email worm,acesta se suprascrie pe hard,
si se trimite prin email tuturor din Microsoft Outlook address book.


VIRUSUL 4
MELLISA VIRUS
Este un virus Microsoft Word macro,este trimis primelor 50 de persoane din agenda ta de adrese Outlook,
totusi acesta nu sterge nimic de pe hard,si infecteaza doar documentele word,documentele cu
extensia .xls,.doc .Vine prin email ca un atasament,cu subiectul : "Very important message",urmat
cu numele mailului caruia i-a fost trimis.In mail se afla un document word,dand click pe el
te infectezi.


VIRUSUL 5
BUGBEAR VIRUS
Odata infectat un pc dintr-o retea acesta se raspandeste in ea prin email si nu numai,
ataca programele anitivirus,isi schimba comportamentul sub forma unui server backdoor,si trimite
parolele din sistem in diferite locatii,slabind foarte mult securitatea intregii retele,poate
sa-si modifice extensiile in aproape orice format multimedia,de la video,la formaturi mp3,
se poate atasa si ca un virus tip macrou.
Am sarit peste cativa si am trecut la cei care isi merita numele de "devastator".


VIRUSUL 6
NIMDA VIRUS
Nimda este un virus extrem de complex care se raspandeste prin corespondenta mail,aparand sub forma
de README.TXT.Acesta ataca WINDOWS NT,NT4,98,95,2000.Acesta foloseste explit-ul UNICOD pentru a infecta
serverele WEB IIS.
Este primul virus care a inceput sa modifice site-uri web,si primul care foloseste computerele
infectate pentru a scana vulnerabilitatile site-urilor web.
Cam atat pana acum.

flo_flow © 2oo7

Cele mai folosite Metode pentru a penetra un web-server

Cuprins


1)Disclaimer
---------------------------
2)Hackers Manifesto
---------------------------
3)Introducere
---------------------------
4) SQL Injection –login bypass
---------------------------
5) SQL Injection –table modification
---------------------------
6)RFI
---------------------------
7)LFI
---------------------------
8) RAFD
---------------------------
9)XSS
---------------------------
10)NULL byte-CGI Exploitation
---------------------------
11) Directory Transversal
---------------------------
12)Surse : video + papers +articles +books
---------------------------
13)About me
================