Jump to content
ÐÒ&

Mini Concurs

Recommended Posts

Hello!

m am gandit ca fiecare am putea adresa niste intrebari sau raspunde dupa principiul urmator:

-eu pun o intrebare.Daca tu reusesti sa mi o raspunzi tu ai dreptul sa adresezi urmatoarea intrebare.Intrebarile le vom pune din IT,securitate,programare .Sa nu va aud cu "cati ani a trait X" sau Y.

Deorece eu am inceput adresez prima intrebare:

Denumiti 2 unelte apartinand protocolului ICMP.

Link to comment
Share on other sites

intrebarea e prost formulata.


n = numarul posibil prim;
esteprim = true;
for (i = 2 ; i < sqrt(n) ; i++)
{
esteprim = ((n % i) == 0) ? false : esteprim;
}

asta este pur si simplu fara break.

presupun ca vroiai sa ma si opresc atunci cand imi dau seama ca nu e prim.

totusi nu ai precizat in intrebare acest lucru :)

prin ce metoda se poate optimiza blind sql injection ?

Link to comment
Share on other sites

a= a+b;

b=| b-a| ;

a= a-b;

Gresit:


a= a+b;
b=| b-a|=|b-a-b|=|-a| ;
a= a-|-a|!=b;

Varianta corecta:


a= a+b;
b=a-b;
a= a-b;

P.S.: Nici intrebarea lui moubik nu a fost bine formulata ... daca acea variabila ar fi un string treaba mergea mai greu :P. Trebuia precizat tipul de date.

Intrebare : cum aflii daca un numar este prim cu for si fara sa folosesti break?

Acum am observat ... si codul lui moubik e gresit:


n = numarul posibil prim;
esteprim = true;
for (i = 2 ; i < sqrt(n) ; i++)
{
esteprim = ((n % i) == 0) ? false : esteprim;
}

De exemplu, pentru n = patrat perfect si sqrt(n) = prim, va afisa ca numarul e prim. Incercati cu numarul 49 spre exemplu.

Rezolvare corecta in C:


#include<stdio.h>

main()
{
int a, i;
bool p=true;
scanf("%d", &a);
i=2;
while(i*i<=a && p==true)
{
if(a%i==0)p=false;
i++;
}
if(p==false)printf("%s","nu ");
printf("%s","este prim!");
}

Deci pun eu o intrebare ... de ce preferati sa folositi i++ in defavoarea lui ++i ?

Link to comment
Share on other sites

Se poate folosi si programare nestructurata, care nu prea este recomandata in acest caz, dar e o metoda:


#include<stdio.h>

main()
{
int a, i;
bool p=true;
scanf("%d", &a);
i=2;
while(i*i<=a)
{
if(a%i==0) { p=false; goto finish; }
i++;
}
finish:
if(p==false) {
printf("%s","nu este prim!");
}
else {
printf("%s","este prim!");
}
}

Conform lui phreak, nu am pus acolade. Le pun acum :P

Link to comment
Share on other sites

tw8 mai citeste o data

tu ai zis asa :

a= a+b;

b=| b-a|=|b-a-b|=|-a| ;

a= a-|-a|!=b;

ai gresit aici pentru ca a este a+b deci la final a= a+b -|-a| = b

LE : cre ca esti powered by beer... programul lui moubik zice i<sqrt(n) deci nu ia in calcul pe 7 ;)

si rezolvarile voastre ( a ta si a lui vladii nu-s cu for :) )

Link to comment
Share on other sites

ai gresit aici pentru ca a este a+b deci la final a= a+b -|-a| = b

Da, ai dreptate ... nu am fost atent.

Dar tot nu e bine :P.

Incearca cu a = negativ si b = pozitiv ;).

LE : cre ca esti powered by beer... programul lui moubik zice i<sqrt(n) deci nu ia in calcul pe 7 ;)

Eu nu am zis acelasi lucru :X ?

si rezolvarile voastre ( a ta si a lui vladii nu-s cu for :) )

Vai de plm ... ideea era sa fie folosita structura repetivitva.

Daca esti asa mofturos, uita varianta cu for:

#include<stdio.h> 

main()
{
int a, i;
bool p=true;
scanf("%d", &a);
for(i=2;i*i<=a && p==true;i++)
{
if(a%i==0)p=false;
}
if(p==false)printf("%s","nu ");
printf("%s","este prim!");
}

Poate imi raspundeti si mie azi la intrebare :roll:...

Link to comment
Share on other sites

tu ai zis :

De exemplu, pentru n = patrat perfect si sqrt(n) = prim, va afisa ca numarul e prim. Incercati cu numarul 49 spre exemplu.

nu ai zis acelasi lucru ... tu probabil n-ai vazut ca nu-i <= si ai zis ca merge de la 2 la 7, o sa-l vada pe 7 ca numar prim si-o sa zica ca-i 49 prim ... defapt merge foarte bine pentru 49

si vladi a gresit ceva....

if(a%i==0) p=false; goto finish;

trebuia if(a%i==0) {p=false; goto finish;}

Link to comment
Share on other sites

tu ai zis :

De exemplu, pentru n = patrat perfect si sqrt(n) = prim, va afisa ca numarul e prim. Incercati cu numarul 49 spre exemplu.

nu ai zis acelasi lucru ... tu probabil n-ai vazut ca nu-i <= si ai zis ca merge de la 2 la 7, o sa-l vada pe 7 ca numar prim si-o sa zica ca-i 49 prim ... defapt merge foarte bine pentru 49

De cand stii tu ce am eu in minte ?

Scriptul lui moubik nu merge pentru 49, si pentru toate numerele de forma n = patrat perfect si sqrt(n) = prim.

Nu ma mai enerva cu replyuri idioate si incearca sa imi dai raspunsul la intrebare.

Link to comment
Share on other sites

de ce preferati sa folositi i++ in defavoarea lui ++i ?

i++ si ++i au acesi efect, incrementarea cu 1 a variabile i

In schimb a = i++ nu e la fel cu a = ++i

In expresia a = i++; a ia valoarea lui i, apoi i este incrementat, pe cand

in expresia a = ++i; intai se incrementeaza i, apoi a ia valoare lui i

Intrebare: Ce este si pentru pentru ce se foloseste robots.txt ?

Link to comment
Share on other sites

tw8, da aveam o greseala se rezolva cu un simplu <= sqrt(n) in loc de < sqrt(n) nu e nevoie de rescriere de cod :)

totusi al tau se opreste dupa ce gaseste solutia :) ce a uitat phreak sa precizeze

robots.txt se foloseste pentru blocarea/directionarea motoarelor de cautare intr-un site.

daca vrei ca un motor de cautare sa nu-ti indexeze un anumit director din site specifici in robots.txt

nu precizez sintaxa..

totusi

cum optimizezi un blind sql injection ?

nu vad de ce ar fi diferenta intre numar/string la asa ceva.

mi se pare aceeasi tehnica. nu e nevoie de implementare :)

doar precizata tehnica

Link to comment
Share on other sites

cum optimizezi un blind sql injection ?

1. verifici daca UPPER sau LOWER de Substring = Substring la o comanda sql la prima litera adica position,1 ATUNCI sti ca primu ii numar

2.verifici unele tabele care is caracteristice la anumite softuri

3 apoi mai este sa folosesti numere ca stringuri

4 absinthe foloseste o metoda interesanta ! incepe de la 0 si continua cu exponentul lui 2 parca...

.. oricum am enumerat ce folosesc eu pt a optimiza blind sql injection !

Link to comment
Share on other sites

cum optimizezi un blind sql injection ?

1. verifici daca UPPER sau LOWER de Substring = Substring la o comanda sql la prima litera adica position,1 ATUNCI sti ca primu ii numar

2.verifici unele tabele care is caracteristice la anumite softuri

3 apoi mai este sa folosesti numere ca stringuri

4 absinthe foloseste o metoda interesanta ! incepe de la 0 si continua cu exponentul lui 2 parca...

.. oricum am enumerat ce folosesc eu pt a optimiza blind sql injection !

acuma tre sa pui o intrebare :)

Link to comment
Share on other sites

cum optimizezi un blind sql injection ?

1. verifici daca UPPER sau LOWER de Substring = Substring la o comanda sql la prima litera adica position,1 ATUNCI sti ca primu ii numar

2.verifici unele tabele care is caracteristice la anumite softuri

3 apoi mai este sa folosesti numere ca stringuri

4 absinthe foloseste o metoda interesanta ! incepe de la 0 si continua cu exponentul lui 2 parca...

.. oricum am enumerat ce folosesc eu pt a optimiza blind sql injection !

foarte tare :)

mai este si metoda divide et impera in care practic faci cautare binara.

sa dau un exemplu:

incerci sa ghicesti un numar intre 1 si 100.

verifici daca este mai mare de 50.

daca este mai mare verifici daca este mai mare decat 75.

ati prins ideea.

pune o intrebare

Link to comment
Share on other sites

se foloseste la blind sql injection.

se verifica daca primul caracter din user_pass este egal cu caracterul in ascii 50, adica "2".

in caz ca este adevarata verificarea face ENCODE de 5000000 de ori ce practic va intarzia raspunsul.

in caz ca nu este adevarata verificarea pur si simplu se returneaza "null" si nu se intarzie raspunsul.

in concluzie

daca se intarzie raspunsul cu aproximativ 10 secunde (depinde de host, de functiile folosite..) stim ca primul

caracter din user_pass este "2" si se poate trece la aflarea urmatorului caracter.

astept acceptul, ca oricum nu am idee de intrebare acum.

Link to comment
Share on other sites

referitor la intrebarea ta tw8 nu stiu exact raspunsul dar stiu un lucru :

Daca folosesti ++variabila,valoarea returnata va fi valoarea din variabila incrementata,iar daca va fi variabila++ valoarea returnata va fi valoarea din variabila inainte de a fi incrementata!insa daca folosesti de ex x = i++ x va fi i si apoi i va fi incrementat si daca vom pune x = ++i i va fi incrementat si apoi x va lua valoarea acestuia...lol ce repede ati raspuns:))

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




×
×
  • Create New...