tag:blogger.com,1999:blog-57933761384530326082024-03-04T20:09:02.302-08:00Counter Strike ResourcesTutoriale, stiri si resurse ce tin de lumea HL-ului si de ce nu a programarii...daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.comBlogger42125tag:blogger.com,1999:blog-5793376138453032608.post-42241521332701615292012-01-30T05:40:00.000-08:002012-01-30T05:40:30.016-08:00Setti!<div dir="ltr" style="text-align: left;" trbidi="on">
Din pacate am observat in ultimul timp ca Setti nu mai este deloc o metoda buna de populare. Nu ma refer la boost, ci la inscrierea in "masterul" lor. De cand au facut boostul, celelalte servere si-au pierdut cam complet vizibilitatea. Astfel inscrierea devine o operatiune cat se poate de inutila.<br />
<br />
Cum functioneaza boostul: Stim bine ca sortarea nu o face masterul si
HL-ul clientului/sau Steamul. Drept urmare, Setti nu are cum sa iti puna
serverul mai sus in liste. E imposibil daca ne gandim ca unii filtreaza
dupa nume, altii ping, harta, mod chiar. Deci s-au gandit la altceva. <br /><br />Un
jucator trimite queryul de lista catre mastere. Masterul are
posibilitatea sa trimita raspunsul in transe. Adica daca sunt 1000 de
servere, nu-ti trimite 6 KB de date odata, pentru ca exista riscul sa
creeze un SEG-FAULT, ci iti trimite in 2 transe a cate 3 KB sa spunem.
De specificat este ca pt fiecare server sunt alocati 6Kb(4-ip + 2
port(unsigned short)). Setti avea 3 IP-uri la mastere. Dintre ele a
ramas decat unul(188.*.*.*). E, acest singur IP e folosit pentru boost.
Sa spunem ca la boost sunt 400 servere. El face cam asa:<br /><br /><br />Tu
trimiti query pt lista. El intr-o prima faza iti trimite cele 400
servere. Clientul stie ca mai trebuie sa primeasca date inca si
asteapta. Problema e ca celelalte date pot fi trimise la un interval de
timp mare. De ex: Iti trimite 400 de servere si la 3 minute iti trimite
restul. Automat multi jucatori nu stau sa astepte si restul serverelor,
ci se conecteaza la unul din cele 400.<br />
<br />
Deci ne putem lua adio de la inscrierea in Setti pentru ca oricum e ineficienta. Mai mult, impotriva redirectelor inscrise nu se va lua nicioadata vreo masura pentru simplul motiv ca aduc profit. Drept urmare nu o sa ma mai chinui sa emulez inscrierea in setti la urmatorul lor update pentru ca este o pierdere de timp. </div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com5tag:blogger.com,1999:blog-5793376138453032608.post-8062853768664524062012-01-19T11:28:00.000-08:002012-01-19T11:38:06.455-08:00Vulnerabilitate GPaneluri<div dir="ltr" style="text-align: left;" trbidi="on">
Desi stiu ca o sa-mi incalc cuvantul si postarea aceasta nu va fi despre compilarea unui modul pe Windows, nu ma pot abtine sa nu specific "bugul" urmator.<br />
<br />
Ideea e simpla: Am luat un server de WAR, 12 sloturi, acces doar GamePanel si FTP(fara SSH, cont root si mai stiu eu ce). Dupa mi-am zis sa-l fac din WAR, public cu 32 slots la aceleasi tarife,normal. Zis si facut. De specificat e ca prin tehnica urmatoare se poate schimba si portul. Daca aveti 29015 puteti schimba in 27015 fara probleme.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgebv2jePnAODLknsUOTKJnr0nvL9a9Z1U1hLCYLxszBDIlTx5HXPymN4M8-lzY7E1tCBToOB-Q5P8GYlsMISJyJy4W_vuvuFRD1N3DKxMASfUoMsTeFKh05VLwl3tc9PRG6JygWmxsjJ_e/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgebv2jePnAODLknsUOTKJnr0nvL9a9Z1U1hLCYLxszBDIlTx5HXPymN4M8-lzY7E1tCBToOB-Q5P8GYlsMISJyJy4W_vuvuFRD1N3DKxMASfUoMsTeFKh05VLwl3tc9PRG6JygWmxsjJ_e/s400/Untitled.png" width="400" /></a></div>
Am cenzurat pentru a nu divulga identitatea firmei, deoarece nu ar fi corect fata de ei, pentru ca vulnerabilitatea e prezenta cam la toate GamePanel-urile. Unul singur nu am putut testa, dar cred ca nu e afectat.<br />
<br />
<br />
Deci care e partea frumoasa? Cumperi un server de WAR, 12-14 slots si fara stirea administratorului il poti face public de 32 fara probleme. Decat sa dai 150Ron, dai 20 pe luna.<br />
<br />
In screen-ul de mai sus se observa numarul de sloturi alocate(12 maxim) si statusul:1/32. Specific ca eu eram pe server in acel moment.<br />
<br />
Cine nu crede, sa-mi puna la dispozitie pentru 2 ore un server de cate sloturi vrea si un cont de gamepanel:)<br />
<br />
Mentionez ca vulnerabilitatea nu se refera la introducerea de backdoor-uri sau eu mai stiu ce. Pur si simplu da posibilitatea manevrarii HLDS-ului dupa bunul plac.<br />
<br />
Vulnerabilitatea nu o sa o fac publica sub nicio forma pentru a nu crea probleme firmelor de hosting.</div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com6tag:blogger.com,1999:blog-5793376138453032608.post-37530171520721132392012-01-13T05:11:00.000-08:002012-01-13T05:45:35.295-08:00Compilare modul AMXX Linux<div dir="ltr" style="text-align: left;" trbidi="on">
Ok, in ultimele zile am pierdut timp bun cautand o solutie pentru a compila un modul de AMXX scris in C++ cu ajutorul gcc. Problema e ca niciodata nu-i dadeam de cap asa ca m-am hotarat sa o fac in stilul propriu. De la inceput trebuie specificat ca eu prefer "sa vad inainte sa ating" asa ca mi-am instalat o masina virtuala(VirtualBox), mi-am pus Ubuntu si am instalat Code::Blocks ca si IDE. De ce sa ne chinuim cu gcc din terminal cand s-au inventat IDE-urile pentru Linux si interfetele grafice?<br />
<br />
<a name='more'></a><br />
<b><i><span style="font-size: large;">Linux(Ubuntu 11.10):</span></i></b> <br />
Porniti masina virtuala, descarcati un iso Ubuntu, instalati-l si asigurati-va ca aveti instalate urmatoarele lucruri: gcc si codeblocks<br />
<br />
Instalare gcc: Deschideti terminalul<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCmuXnnSfXzYF7iCUJNeyOysrifz_7Fxadxr0Q69tzDpDyDrKMXcZmSiTcqgT4gg0IHyULO7gLyGKZ7Tx2gCtPxJOgkf9IJ6H3bUlQftIW9jxFdEohS6dMv_8LTkf0Mdd73Yjkg06K7Ku1/s1600/Screenshot+at+2012-01-13+14%253A58%253A50.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCmuXnnSfXzYF7iCUJNeyOysrifz_7Fxadxr0Q69tzDpDyDrKMXcZmSiTcqgT4gg0IHyULO7gLyGKZ7Tx2gCtPxJOgkf9IJ6H3bUlQftIW9jxFdEohS6dMv_8LTkf0Mdd73Yjkg06K7Ku1/s320/Screenshot+at+2012-01-13+14%253A58%253A50.png" width="320" /> </a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Rulati urmatoarea comanda: sudo apt-get install g++<br />
Daca vi se cere vreo parola, introduceti parola contului de utilizator<br />
<br />
Instalare Code::Blocks:<br />
In Software Center<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0PU46zuFWTvR9UJ1QHYDjh2LaV1jaZ7vNTFAnruXiMbJ4B-QniCT8pjw3-zynPlmk-2sMR3DseNgM65wt7F-68d45vzlWeG3ourxBTqPDplVSXdl6MuOIWwHW7V-ZmhZFtDkRKXe4IF4a/s1600/Screenshot+at+2012-01-13+15%253A01%253A33.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0PU46zuFWTvR9UJ1QHYDjh2LaV1jaZ7vNTFAnruXiMbJ4B-QniCT8pjw3-zynPlmk-2sMR3DseNgM65wt7F-68d45vzlWeG3ourxBTqPDplVSXdl6MuOIWwHW7V-ZmhZFtDkRKXe4IF4a/s320/Screenshot+at+2012-01-13+15%253A01%253A33.png" width="320" /></a></div>
Cautati codeblocks<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSVROJvC0r9G1c6jVyqc-PfBnRnd2jpEinN8shSKNyhnDCLEmpgP-T4XB50bamnenOvkFQS5KBnPX4PfOe0nJ5mEkThyphenhyphenKTx-RiMKARtz7QR0hYCRT_q9lj4qj-c6OMS4Sa9g6icxheKS1j/s1600/Screenshot+at+2012-01-13+15%253A02%253A55.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSVROJvC0r9G1c6jVyqc-PfBnRnd2jpEinN8shSKNyhnDCLEmpgP-T4XB50bamnenOvkFQS5KBnPX4PfOe0nJ5mEkThyphenhyphenKTx-RiMKARtz7QR0hYCRT_q9lj4qj-c6OMS4Sa9g6icxheKS1j/s320/Screenshot+at+2012-01-13+15%253A02%253A55.png" width="320" /></a></div>
De instalat cred ca va descurcati<br />
<br />
<b>Observatii:</b> <br />
Pentru a compila un modul amxx aveti nevoie de urmatoarele lucruri:<br />
<ul>
<li>HL Sdk: <a href="http://metamod.sourceforge.net/files/sdk/">http://metamod.sourceforge.net/files/sdk/</a> </li>
</ul>
Pentru Linux salvati arhiva hlsdk-2.3-p3.tar.gz. O descarcati de preferat pe Desktop pentru a fi accesibila<br />
<ul style="text-align: left;">
<li> MetaMod Source: Sursa metamod o gasiti aici: <a href="http://metamod.org/">http://metamod.org/</a> ,salvati si extrageti pe desktop "v1.19 Sourcecode.tar" </li>
</ul>
<table><tbody>
<tr></tr>
<tr><td> De specificat este faptul ca modulele AMXX vin cu un sablon predefinit. Descarcam un modul deja creat, eu am ales modulul sockets_hz de aici: <a href="http://forums.alliedmods.net/showthread.php?t=60026">http://forums.alliedmods.net/showthread.php?t=60026</a> .Fisierele amxxmodule.cpp, amxxmodule.h si moduleconfig.h reprezinta sablonul ce trebuie doar modificat. Bineinteles, cei care detin cunostinte avansate de C le pot implementa singuri. In fisierul sockets.cpp vedeti incluziunea fisierului "amxxmodule.h". Codul dumneavoastra trebuie sa contina obligatoriu aceasta linie, sau un header asemanator.<br />
<br />
<b>Crearea proiectului: </b><br />
Deschidem CodeBlocks->Create new project si ca template alegem Shared library<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3VtzPL8XKaHGhN4VgMbQ5Ca4gY8Rl0xBdzPgLxNp9RZza3vW2c5xdE8VzRYHp1d4hEQ4LTBErSAuGtPAni2tkRlBcVCPYGDCzu6gnxySW0OATN0ipbUmMwHLti1EDq6qVRqnCot8jz9YX/s1600/Screenshot+at+2012-01-13+15%253A14%253A22.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3VtzPL8XKaHGhN4VgMbQ5Ca4gY8Rl0xBdzPgLxNp9RZza3vW2c5xdE8VzRYHp1d4hEQ4LTBErSAuGtPAni2tkRlBcVCPYGDCzu6gnxySW0OATN0ipbUmMwHLti1EDq6qVRqnCot8jz9YX/s320/Screenshot+at+2012-01-13+15%253A14%253A22.png" width="320" /></a></div>
Dupa ce completam datele si alegem limbajul de compilare(recomand C daca nu folositi STL-ul, altfel la nevoie C++. HL SDK este scris in C asa ca poate fi integrat cu usurinta in C++)<br />
<br />
La Surse avem main.cpp. Deci am creat proiectul, automat a fost creat si folderul corespunzator. Obligatoriu: Copiem fisierele amxxmodule.cpp,amxmodule.h si moduleconfig.h si in acest folder. Bun, acum putem crea o sursa noua(main.cpp) sau putem lega una deja creata. Eu voi folosi sursa sockets.cpp. Sterg main.cpp si adaugam noua sursa. Initial ne ducem pe WorkSpace->Numele Proectului-> Click Dreapta-> Add files si ni se va deschide o fereastra ca in screenul urmator. O sa vedeti ca e selectata zona unde trebuie sa faceti Click Dreapta inainte:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij_CwxYqux9KA5Yk5lhoC0lXAqxwlgAKkkYQ-LWZQQxrvSV3-h0jBXb_1IPg1DQyZFpA9mHTkL2ARiKb1EqyCNlnNVvEvh66jwondJ45wraFHGpe5rQZdVX7-mxHQTq7ppgtoHAq1f_VsT/s1600/Screenshot+at+2012-01-13+15%253A21%253A16.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij_CwxYqux9KA5Yk5lhoC0lXAqxwlgAKkkYQ-LWZQQxrvSV3-h0jBXb_1IPg1DQyZFpA9mHTkL2ARiKb1EqyCNlnNVvEvh66jwondJ45wraFHGpe5rQZdVX7-mxHQTq7ppgtoHAq1f_VsT/s320/Screenshot+at+2012-01-13+15%253A21%253A16.png" width="320" /></a></div>
<br />
Obligatoriu adaugam si sursa amxxmodule.cpp in acelasi mod. De specificat ca sursele trebuiesc puse in modul Debug si Release(o sa vi se deschida o fereastra la adaugare) Acum trebuie sa adaugam la fel si fisierele amxxmodule.h si moduleconfig.h.<br />
Ar trebui ca mediul nostru de dezvoltare sa arate cam asa:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxHo5iCphB6Ifj93g9Zg9emiCcbPmw7jrR2nNpD8SGgFTZ8QamNoY7Qm_M6oVBT2cIZ0xljM9nqnvCK68J-0cn2jcSWw-pQi3Zb4cvzdpFkMcN1syiYe8DMVXhuuZ-_JFVBFu7FQ5TcDvT/s1600/Screenshot+at+2012-01-13+15%253A27%253A51.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxHo5iCphB6Ifj93g9Zg9emiCcbPmw7jrR2nNpD8SGgFTZ8QamNoY7Qm_M6oVBT2cIZ0xljM9nqnvCK68J-0cn2jcSWw-pQi3Zb4cvzdpFkMcN1syiYe8DMVXhuuZ-_JFVBFu7FQ5TcDvT/s320/Screenshot+at+2012-01-13+15%253A27%253A51.png" width="320" /></a></div>
Se observa existenta celor 3 fisiere template. Pentru a modifica datele modulului se deschide fisierul moduleconfig.cfg. Ar trebui sa aveti:<br />
#define MODULE_NAME "...."<br />
#define MODULE_VERSION "...."<br />
#define MODULE_AUTHOR "....."<br />
#define MODULE_URL "....."<br />
#define MODULE_LOGTAG "....."<br />
#define MODULE_LIBRARY "....."<br />
#define MODULE_LIBCLASS "........" <br />
Modificati si salvati. Cred ca va dati seama ce reprezinta fiecare. MODULE_LIBRARY si MODULE_LIBCLASS nu le-am gasit vreo importanta deci pot fi modificate oricum.<br />
<b><br /></b><br />
<b>Parte Importanta:</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjebfBOUIKu79-OR0wsQMuLbmg9U09uUy53HDfvWxlGnxInecKJx7lGIUCMz4A2p13hJLqCOuLmfbc51WIjl3dlCUZ7v0qTGdefAvYtw69mUOM0aVQMqBL9SrmEGENhV8v4NRoGv0STKoCr/s1600/Screenshot+at+2012-01-13+15%253A34%253A31.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /></a></div>
Va mai amintiti de SDK-urile descarcate mai devreme? Acum trebuie sa le linkam in compilator. Va duceti in meniul Project->Build Options si se va deschide ceva de genul: <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjebfBOUIKu79-OR0wsQMuLbmg9U09uUy53HDfvWxlGnxInecKJx7lGIUCMz4A2p13hJLqCOuLmfbc51WIjl3dlCUZ7v0qTGdefAvYtw69mUOM0aVQMqBL9SrmEGENhV8v4NRoGv0STKoCr/s1600/Screenshot+at+2012-01-13+15%253A34%253A31.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjebfBOUIKu79-OR0wsQMuLbmg9U09uUy53HDfvWxlGnxInecKJx7lGIUCMz4A2p13hJLqCOuLmfbc51WIjl3dlCUZ7v0qTGdefAvYtw69mUOM0aVQMqBL9SrmEGENhV8v4NRoGv0STKoCr/s320/Screenshot+at+2012-01-13+15%253A34%253A31.png" width="320" /></a></div>
<br />
Accesam Search Directories si ADD. Adaugam pe rand :<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuzi39AYlQcA2WgS_QhydqPH42TSLzdh9OF1HSxMU5oSvyFjIrAVuuSVcw_TauqB-PFEq_la2gkdApgFaoOmjyzOGSVSrTYb_t9ARQhCLE5vEad5_4qPNZIRlYCaWDZCeJhMsyH4ln9yYk/s1600/Screenshot+at+2012-01-13+15%253A39%253A09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuzi39AYlQcA2WgS_QhydqPH42TSLzdh9OF1HSxMU5oSvyFjIrAVuuSVcw_TauqB-PFEq_la2gkdApgFaoOmjyzOGSVSrTYb_t9ARQhCLE5vEad5_4qPNZIRlYCaWDZCeJhMsyH4ln9yYk/s320/Screenshot+at+2012-01-13+15%253A39%253A09.png" width="320" /></a></div>
Folderele se vad. Acum nu mai ramane decat sa dam Build si<br />
-------------- Build: Debug in sdf ---------------<br />
<br />
Compiling: sockets.cpp<br />
Linking dynamic library: bin/Debug/libsdf.so<br />
Output size is 39.16 KB<br />
Process terminated with status 0 (0 minutes, 0 seconds)<br />
0 errors, 0 warnings<br />
<br />
Redenumiti libraria de forma nume_amxx_i386.so si o adaugati in amxx. Postul urmator va fi despre cum puteti compila un modul amxx in Windows<br />
<br /></td><td><br />
<br />
<br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><span id="goog_99971667"></span><span id="goog_99971668"></span></td></tr>
</tbody></table>
</div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com0tag:blogger.com,1999:blog-5793376138453032608.post-29394527139581841472012-01-10T12:44:00.001-08:002012-01-10T12:45:18.417-08:00Ratat sau nu?<div dir="ltr" style="text-align: left;" trbidi="on">
cstrike_hldsdrops: Buna seara var interesa ceva pachet?<br />
denis daniel: buna seara<br />
denis daniel: da<br />
denis daniel: am inteles ca aveti redirecte de vanzare<br />
denis daniel: dau randament, sau slab?<br />
cstrike_hldsdrops: Dau randament<br />
denis daniel: clasice?<br />
cstrike_hldsdrops: 20 ron /Lunar<br />
cstrike_hldsdrops: ce doriti dumneavoastra<br />
denis daniel: cum erau cele fakehlds<br />
denis daniel: aveti?<br />
cstrike_hldsdrops: da Avem <br />
cstrike_hldsdrops: Nu pot raspunde la toti va rog asteptati putin si am sa va raspund la intrebari<br />
denis daniel: sigur<br />
cstrike_hldsdrops: Da avem ce doriti Redirecte fake hlds Cu statistici gratis !20 RON in Cont bancar<br />
denis daniel: as putea sa le vad 1 ora?<br />
cstrike_hldsdrops: Avem si dropuri foarte ieftine si de calitate<br />
cstrike_hldsdrops: Nu facem probe !<br />
denis daniel: nu proba<br />
denis daniel: doar sa vad daca redirectioneaza<br />
cstrike_hldsdrops: Am specificat ca doar cei interesati sa ma contacteze<br />
denis daniel: pe orice server doriti<br />
denis daniel: ideea e ca eu vreau sa cumpar<br />
denis daniel: dar trebuie sa stiu ce cumpar nu?<br />
denis daniel: voiam sa stiu ca redirectioneaza, pentru ca majoritatea nu merg pe non-steam<br />
cstrike_hldsdrops: Pai da normal Va dau 1 srv sa vedeti Cati playeri au !Cu redirectele cumparate de la mine dr.evogame.ro unul dintre clienti<br />
denis daniel: si de asta caut ca disperatul<br />
cstrike_hldsdrops: Da noi suntem de calitate mai avansata decat altii<br />
cstrike_hldsdrops: Avem si dropuri la 70 ron foarte bine Baga playeri<br />
cstrike_hldsdrops: Pachetul Bronz<br />
denis daniel: am vazut, dar luna asta vreau doar redirecte<br />
denis daniel: poate de luna viitoare e ok<br />
cstrike_hldsdrops: Avem de vanzare acum un srv de 24 slots cu 30 ron <br />
cstrike_hldsdrops: Este oferta de azi<br />
cstrike_hldsdrops: Sa imi spuneti ip de la serverul dumneavoastra Si cum sa facut plata Vor fi pornite<br />
denis daniel: ce?<br />
denis daniel: redirectele?<br />
cstrike_hldsdrops: Da redirectele<br />
cstrike_hldsdrops: ce ati cerut?<br />
cstrike_hldsdrops: redirecte ?<br />
denis daniel: pa alea nu trebuia sa le tinem noi?<br />
cstrike_hldsdrops: fakehlsd<br />
cstrike_hldsdrops: dropuri?<br />
denis daniel: redirecte gen fakehlds<br />
cstrike_hldsdrops: Stati va rog ca ma incurcasem<br />
cstrike_hldsdrops: foarte multa lume scrie si nu pot face fatza<br />
cstrike_hldsdrops: haideti sa clarificam <br />
cstrike_hldsdrops: Vreti redirecte nu?<br />
denis daniel: da<br />
cstrike_hldsdrops: Dupa ce faceti plata Redirectul va fi trimis pe email <br />
cstrike_hldsdrops: Automat<br />
cstrike_hldsdrops: Un nume mar interesa<br />
cstrike_hldsdrops: adresa<br />
cstrike_hldsdrops: si ip<br />
denis daniel: stati<br />
denis daniel: eu vreau sa vad pe ce trimit banii<br />
denis daniel: bun, dropurile de unde vin?<br />
denis daniel: ce tari?<br />
denis daniel: si ce garantie am ca vin acele dropuri...<br />
<br />
<br />
Singurul lucru care voiam sa verific este sa nu cumva sa foloseasca powergods-ul in scop comercial. </div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com3tag:blogger.com,1999:blog-5793376138453032608.post-53672090433415470082012-01-07T11:19:00.000-08:002012-01-07T11:31:26.974-08:00Implementare imagine de securitate in PHP<div dir="ltr" style="text-align: left;" trbidi="on">
In opinia mea e una dintre cele mai bune metode de protectie impotriva spammerilor. Lipsa acestei masuri de securitate lasa foarte multe posibilitati pentru un programator de a trimite requesturi false. In acest tutorial va voi arata metoda de pastrare a codului in cookie si nu in $_SESSION deoarece aceasta functie nu este implementata peste tot. In plus, majoritatea browserelor moderne, inclusiv cele mobile au 'prajiturelele' activate<br />
<br />
<a name='more'></a><br />
<br />
In ce consta: Se genereaza random un cod in php(un numar e de ajuns), se genereaza imaginea, se seteaza headerele pentru a nu pastra urme si a accepta browserul imaginea si se salveaza codul hash(de obicei md5) al numarului generat. De ce hashuit? Ganditi-va ca daca ati pastra numarul in cookie, ar fi foarte simplu pentru oricine sa il ia si sa-l refoloseasca. Unde ar fi protectia? Asa, avand in vedere ca gradul de injectivitate al functiei md5 este destul de sporit, coliziunile de hash fiind foarte intamplatoare, e de ajuns sa pastram hashul.<br />
<br />
Punem codul de generare a imaginii, hashului, si storage intr-un php, numit sa spunem cap.php<br />
<span style="color: #999999; font-size: x-small;"><b><?php<br /><br />// generate 5 digit random number<br />$rand = rand(10000, 99999);<br /><br />// create the hash for the random number and put it in the cookie<br />setcookie("int",md5($rand));<br />// create the image<br />$image = imagecreate(60, 30);<br /><br />// use white as the background image<br />$bgColor = imagecolorallocate ($image, 255, 255, 255);<br /><br />// the text color is black<br />$textColor = imagecolorallocate ($image, 0, 0, 0);<br /><br />// write the random number<br />imagestring ($image, 5, 5, 8, $rand, $textColor);<br /><br />// send several headers to make sure the image is not cached<br />// taken directly from the PHP Manual<br /><br />// Date in the past<br />header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");<br /><br />// always modified<br />header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");<br /><br />// HTTP/1.1<br />header("Cache-Control: no-store, no-cache, must-revalidate");<br />header("Cache-Control: post-check=0, pre-check=0", false);<br /><br />// HTTP/1.0<br />header("Pragma: no-cache");<br /><br />// send the content type header so the image is displayed properly<br />header('Content-type: image/jpeg');<br /><br />// send the image to the browser<br />imagejpeg($image);<br /><br />// destroy the image to free up the memory<br />imagedestroy($image);<br />?></b></span><br />
<br />
Presupun ca va dati seama ca acest cod nu a fost creat de mine, deci nu imi asum drepturile asupra lui.<br />
<br />
Dupa cum vedeti, am salvat hashul generat in Cookieul int.<br />
Acum, trebuie sa apelam scriptul in form-ul nostru. O sa dau exemplu cel de la evidenta powergods. <br />
<br />
<span style="font-size: x-small;"><b style="color: #999999;"><form name="input" action="submit.php" method="post"><br /> <input type="text" name="nume" value="Nume Licenta/Server/DNS" /></br><br /> <input type="text" name="ip" value="IP Server"/></br><br /> <input type="text" name="port" value="Port Server" /></br><br /> <input type="text" name="email" value="E-Mail" /></br><br /> <input type="text" name="forum" value="Forum/Website"/></br><br /> &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<span style="color: #6aa84f;"> </span></b></span><br />
<span style="font-size: x-small;"><b style="color: #999999;"><span style="color: #6aa84f;"><input type="text" name="captcha" value="Codul de alaturi"/><img src="verificationimage.php?<?php echo rand(0,9999); echo $_COOKIE['int'];?>" alt="verification image, type it in the box" width="50" height="24" align="absbottom" /></span><br /></b></span><br />
<br />
Acest <span style="font-size: x-small;"><b style="color: #999999;"><span style="color: #6aa84f;"><img
src="cap.php?<?php echo rand(0,9999); echo
$_COOKIE['int'];?>" alt="verification image, type it in the box"
width="50" height="24" align="absbottom" /> </span></b></span>defapt afiseaza imaginea cu codul de securitate. Ii puteti adauga un background modificand cap.php pentru a face mai greu de ghicit in mod automat codul.<span style="font-size: x-small;"><b style="color: #999999;"><span style="color: #6aa84f;"></span></b></span><br />
<br />
Ne mai ramane decat sa verificam hashul salvat in cookie cu cel generat de parametrul din form, pentru a vedea daca numerele corespund. Acest lucru il faceti doar in scriptul de action, in cazul nostru <span style="font-size: x-small;"><b style="color: #999999;">submit.php </b></span>, altfel s-ar putea sa lasati o mica portita pentru injectarea hashului.<br />
In submit.php punem:<br />
<br />
<span style="font-size: x-small;"><b><span style="color: #999999;">if (md5($_POST['captcha']) != $_COOKIE['int'])</span><br style="color: #999999;" /><span style="color: #999999;">{</span><br style="color: #999999;" /><br style="color: #999999;" /><span style="color: #999999;">echo "<font color='red'><b> Cod de securitate(imagine verificare) invalid</br></b></font>";</span><br style="color: #999999;" /><span style="color: #999999;">$ok = 0;</span><br style="color: #999999;" /><span style="color: #999999;">}</span></b></span><br />
<br />
Cu acest sfat, va puteti apara de majoritatea Spamurilor.</div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com0tag:blogger.com,1999:blog-5793376138453032608.post-84923351374890829312012-01-04T03:04:00.000-08:002012-01-07T06:37:08.605-08:00Ulalala...asta da<div dir="ltr" style="text-align: left;" trbidi="on">
Ghici ce-am descoperit... Majoritatea siteurilor de tracking gen gametracker,csservers,etc,etc sunt vulnerabile XSS persistent=)). Se pot introduce foarte usor scriputri externe, se pot redirecta vizitatorii, se poate face cam orice. Cred ca 99% din ele sunt vulnerabile in cel putin 3 locuri.<br />
<br />
GameTracker:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdwFa9lyTKOtXuv-TcTQ-4bQP_rA2sCgx23LA0zQXJcc8LGB4ubdhKNFvz6x81ryl3RWY1xto7rQ3wSJOGFhrP_dzyJY2YAShEIS893jVSlyFtnE00qlVtXk9HZh73lCjIdsdL15x0_ZrN/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="215" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdwFa9lyTKOtXuv-TcTQ-4bQP_rA2sCgx23LA0zQXJcc8LGB4ubdhKNFvz6x81ryl3RWY1xto7rQ3wSJOGFhrP_dzyJY2YAShEIS893jVSlyFtnE00qlVtXk9HZh73lCjIdsdL15x0_ZrN/s400/Untitled.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT-jox5_ljsCdRFZUgd-ayIc3wKNh4Efem400o3nwziMJ1RjERThuwyyQCO5M653gxUapxeEK8f9hSNRs4jHCotRb9tnr46pbb4dPaieJeHHyApEyBuRVgQGlhKiUZhjxPMdi2caymSeaq/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /></a></div>
<br />
Am mascat detaliile serverului si IP-ul pentru a nu da idei:)<br />
<br />
CSServers.ro: (in urma sesizarii s-a rezolvat)<br />
<a name='more'></a><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhHmxMK3cFmef-xZNfixFjOy3PxH2GEreScDlSr6uyAais_YLLkJJ_7pfSNU0jhdtgqrOMGGb7C5Mack8hXVHimVB1Jy-4BPiwfL1E1M2dzxvpkBjOumKsHcnW5takiOYZXvk9LY0BF7jK/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /></a></div>
<br />
Setmaster.info....nu stiu, Romania se pare ca e restricionata(nu am putut sa testez)<br />
<br />
Setti.....vulnerabil in cel putin 4 locuri. Chiar si pe pagina principala.<br />
<br />
<br />
Freakz.ro: Tot respectul. Impecabil<br />
<br />
<br />
http://servere-cs.celife.ro/<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwvY0nGyBGcTlVqmYs_WfYtPJMi8fH2MAfC44Ij7bSJpR9Nt-JE9cBEVwgaI4MNkPaDFMuPsakS5tRDXtn8rdzlBJ7t_c2_A7CGQZNiUKpEnTwLpP0Z0u5aQA4GVt3frXPNtbteb3Dn5_-/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="172" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwvY0nGyBGcTlVqmYs_WfYtPJMi8fH2MAfC44Ij7bSJpR9Nt-JE9cBEVwgaI4MNkPaDFMuPsakS5tRDXtn8rdzlBJ7t_c2_A7CGQZNiUKpEnTwLpP0Z0u5aQA4GVt3frXPNtbteb3Dn5_-/s320/Untitled.png" width="320" /></a></div>
<br />
<br />
Setmaster.net<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6iLoiwf-L386fLvkGBkzYgX6ttsgXKehFWfJYLdz43l3MIwnru0tTi0GuxCeeH7TeOW30ld2qs1ZQup-63eC2sSuJBC8wqxgoZtPpp6GQc3uZ9uFeHa0gYWNyDDhyphenhyphenlvoIemiWP4ZFG-9e/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="170" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6iLoiwf-L386fLvkGBkzYgX6ttsgXKehFWfJYLdz43l3MIwnru0tTi0GuxCeeH7TeOW30ld2qs1ZQup-63eC2sSuJBC8wqxgoZtPpp6GQc3uZ9uFeHa0gYWNyDDhyphenhyphenlvoIemiWP4ZFG-9e/s320/Untitled.png" width="320" /></a></div>
<br />
xhlds.com...nu stiu, inregistrarea e dezactivata</div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com5tag:blogger.com,1999:blog-5793376138453032608.post-77476999849061828772012-01-03T10:07:00.000-08:002012-01-04T10:56:36.721-08:00Deja m-am saturat de Setti:)<div dir="ltr" style="text-align: left;" trbidi="on">
Din nou Setti mi-a dat peste ca planurile si a trebuit sa stau o zi intreaga sa descopar de unde vine imposibilitatea inscrierii. Ce pot sa spun este ca pagina de request e neschimbata, insa am ramas uimit sa vad de la ce e. Cu ocazia asta tin sa felicit Setti. In sfarsit am vazut ca au "ridicat si ei un deget" in securizarea form-ului de inscriere. Oricum, nici aceasta metoda nu e perfecta, drept dovada ca am reusit sa refac inregistrarea(cu ceva mai mult efort ce-i drept).<br />
Pe aceasta cale am facut si un Update scurt in care am adaugat o noua optiune(sv_region) accesibila din Settings.<br />
<br />
<br />
L.E: 04-01-2012<br />
Au schimbat de tot protocolul. Au securizat prin folosirea unui hash. Totusi, nu de ajuns sa opreasca inscrierea automata:)<br />
Dar presimt ca urmatoarea schimbare o sa puna capat posibilitatii de inscriere automata.</div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com4tag:blogger.com,1999:blog-5793376138453032608.post-64152622012326750352011-12-29T04:24:00.000-08:002011-12-29T04:24:52.211-08:00Update viitor de amploare<div dir="ltr" style="text-align: left;" trbidi="on">
Jucandu-ma cu niste mastere de boosting importante(de la Setti:D) azi am descoperit o mica, dar foarte importanta scapare a lor. Am putut inregistra redirecte, fara a trece de partea cu paypalul, direct din request. Culmea e ca si pe Steam merge figura(dar tot nu dezactiveaza limita numarului de redirecte).<br />
<br />
Updateul este deja facut, insa il vor lansa peste 1 saptamana, 2. Astept sa vad cum evolueaza lucrurile. De asmenea mi-a mai venit o idee nebuna de-a dreptul, dar vreau sa fac niste teste prima data. Tin sa pecizez ca updateul va fi disponibil doar pe varianta Linux a PowerGods</div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com0tag:blogger.com,1999:blog-5793376138453032608.post-41025025326502559772011-12-28T10:13:00.000-08:002011-12-28T11:25:32.575-08:00Sa radem putin<div dir="ltr" style="text-align: left;" trbidi="on">
Conversatie intre mine si un anumit "hak3r"<br />
<br />
<span class="fullpost">--------: salut<br />bloody.angel46: Salut<br />bloody.angel46: tu esti unul dintre doritori<br />bloody.angel46: ><br />bloody.angel46: ?<br />----------: da<br />----------: m-as mira sa mearga<br />------------: prin messenger<br />bloody.angel46: merge<br />bloody.angel46: stai 1 sec</span><br />
<a name='more'></a><span class="fullpost"><br />bloody.angel46: sa termin treaba cu un client<br />-----------: intrebare, tu spargi conturi de facebook si tranzactionezi pe yahoo mess?<br />-----------: foarte criptate convorbirile<br />bloody.angel46: deci tu dorestti nu ? <br />bloody.angel46: ai credit orange<br />bloody.angel46: ?<br />bloody.angel46: 1 2 3 euro acolo...dupa buzunar..<br />-------------: iti dau si 10 euro<br />-------------: daca functioneaza<br />bloody.angel46: <br />bloody.angel46: am primit<br />bloody.angel46: maxim<br />bloody.angel46: 10<br />bloody.angel46: dar eu l-am facut alaturi<br />bloody.angel46: de echipa mea<br />bloody.angel46: eu in decurs de ....2 sapt<br />bloody.angel46: sa zicem<br />---------------: "spartul asta" consta in aflarea parolei?<br />bloody.angel46: am spart circa 390 conturi dupa toate continentele<br />bloody.angel46: ..<br />bloody.angel46: da<br />bloody.angel46: in asta consta...<br />bloody.angel46: uite...<br />----------------: hashuri sau decriptate?<br />bloody.angel46: Username: mguleryuz2@yahoo.com Password: memoburda Login: http://www.facebook.com<br />bloody.angel46: asta de ex<br />bloody.angel46: este<br />bloody.angel46: un baiat sau o fata<br />bloody.angel46: nush ca nu l-am icnercat<br />bloody.angel46: din danemarca<br />bloody.angel46: cerd<br />bloody.angel46: cred<br />bloody.angel46: *<br />----------------: si daca iti dau un cont<br />bloody.angel46: incearca...<br />---------------: il poti sparge?<br />bloody.angel46: sau<br />bloody.angel46: am uitat<br />bloody.angel46: sa iti zic<br />bloody.angel46: un cont ==> 1 euro...<br />bloody.angel46: programull...5 euro<br />bloody.angel46: dar akm e seara<br />bloody.angel46: si vreau sa ies si il dau repede<br />bloody.angel46: da normal<br />bloody.angel46: ..<br />bloody.angel46: in circa<br />bloody.angel46: 30 min<br />bloody.angel46: in pot sparge..<br />bloody.angel46: era un hack pe fb zilele trecute...care tot de la noi a pelcat era o eroare de conexiune....si s-a raspundit usor ....<br />bloody.angel46: in fine.<br />-----------------: bun deci<br />bloody.angel46: plecat*<br />---------------: eu iti dau 10 euro pe loc<br />bloody.angel46: scz gramatica asta amk vb cu 5 odata<br />--------------: daca reusesti sa-mi spargi parola<br />bloody.angel46: <br />----------------: imi uploadezi o poza<br />----------------: pe profil<br />bloody.angel46: nu am nev de 10 euro...nimeni nu mi-a dat pana acum<br />bloody.angel46: 10<br />bloody.angel46: da-mi 3 4 si tot e bine<br />bloody.angel46: <br />bloody.angel46: si asa am strans 45<br />bloody.angel46: pana cum<br />-----------------: bun<br />-----------------: spune-mi cat vrei<br />bloody.angel46: da-mi momentan 1 euro mie imi place<br />bloody.angel46: sa lucrez usor si bine..<br />bloody.angel46: incet si bine<br />------------: si ce siguranta am eu?<br />bloody.angel46: problema asta <br />bloody.angel46: s-a ivit<br />bloody.angel46: la toti cumpartorii<br />bloody.angel46: mei<br />bloody.angel46: a aparu merue intrebare " ce sigurata am eu " <br />--------------: pai sa vedem...te lauzi cu un lucru pe care l-au incercat mii de minti luminate din lume<br />bloody.angel46: cei care au ales sa mearga mai departe si-au dat seama ca nu au avut ce pierde iar cei care au renuntat Asta e<br />--------------- sa decripteze un hash in mai putin de 1 ora<br />------------- eu, din pacate mai am si putine cunostine in domeniu<br />----------------: stiu ce inseamna un algoritm de criptare<br />---------------: stiu cum sunt salvate parolele<br />--------------- de asta sunt sceptic<br />bloody.angel46: <br />---------------: vreau doar sa vad ca este posibil<br />---------------: asta urmaresc<br />bloody.angel46: ai fost hack-er<br />bloody.angel46: ?<br />------------------: nu<br />bloody.angel46: ca vad ca le ai cu termenii...<br />----------------: programator doar<br />bloody.angel46: aaa<br />--------------: deci?<br />-----------------: repet<br />-----------------: nu-mi dai parola<br />----------------: ci uploadezi doar o poza<br />---------------: sa ma conving<br />-----------: sau faci un post<br />--------------- sau ceva<br />bloody.angel46: de ce nu vrei parola<br />bloody.angel46 is typing...<br />bloody.angel46: ?<br />------------------: mi-o dai dupa ce iti platesc<br />-----------------: uite pune poza asta<br />-----------------: la profil </span><br />
<span class="fullpost"><br /></span><br />
<span class="fullpost"><br /></span><br />
<span class="fullpost">Si a iesit speriat:)) Din pacate n-am apucat sa-i iau IP-ul. Se lauda omul ca "sparge conturi de facebook"</span><br />
<br />
<br />
<span class="fullpost">A doua repriza:D </span><br />
<span class="fullpost"><br /></span><br />
<span class="fullpost"><br /></span><br />
<span class="fullpost">Redirecte Wargods: back<br />Redirecte Wargods: deci ce zici?<br />Redirecte Wargods: poti sa faci ceva cu fb-ul comunitati?<br />bloody.angel46: te-am asteptat<br />bloody.angel46: ...<br />bloody.angel46: sper ca nu te-am astepat<br />bloody.angel46: degeaba<br />bloody.angel46: da pot<br />bloody.angel46: am bv<br />bloody.angel46: cu echipa<br />bloody.angel46: <br />bloody.angel46: e usor<br />bloody.angel46: ..<br />Redirecte Wargods: da-mi nr de tel<br />bloody.angel46: uite<br />bloody.angel46: cum facem<br />bloody.angel46: cati<br />bloody.angel46: vrei<br />bloody.angel46: sa imi dai<br />bloody.angel46: ?<br />bloody.angel46: eu nu accept<br />bloody.angel46: prea<br />bloody.angel46: mult<br />bloody.angel46: ptr ca cel mai mult mi-a dat unu 7 euro..<br />Redirecte Wargods: nu ai zis 2 euro?<br />bloody.angel46: si i-am spart<br />bloody.angel46: da<br />bloody.angel46: 2 euro.<br />bloody.angel46: 1 acum<br />bloody.angel46: si 1 dupa<br />bloody.angel46: <br />Redirecte Wargods: ok<br />Redirecte Wargods: da-mi telefon<br />bloody.angel46: ai skype<br />bloody.angel46: ca nu am telefonul la mine<br />bloody.angel46: ....<br />Redirecte Wargods: nu<br />bloody.angel46: atunci<br />bloody.angel46: trimitei<br />bloody.angel46: ma<br />bloody.angel46: imi dai 1 eu iti sparg ala in circa 10 15 mine<br />bloody.angel46: si dupa<br />bloody.angel46: imi dai restu;<br />bloody.angel46: dar dak nu imi dai restu'.....<br />bloody.angel46: <br />bloody.angel46: oricum<br />bloody.angel46: sper ca nu am astepat<br />bloody.angel46: degeaba<br />Redirecte Wargods: daca e ti trimit cand ai telul langa tine<br />Redirecte Wargods: eu oricum stau pe mess<br />bloody.angel46: am tellu in camera la mama....<br />Redirecte Wargods: cum vrei<br />bloody.angel46: <br />bloody.angel46: nu-i prob<br />bloody.angel46: ma<br />bloody.angel46: am facut<br />bloody.angel46: destule afaceri..<br />bloody.angel46: azi<br />Redirecte Wargods: a, ca tot sti<br />bloody.angel46: si nu e prob<br />Redirecte Wargods: a incercat cnva<br />bloody.angel46: asta<br />bloody.angel46: e<br />bloody.angel46: mai imi iau si eu cate oteapa<br />bloody.angel46: dar<br />bloody.angel46: asta e<br />Redirecte Wargods: sa-mi faca legatura dintre site si fb<br />Redirecte Wargods: dar nu prea a iesit<br />Redirecte Wargods: http://wargods.ro/fb.php<br />Redirecte Wargods: ai vreo idee?<br />bloody.angel46: o secunda<br />bloody.angel46: sa il chem<br />Redirecte Wargods: nu stiu de unde da eroarea aia nenorocita<br />bloody.angel46: pe un coleg<br />bloody.angel46: s-ar putea <br />bloody.angel46: sa te ajute el<br />Redirecte Wargods: ok<br />Redirecte Wargods: ceva legat de fsockopen<br />Redirecte Wargods: e luat codul de aici<br />Redirecte Wargods: http://developers.facebook.com/<br />bloody.angel46: stiu site-ul<br />bloody.angel46: <br />Redirecte Wargods: ai vreo idee?<br />Redirecte Wargods: daca e iti dau sursa<br />Redirecte Wargods: iti platesc<br />Redirecte Wargods: nu=i prob<br />bloody.angel46: te contactez<br />bloody.angel46: eu dak esti activ<br />Redirecte Wargods: ok<br />bloody.angel46: pe id asta de emss<br />bloody.angel46: mess<br />Redirecte Wargods: sa-mi zici nr de tel<br />bloody.angel46: urmatoarele ore<br />bloody.angel46: acum<br />bloody.angel46: o secunda stai sa finalizez cu un clinet<br />bloody.angel46: client<br />Redirecte Wargods: ok<br />bloody.angel46: saracu asteapta de 2 ore<br />bloody.angel46: <br />bloody.angel46: terbuie sa iasa 2 min<br />Redirecte Wargods: eu raman pe mess oricum<br />bloody.angel46: trebuie*<br />bloody.angel46: e bine<br />bloody.angel46: gata l-am rezolvat...vroia omul<br />bloody.angel46: sa imi dea 15 euro<br />bloody.angel46: ca i-am facut<br />bloody.angel46: 5 conturi..<br />bloody.angel46: i-am zis sa imi dea 7 nu vreau sa iasa si el in paguba<br />bloody.angel46: 0746150348<br />bloody.angel46: my phone number<br />bloody.angel46: <br />Redirecte Wargods: ok 2 min si trimit<br />Redirecte Wargods: sunt cu teamviewerul in nas<br />bloody.angel46: ))))))<br />bloody.angel46: stiu<br />bloody.angel46: cum este<br />bloody.angel46: frate<br />bloody.angel46: de la ora<br />bloody.angel46: 8 sunt la pc<br />bloody.angel46: ..<br />bloody.angel46: tu esti ultimul<br />bloody.angel46: client<br />bloody.angel46: ca ma bag la somn<br />bloody.angel46: <br />bloody.angel46: si cu problema aia ramane de vazut maine<br />Redirecte Wargods: ok<br />bloody.angel46: 2 euro<br />bloody.angel46: da<br />bloody.angel46: ?<br />bloody.angel46: sa nu ma incurc ca am avut multi clienti)<br />Redirecte Wargods: 1 euro acum ai zis<br />bloody.angel46: ai inchis team-ul ?<br />Redirecte Wargods: da<br />bloody.angel46: <br />Redirecte Wargods: app<br />Redirecte Wargods: 92.86.69.153<br />Redirecte Wargods: e ip tau nu?<br />bloody.angel46: ptr?<br />Redirecte Wargods: a, nimic ti l-am luat de pe celalalt ID<br />Redirecte Wargods: cand ti-am trimis imaginea<br />Redirecte Wargods: si tu ai pornit photo sharing<br />Redirecte Wargods: <br />bloody.angel46: care celalat id<br />bloody.angel46:</span><br />
<span class="fullpost"> </span><br />
<span class="fullpost"> acum in principiu degeaba incerci sa-mi dai Ignore<br />Redirecte Wargods: ca am toata conversatia<br />Redirecte Wargods: IP-ul si nr de telefon<br />Redirecte Wargods: deci mai rau iti faci<br />bloody.angel46: mda<br />bloody.angel46: ai drepate...<br />Redirecte Wargods: cati ani ai?<br />bloody.angel46: 11<br />bloody.angel46: ...<br />bloody.angel46: tu esti mai mare<br />bloody.angel46: ?<br />Redirecte Wargods: cu vreo cativa mai multi ani<br />Redirecte Wargods: <br />bloody.angel46: ...esti la servici ?<br />Redirecte Wargods: da<br />Redirecte Wargods: din pacate da<br />bloody.angel46: esti mare inseanma<br />Redirecte Wargods: din pacate pentru tine...<br />Redirecte Wargods: Cam cati clienti ai avut?<br />Redirecte Wargods: pana acum?<br />bloody.angel46: ..<br />bloody.angel46: 0...era un plan de a lui ..blue as obtina si el admin pe rrs...nu cred ca tu cunosti..oricum..eu i-am zis ca nu o sa mearga...dar...aiurea oricum...<br />bloody.angel46: sper sa nu imi faci nimic rau la telefon...dabea l-am primit<br />Redirecte Wargods: stai linistit nu iti fac nimic rau la telefon<br />Redirecte Wargods: te reclam la politie<br />Redirecte Wargods: Ce ai facut tu se numeste inselaciune<br />bloody.angel46: ...<br />Redirecte Wargods: bw, stai aproape de mine<br />bloody.angel46: nu am mai facut<br />bloody.angel46: asta niciodata...<br />bloody.angel46: dar<br />bloody.angel46: am auz<br />Redirecte Wargods: nu conteaza, ai incercat cu mine<br />bloody.angel46: auzit de inselaciune<br />bloody.angel46: <br />Redirecte Wargods: ai auit si cum se pedepseste?<br />Redirecte Wargods: avand in vedere ca tu esti minor<br />bloody.angel46: sper sa nu pateasca nimic tata..din caza mea..dabea a iesit din spital<br />Redirecte Wargods: nu o sa patesti nimic<br />bloody.angel46: ...<br />Redirecte Wargods: dar ai tai<br />Redirecte Wargods: nu garante<br />Redirecte Wargods: garantez*<br />Redirecte Wargods: stai prin zona bucuresti?<br />bloody.angel46: da...m-am mutat la bunica<br />bloody.angel46: de sarbatori<br />Redirecte Wargods: Romtelecom/Clicknet<br />Redirecte Wargods: interesant<br />bloody.angel46: da...<br />bloody.angel46: stiu</span><br />
<span class="fullpost"><br /></span><br />
<span class="fullpost"><br /></span><br />
<span class="fullpost">Saracul =)))) </span><br />
<span class="fullpost">Aveti acolo nr de telefon, IP ,ID </span></div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com11tag:blogger.com,1999:blog-5793376138453032608.post-58646137566583082122011-12-27T10:11:00.001-08:002011-12-27T10:30:10.469-08:00Utilitar verificare masterserver<div dir="ltr" style="text-align: left;" trbidi="on">
Mie mi s-a parut un utilitar foarte profesional facut, si de mare mare ajutor. Testeaza daca un masterserver e capabil sa trimita response.<br />
<br />
<a href="http://www.csservers.ro/forum/verificare-master-server/">http://www.csservers.ro/forum/verificare-master-server/</a></div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com0tag:blogger.com,1999:blog-5793376138453032608.post-68085155125078962192011-12-27T09:49:00.000-08:002011-12-27T09:49:26.169-08:00Lansare PowerGods Redirect<div dir="ltr" style="text-align: left;" trbidi="on">
Dupa o perioada indelungata de teste, azi am decis lansarea oficiala a proiectul PowerGods Redirect. Ele sunt redirecte asemanatoare fakeHLDS, insa cu foarte multe imbunatatiri, consum minim de resurse, inregistrare in toate masterele importante si multe alte facilitati. Versiunea Windows va fi gratuita, bineinteles atata timp cat sunt respectate niste norme de decenta. Maxim pot fi deschise 500 redirecte per sesiune. Va invitam sa le testati si folositi in prealabil.<br />
<br />
Pagina proiectului: http://www.wargods.ro/redirect</div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com2tag:blogger.com,1999:blog-5793376138453032608.post-75805626011547150782011-12-26T09:22:00.000-08:002011-12-26T09:22:29.644-08:00Detectarea automata a LoadingMenu.amxx<div dir="ltr" style="text-align: left;" trbidi="on">
Dupa cum am observat in ultima vreme multe servicii de boosting, chiar si mastere mari nu accepta pluginul LoadingMenu(cel care modifica meniul jucatorilor Valve_id_lan). Ar fi o munca titanica sa stai si sa verifici manual intrand pe mii de servere si redeschizand CS-ul sau consola de fiecare data.<br />
Facand niste cercetari am reusit sa ghicesc posibilul header al comenzii write_file(folosita la scrierea .res-ului). El este in bytes:<br />
<br />
02:00:00:c0:01:00:00:80:59:18:01:03<br />
<br />
Un exemplu complet de request ce suprascrie meniul:<br />
<br />
<a name='more'></a>02:00:00:c0:01:00:00:80:59:18:01:03:80:00:10:42:58:52:40:02:4a:02:10:70:03:21:69:2a:4b:03:66:5b:61:be:2b:ea:91:12:00:02:42:<br />
3c:50:82:a6:18:50:52:38:98:df:ad:80:ce:da:02:61:f6:26:c4:c8:7a:3a:e4:e8:ff:4a:66:3c:10:5f:66:11:25:ea:03:f7:e9:58:63:d5:64:fd:af:80:25:ee:30:a4:4e:c2:24:33:b6:6c:1a:ad:02:b1:8e:50:58:0f:77:54:df:86:9a:47:65:c5:66:5c:dd:0c:59:7b:49:87:df:5b:d6:b9:cb:c0:34:14:c1:a3:52:6c:95:60:8f:e7:4f:9b:eb:dd:f0:00:db:14:39:b9:c5:d2:d6:cc:83:f4:16:10:44:52:8e:99:6f:58:79:78:dc:32:bb:bd:0d:74:4a:18:80<br />
<br />
De asemenea pe timpul testului am mai gasit un pachet folositor(cel de deconectare): 05:00:00:00:02:00:00:80:30:6a:64:06:76:6c:73:35:0f:64:2e:60:00<br />
<br />
<br />
Ideea unui spider ce verifica automat de acel plugin este simpla. Se trimite un request de conectare virtual si se asteapta raspunsul serverului. Daca raspunsul contine acel header inseamna ca trebuie banat. Problema practica e mult mai complicata de atat. De ce? Pluginul loading menu este scris in asa fel incat sa scrie datele la 2 secunde de la client_putinserver, deci dupa conectarea totala. Ca sa creezi o conectare virtuala completa ai nevoie de foarte multe cunostinte despre protocolul Valve(in-game--nu este public) si de mult timp. Ca idee sunt vreo cateva zeci de requesturi pe timpul conectarii la un server. Totusi, cu efort, este posibila crearea unui astfel de spider. Se ia un sniffer si se incepe in a se emula engineul Half-Life pana la un moment dat.Partea urata ca sunt sigur ca cineva o sa se gandeasca sa mareasca timpul de trimitere de la 2 sec la cel putin 30 secunde...si atunci nu prea mai ai ce sa faci, trebuie sa creezi pur si simplu un jucator virtual, cu toate proprietatile, etc. Ganditi-va ca daca acel pachet de loading_menu este trimis la 30 sec de la conectare, in alea 30 secunde botul tau trebuie sa se comporte ca un jucator normal(cateva mii de pachete de date trimise si primite-pachete cunoscute decat de Valve)....cam greu nu? In concluzie cam singura solutie de detectie este cea manuala.</div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com1tag:blogger.com,1999:blog-5793376138453032608.post-55777394954509322372011-12-25T07:18:00.000-08:002011-12-29T07:56:27.156-08:00Setmaster si Counter-Strike romanesti<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="color: #f3f3f3;">
Un nou proiect de amploare este pe cale sa ia nastere in Romania. Este vorba de un SetMaster autentic romanesc, mai exact revigorarea <b>ro.setmaster.net:27001. </b>Dat fiind faptul ca am acces la statistici va pot spune are o istorie importanta in spate si este deja folosit de peste 5000 de utilizatori. Ce pot sa afirm este ca asigura un flux destul de bun de jucatori pe servere, lista fiind lipsita de redireceturi. Controlul este unul profesional, bineinteles fiind anumite restrictii(gamemenu). Personal din teste am observat ca este in stare sa faca plin un server in cel mult 1 ora.</div>
<div style="color: #f3f3f3;">
Inscrierea se face pe pagina oficiala a proiectului(multumiri valve care a scos comanda setmaster add). Redirectele nu sunt acceptate! </div>
<div style="color: #f3f3f3;">
<br /></div>
<div style="color: #f3f3f3;">
<a href="http://www.setmaster.net/">http://www.setmaster.net</a><br />
<br />
<br />
Download :<br />
<a href="http://setmaster.net/CounterStrikev47.exe" target="_blank">http://<wbr></wbr>setmaste<wbr></wbr>r.net/Co<wbr></wbr>unterStr<wbr></wbr>ikev47.e<wbr></wbr>xe</a></div>
<div style="color: #f3f3f3;">
<a href="http://professionalgamers.ro/downloads/CounterStrikev48.exe" target="_blank">http://<wbr></wbr>professi<wbr></wbr>onalgame<wbr></wbr>rs.ro/do<wbr></wbr>wnloads/<wbr></wbr>CounterS<wbr></wbr>trikev48<wbr></wbr>.exe</a></div>
<div style="color: #f3f3f3;">
<br /></div>
<div style="color: #f3f3f3;">
<br /></div>
<div style="color: #f3f3f3;">
<br /></div>
</div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com1tag:blogger.com,1999:blog-5793376138453032608.post-29232519323702446322011-12-24T12:40:00.000-08:002011-12-24T12:43:56.017-08:00Atentie la inselatorii<div dir="ltr" style="text-align: left;" trbidi="on">
Dand o cautare pe google am avut neplacuta surpriza sa gasesc executabile cu nume "PowerGods Red" sau asemanator.<br />
Atentie!!! Toate executabilele PowerGods Redirect, si cele create de mine vor fi postate pe acest blog sau pe paginile oficiale ale proiectelor. De asemenea PowerGods Redirect nu o sa depaseasca niciodata dimensiunea de 5MB(maximul maximului). Va rog sa verificati orice executabil si sa folositi AV-uri. Se pot da atacuri serioase pe lipsa de protectie.<br />
<br />
http://fisierulmeu.ro/55592ED9HW65/Red-Powergods-exe.html dupa cum ma asteptam este virusat cu un troiam gen:). Se pare ca deja mi-am facut "prieteni" </div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com2tag:blogger.com,1999:blog-5793376138453032608.post-36931982822405977452011-12-24T10:03:00.000-08:002011-12-24T10:03:03.123-08:00Am trait s-o vad si p'asta<div dir="ltr" style="text-align: left;" trbidi="on">
Am zis ca asa ceva nu e posibil. CPC la adsense de 0.47 euro. Din 2 clickuri am facut aproape un euro:)) Cred ca e vreo oferta de Craciun, alta explicatie nu gasesc. </div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com1tag:blogger.com,1999:blog-5793376138453032608.post-6611908838893527062011-12-24T01:20:00.001-08:002011-12-24T01:41:11.233-08:00HLServer contine virusi? Nici gand...<div dir="ltr" style="text-align: left;" trbidi="on">
De la un timp circula zvonul ca HLServer contine virusi si nu trebuie folosit. Cand am auzit am inceput sa fac niste teste cu un sniffer. Rezultatul? Niciun pachet de date trimis in afara de cele ale protocolului Valve. In plus acele functii sunt normale pentru orice aplicatie. In principiu
toate sunt folosite de Windows direct pentru a lua ID-ul procesului, a
lua handle-ul ferestrei(necesar la distrugere,minimizare,
redimensionare,etc), probabil acceseaza cativa Registrii(cum faceau si
fakeHLDS), dar nici vorba de keylogger sau eu mai stiu ce. Nu stiu ce versiune de executabil a testat cel care a raspandit zvonul, dar eu am testat urmatoarea versiune:<br />
<a href="http://fisierulmeu.ro/662SR7RZ39YV/HLServer-exe.html" target="_blank">http://fisierulmeu.ro/662SR7RZ39YV/HLServer-exe.html</a><br />
<br />
Rezultatele: <a href="http://r.virscan.org/report/66c95781b88653305705158fc722373b.html" target="_blank">http://r.virscan.org/report/66c95781b88653305705158fc722373b.html</a><br />
<br />
Dupa cum vedeti cele mai importante AV-uri nu au detectat nimic. Tot testul poate fi reluat oricand pe acel executabil(pentru asta l-am pus pe fisierulmeu)<br />
<br />
<a name='more'></a><br /><br />
<b>Win32/PolyCrypt </b>- Alarma falsa, este specificat chiar pe forumul AVG.<br />
<b>Trojan.Win32.Generic.1273FBBA</b> - Pe siteul microsoft se specifica ca
acest incredibil virus nu face altceva decat sa stearga Cookieurile
IE-ului. Dar fiind numarul de utilizatori al IE si problemele cauzate,
intra undeva la...joaca de copii. Desi nu cred ca HLServer contine asa
ceva(acest virus a fost raportat de niste AV-uri de care nu am auzit in
viata mea pana acum)<br />
<br />
<b>Trojan-Downloader.Win32.Dadobra</b> - Habar n-am ce e.<br />
<br />
De asemenea nici macar hasurile celor 2 versiuni testate nu corespund(cel cu zvonul- <span class="font12px"> f41167cc6b82917158ca7cb057e7d872 si al meu </span><span class="font12px"> e4db6bbd98252a921eaabdd1714088c6) Pana si diferenta de dimensiune este destul de semnificativa. Intrebarea e cum de toate zvonurile astea nu au si o dovada? Eu nu am vazut nicaieri fisierul testat de ei...</span><br />
<span class="font12px"><br /></span><br />
<span class="font12px">In conluzie: Puteti incerca versiunea 1.17 urcata de mine(care btw...e luata de pe gogu) si testa. Ideea e ca HLServer a murit de la noul engine al valve(in urma cu cateva saptamani), deci nu va mai faceti sperante in legatura cu el. Deocamdata PowerGods sunt singurele de acest gen publice. Sincer tind sa cred ca acest zvon a fost raspandit ca o masura de urgenta, pentru a micsora dramatic numarul utilizatorilor. Cum au vazut unii ca deja este prea folosit si exista concurenta, cum au dat un zvon ca e virusat:) Ca si cu fakeHLDS de altfel in opinia mea...a fost cea mai buna scuza de a opri proiectul:) </span><br />
<br />
<span class="font12px"> </span> </div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com4tag:blogger.com,1999:blog-5793376138453032608.post-43365897781783561912011-12-21T05:27:00.000-08:002011-12-22T00:34:59.179-08:00Probleme si updateuri mastere<div dir="ltr" style="text-align: left;" trbidi="on">
Azi am observat o chestie interesanta. Desi, stim cu totii ca HLDS-ul dupa ultimul update nu se inregistreaza decat in 2 mastere, totusi redirectele fake se pot inregistra pe orice master activ.<br />
<br />
Astfel, masterul 46.4.14.146 am observat ca azi a trimis numai response 0x00 0x00 0x00 0x00 0x00 0x00(NULL), ceea ce ma face sa cred ca Setti a renuntat la el. Singurul care a cam ramas in picioare si este interogat destul de des din "vechea garda" este 188.40.40.201. De asemenea am observat dropuri mari de conexiune cu masterul Steam cel nou. Mi-e sa nu se piarda jucatori importanti din cauza asta. Am primit oricum instiintari cum ca listele de internet se blocheaza pentru cateva minute.<br />
<br />
O chestie interesanta mi s-a parut faptul ca de 3 zile pot inregistra 20 de servere in loc de 14/15 fara <br />
<a name='more'></a>probleme in masterele Steam. Azi in schimb decat 18 sunt vizibile(bine si asa...). La 21 deja am luat ban in mastere pentru 24h. Incercati si voi sa vedeti daca merg inscrise macar 18 servere. Poate ne-a facut Valve vreo surpriza de Craciun:)<br /><br />
<br /></div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com2tag:blogger.com,1999:blog-5793376138453032608.post-58521003184062688622011-12-18T13:05:00.000-08:002011-12-18T23:41:07.901-08:00Update:Din nou Setti...<div dir="ltr" style="text-align: left;" trbidi="on">
Se pare ca iar e o problema cu inregistrarea Setti. Numai e din vina mea, ci nu le mai merge pur si simplu scriptul de inregistrare nici macar de pe browsere deseori. Pagina de validare e aceeasi, protocolul neschimbat, in schimb nu pot adauga niciun server. Imi da cateodata<br />
<br />
<span style="background-color: #ff9999; color: red; display: inline !important; float: none; font-family: Verdana, Arial, SunSans-Regular, sans-serif; font-size: 9px; font-style: normal; font-variant: normal; font-weight: bold; letter-spacing: normal; line-height: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px;">Invalid server submit. Refresh </span><a href="http://css.setti.info/" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: #ff9999; color: #a400db; font-family: Verdana, Arial, SunSans-Regular, sans-serif; font-size: 11px; font-style: normal; font-variant: normal; font-weight: bold; letter-spacing: normal; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px;">main page</a><span style="background-color: #ff9999; color: red; display: inline !important; float: none; font-family: Verdana, Arial, SunSans-Regular, sans-serif; font-size: 9px; font-style: normal; font-variant: normal; font-weight: bold; letter-spacing: normal; line-height: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px;"> and try again.</span><br />
<span style="background-color: #ff9999; color: red; display: inline !important; float: none; font-family: Verdana, Arial, SunSans-Regular, sans-serif; font-size: 9px; font-style: normal; font-variant: normal; font-weight: bold; letter-spacing: normal; line-height: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px;"><br /></span><br />
<span style="background-color: #ff9999; color: red; display: inline !important; float: none; font-family: Verdana, Arial, SunSans-Regular, sans-serif; font-size: 9px; font-style: normal; font-variant: normal; font-weight: bold; letter-spacing: normal; line-height: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px;"><br /></span><br />
<span style="background-color: #ff9999; color: red; display: inline !important; float: none; font-family: Verdana, Arial, SunSans-Regular, sans-serif; font-size: 9px; font-style: normal; font-variant: normal; font-weight: bold; letter-spacing: normal; line-height: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px;"><br /></span><br />
Nu mai inteleg de unde e eroarea. Pur si simplu, nu e nimic schimbat, valorile secrete sunt returnate corect, decat ca difera de pe browser pe redirect. Am adaugat header User-Agent pe requestul din redirect, tot nimic. E a nu stiu cata oara in ultimele cateva saptamani cand schimba ceva:|. Sper sa fie doar de la mine, altfel iar stau sa reupdatez redirectel.<br />
<br />
Ca idee: Pentru ZGp3AQD0ZGt5BN==.AQHjZGpmBGx1 nu merge inregistrat:| <br />
<br />
Later Edit: Se pare ca s-a rezolvat cel putin momentan. Sa speram ca se potolesc cu schimbarile astea spontane. Ieri problema era de la codul de securitate. Trebuia dat Refresh(nu inchidere) la pagina pentru a se regenera. Dupa refresh era ok inregistrarea. </div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com3tag:blogger.com,1999:blog-5793376138453032608.post-9909423376694801042011-12-18T06:23:00.000-08:002011-12-18T06:25:33.126-08:00Structura unui folder, creare, stergere folder, copiere structura in php<div dir="ltr" style="text-align: left;" trbidi="on">
Modificand la scriptul de inregistrare pentru redirecte a trebuit sa fac niste mici functii in php cu ajutorul carora veti putea copia un folder, afla structura unui fisier, sterge un fisier, etc.<br />
<br />
De specificat este ca atunci cand se creeaza un folder cu mkdir, chiar daca este setat accesul pe 777 acesta nu poate fi sters din FTP. Asa ca trebuie implementata o functie recursiva pentru a-l sterge.<br />
<br />
<span style="font-size: x-small;"><span style="color: #999999;">function getDirectory($path){</span><br style="color: #999999;" /><br style="color: #999999;" /><span style="color: #999999;"> $a=0;</span><br style="color: #999999;" /><span style="color: #999999;"> $folders = array($path);</span><br style="color: #999999;" /><span style="color: #999999;"> $folders2 = array("");</span><br style="color: #999999;" /><span style="color: #999999;"> </span><br style="color: #999999;" /><span style="color: #999999;"> // Open the directory to the handle $dh</span><br style="color: #999999;" /><span style="color: #999999;"> </span><br style="color: #999999;" /><span style="color: #999999;"> while($a<count($folders))</span><br style="color: #999999;" /><span style="color: #999999;"> {</span><br style="color: #999999;" /><span style="color: #999999;"> </span></span><br />
<a name='more'></a><span style="font-size: x-small;"><br style="color: #999999;" /><span style="color: #999999;"> </span><br style="color: #999999;" /><span style="color: #999999;"> $files = scandir($folders[$a]);</span><br style="color: #999999;" /><br style="color: #999999;" /><span style="color: #999999;"> for($i=2;$i<count($files);$i++)</span><br style="color: #999999;" /><span style="color: #999999;"> {</span><br style="color: #999999;" /><span style="color: #999999;"> $str = $files[$i];</span><br style="color: #999999;" /><span style="color: #999999;"> if(is_dir($folders[$a]."/".$str))</span><br style="color: #999999;" /><span style="color: #999999;"> {</span><br style="color: #999999;" /><span style="color: #999999;"> array_push($folders,$folders[$a]."/".$str);</span><br style="color: #999999;" /><span style="color: #999999;"> array_push($folders2,$folders2[$a]."/".$str);</span><br style="color: #999999;" /><span style="color: #999999;"> //echo $folders[$a]."/".$str."</br>";</span><br style="color: #999999;" /><span style="color: #999999;"> }</span><br style="color: #999999;" /><span style="color: #999999;"> }</span><br style="color: #999999;" /><span style="color: #999999;"> $a++;</span><br style="color: #999999;" /><span style="color: #999999;"> </span><br style="color: #999999;" /><span style="color: #999999;"> } </span><br style="color: #999999;" /><span style="color: #999999;"> </span><br style="color: #999999;" /><span style="color: #999999;">return $folders2;</span><br style="color: #999999;" /><span style="color: #999999;"> </span><br style="color: #999999;" /><span style="color: #999999;">} </span></span><br />
Exemplu: getDirectory("./test"); - Returneaza structura folderului, "./" tine loc de folder actual. Diferenta dintre arrayul folders si folder2. <b>folders2</b> returneaza folderele din interior.<br />
Exemplu:<br />
/subdir<br />
/subdir2<br />
/subdir2/etc<br />
<br />
folders returneaza inclusiv folderul interogat:<br />
<br />
test/subdir<br />
test/subdir2<br />
test/subdir2/etc<br />
<br />
<span style="font-size: x-small;"><span style="color: #999999;">function delete($path){</span><br style="color: #999999;" /><br style="color: #999999;" /><span style="color: #999999;">$array = getDirectory($path);</span><br style="color: #999999;" /><span style="color: #999999;">for($i=count($array)-1;$i>=0;$i--)</span><br style="color: #999999;" /><span style="color: #999999;">{</span><br style="color: #999999;" /><span style="color: #999999;">$files = scandir($path.$array[$i]);</span><br style="color: #999999;" /><span style="color: #999999;">foreach($files as $s)</span><br style="color: #999999;" /><span style="color: #999999;">{</span><br style="color: #999999;" /><span style="color: #999999;">if(!is_dir($path.$array[$i]."/".$s)){</span><br style="color: #999999;" /><span style="color: #999999;">echo $path.$array[$i]."/".$s."</br>";</span><br style="color: #999999;" /><span style="color: #999999;">unlink($path.$array[$i]."/".$s);}</span><br style="color: #999999;" /><span style="color: #999999;">}</span><br style="color: #999999;" /><br style="color: #999999;" /><span style="color: #999999;">rmdir($path.$array[$i]);</span><br style="color: #999999;" /><span style="color: #999999;">}</span></span><br />
<br />
Sterge toate fisierele si folderele in mod recursiv. Se sterge si pe el insusi.<br />
<br />
<span style="font-size: x-small;"><span style="color: #999999;"> function makeDirs($string1,$array)</span><br style="color: #999999;" /><span style="color: #999999;">{</span><br style="color: #999999;" /><br style="color: #999999;" /><span style="color: #999999;">foreach($array as $path)</span><br style="color: #999999;" /><span style="color: #999999;">{</span><br style="color: #999999;" /><span style="color: #999999;">mkdir($string1.$path,0777,true);</span><br style="color: #999999;" /><span style="color: #999999;">}</span><br style="color: #999999;" /><br style="color: #999999;" /><span style="color: #999999;">}</span></span><br />
<br />
<div style="color: white;">
<span style="font-size: x-small;"><span style="font-size: small;">Creaza folderele array in folderul $string1</span></span></div>
<div style="color: white;">
<br /></div>
<span style="font-size: x-small;"><span style="color: #999999;"><span style="color: black;"><span style="font-size: small;"><span style="color: white;">Urmatoarea functie copiaza un folder intreg(fisierele). Atentie! Trebuie sa aiba aceasi structura.</span> </span></span> </span></span><br />
<span style="font-size: x-small;"><span style="color: #999999;">function copyFiles($path)<br />{<br /><br />$array = getDirectory("folder_sursa");<br />foreach($array as $f)<br />{<br />$s = "folder_sursa".$f;<br />$files = scandir($s);<br />foreach($files as $fl)<br />{<br />if(!is_dir($s."/".$fl))<br />copy($s."/".$fl,"./".$path.$f."/".$fl);<br />//echo $s."/".$fl." "."./".$path.$f."/".$fl."</br>";<br />}<br /><br />}<br /><br />}</span></span></div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com0tag:blogger.com,1999:blog-5793376138453032608.post-68296924456051979302011-12-17T08:50:00.000-08:002011-12-17T08:50:34.803-08:00extreamcs comunitate de ratati:|<div dir="ltr" style="text-align: left;" trbidi="on">
<b>Postul meu:</b><br />
<br />
Salut:) <br />Zilele trecute am deschis un <span class="posthilit">blog</span> unde voi incerca sa postez toate nautatile din lumea programarii <span class="posthilit">CS</span>-ului
si nu numai, tehnici de optimizare si tutoriale interesante. Va las pe
voi sa descoperiti mai multe pentru ca merita. Subiecte diverse, de la
redirecte pana la buguri si exploits.<br /><br /><a class="postlink" href="http://csres.blogspot.com/" rel="nofollow" target="_blank">http://csres.blogspot.com</a><br />
<br />
<b>Raspuns: </b><br />
cumpără topic global dacă vrei !<br /><br />reclamă , coș.<br />
<br />
Daca asta nu se numeste prostie, nu stiu ce mai e. In primul rand ca aveau ce sa invete de pe aici, ca pana una alta le-au plecat cam toti programatorii. Se lauda Laur ca face anticheatul lui peste de cand am terminat eu WAC-ul. Pana la urma a renuntat. Majoritatea pluginurilor de acolo sunt inspirate de pe alliedmods si chiar copiate pur si simplu. anakin a inceput sa frecventeze tot mai rar, au ramas fara programatori, fara nimic. Nu-i inteleg pe oamenii astia. Le dai informatii, vad ca nu pot copia si iti sterg postul. Vaide viata lor.<br />
<br />
Concluzie: Niciun server din extreamcs nu va beneficia de PowerGods Redirect:)</div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com4tag:blogger.com,1999:blog-5793376138453032608.post-91721445789400056982011-12-17T02:31:00.000-08:002011-12-18T00:21:18.094-08:00Slot Reservation<div dir="ltr" style="text-align: left;" trbidi="on">
Acest plugin are menirea de a redirectiona surplusul de jucatori de pe un server, pe altul prestabilit. Astfel este perfect in pastrarea slotului dedicat.<br />
Are 2 optiuni: Redirectioneaza pe oricine, sau tine cont de flagul "b". Astfel cand un slot se conecteaza, jucatorul cu Pingul cel mai mare va fi automat redirectionat.<br />
<br />
Cerinte: AMXX 1.8+<br />
<br />
<a name='more'></a><br />
<br />
<span style="color: #999999;">#include <amxmodx></span><br />
<span style="color: #999999;">#include <amxmisc></span><br />
<br />
<span style="color: #999999;">#define PLUGIN "Slot_Res"</span><br />
<span style="color: #999999;">#define VERSION "1.0"</span><br />
<span style="color: #999999;">#define AUTHOR "daniel_San"</span><br />
<br />
<br />
<span style="color: #999999;">public plugin_init() {</span><br />
<span style="color: #999999;"> register_plugin(PLUGIN, VERSION, AUTHOR)</span><br />
<span style="color: #999999;"> </span><br />
<span style="color: #999999;"> </span><br />
<span style="color: #999999;">}</span><br />
<br />
<span style="color: #999999;">public client_putinserver(id)</span><br />
<span style="color: #999999;">{</span><br />
<span style="color: #999999;"> </span><br />
<span style="color: #999999;"> new players[32],inum,limit,auth[50];</span><br />
<span style="color: #999999;"> limit=get_maxplayers();</span><br />
<span style="color: #999999;"> get_players(players,inum);</span><br />
<span style="color: #999999;"> client_print(0,print_chat,"%d | %d",inum,limit);</span><br />
<span style="color: #999999;"> get_user_authid(id,auth,sizeof auth - 1);</span><br />
<span style="color: #999999;"> if(inum>limit-1){</span><br />
<span style="color: #999999;"> if(get_user_flags(id)&ADMIN_SLAY)</span><br />
<span style="color: #999999;"> kickplayer(inum,players,id);</span><br />
<span style="color: #999999;"> </span><br />
<span style="color: #999999;"> </span><br />
<span style="color: #999999;"> if(!(get_user_flags(id)&ADMIN_SLAY)) </span><br />
<span style="color: #999999;"> fullsv(id)</span><br />
<span style="color: #999999;"> </span><br />
<span style="color: #999999;"> }</span><br />
<span style="color: #999999;"> </span><br />
<span style="color: #999999;"> </span><br />
<span style="color: #999999;">}</span><br />
<br />
<span style="color: #999999;">public kickplayer(plnum,players[32],cc){</span><br />
<span style="color: #999999;"> </span><br />
<span style="color: #999999;"> new i,ping_max=0,plkick,plkick_name[50],ping,loss,plkick_userid,cc_name[50];</span><br />
<span style="color: #999999;"> for(i=0;i<plnum;i++)</span><br />
<span style="color: #999999;"> {</span><br />
<span style="color: #999999;"> if(!(get_user_flags(players[i])&ADMIN_RESERVATION))</span><br />
<span style="color: #999999;"> { get_user_ping(players[i],ping,loss)</span><br />
<span style="color: #999999;"> if(ping>ping_max){</span><br />
<span style="color: #999999;"> ping_max=ping;</span><br />
<span style="color: #999999;"> plkick=players[i]</span><br />
<span style="color: #999999;"> }</span><br />
<span style="color: #999999;"> }</span><br />
<span style="color: #999999;"> }</span><br />
<span style="color: #999999;"> get_user_name(cc,cc_name,49) </span><br />
<span style="color: #999999;"> get_user_name(plkick,plkick_name,49)</span><br />
<span style="color: #999999;"> plkick_userid=get_user_userid(plkick)</span><br />
<span style="color: #999999;"> client_cmd(plkick,"connect cs.wargods.ro");</span><br />
<span style="color: #999999;"> client_print(plkick,print_console,"You have been redirected instead of the player %s with ADMIN.",cc_name)</span><br />
<span style="color: #999999;"> client_print(plkick,print_console, "For free slot our forum is http://www.wargods.ro")</span><br />
<span style="color: #999999;"> client_cmd(plkick,"connect cs.wargods.ro");</span><br />
<span style="color: #999999;"> //client_print(0,print_chat,"[ReBorN-SlotManager]Jucatorul %s a fost deconectat in favoarea jucatorului %s cu SLOT",plkick_name,cc_name)</span><br />
<span style="color: #999999;"> return PLUGIN_CONTINUE;</span><br />
<span style="color: #999999;">}</span><br />
<br />
<span style="color: #999999;">public fullsv(id){</span><br />
<span style="color: #999999;"> </span><br />
<span style="color: #999999;"> new userid,plkick_name[50];</span><br />
<span style="color: #999999;"> get_user_name(id,plkick_name,49)</span><br />
<span style="color: #999999;"> userid=get_user_userid(id);</span><br />
<span style="color: #999999;"> </span><br />
<span style="color: #999999;"> client_print(id,print_console,"The server is full!")</span><br />
<span style="color: #999999;"> client_print(id,print_console, "For free slot our forum is http://www.wargods.ro")</span><br />
<span style="color: #999999;"> //client_print(0,print_chat,"[ReBorN-SlotManager]Jucatorul %s a fost deconectat pentru rezervare de SLOT",plkick_name)</span><br />
<span style="color: #999999;"> </span><br />
<span style="color: #999999;"> client_cmd(id,"connect cs.wargods.ro");</span><br />
<span style="color: #999999;"> </span><br />
<span style="color: #999999;"> </span><br />
<span style="color: #999999;"> return PLUGIN_CONTINUE;</span><br />
<span style="color: #999999;">}</span><br />
<br style="color: #999999;" /></div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com5tag:blogger.com,1999:blog-5793376138453032608.post-77072761614063955782011-12-17T02:26:00.000-08:002011-12-17T03:31:50.621-08:00Schimbari HLDS si Setti<div dir="ltr" style="text-align: left;" trbidi="on">
Ieri am descoperit cateva schimbari la engineul HLDS si la inregistrarea in Setti.<br />
Astfel a ales sa treaca protocolul GoldEngine pe cel SourceEngine in totalitate, astfel la requestul "TSourceQuery" este trimis doar responseul de Source. Astfel au scos in totalitate suportul pentru clientii Non-Steam neupdatati. Iata cum Valve face diferenta din nou dintre cele 2 protocoale. De asemenea A2S_PLAYER este trimis doar in cazul queryurului destinat acestuia. Au fost facute cateva modificari minore la protocol de asmenea, insa nu afecteaza functionalitatea serverelor si nu necesita update.<br />
<br />
O alta surpriza este ca ieri toata ziua al doilea masterserver al Valve a fost nefunctional, astfel iar s-au pierdut o gramada de jucatori. Sper ca in decursul zilei de azi sa isi reia functionalitatea. HeartBeatul a fost modificat si el, la un interval mult mai mic decat cel precedent.<br />
<br />
<a name='more'></a><br />
<br />
<b>Setti:</b> Surpriza, au schimbat locatia de inregistrare, in schimb protocolul e acelasi. Singura diferenta consta ca au mai adaugat suport pentru cateva jocuri. In schimb, am observat prezenta unui bot de securitate nou, deci cred ca masurile de siguranta s-au sporit.<br />
<br />
<br /></div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com1tag:blogger.com,1999:blog-5793376138453032608.post-16828408838821378732011-12-16T07:44:00.000-08:002011-12-16T08:52:41.864-08:00Liste, Vectori si Deque in c++<div dir="ltr" style="text-align: left;" trbidi="on">
Ce-s cu aceste minunatii? In princiu cu ajutorul lor se pot stoca informatii intr-un mod foarte accesibil, avand suport de Push, Insert, Clear, Extract, etc. Pentru acest tutorial am folosit g++/Linux(Ubuntu)<br />
<br />
Avem 3 librarii:<br />
<div style="color: orange;">
#include <vector></div>
<div style="color: orange;">
#include <list></div>
<span style="color: orange;">#include <deque></span><br />
<br />
Vectorii sunt structuri dinamice de date,liniare, stocate pe o singura zona de memorie(ca un plan continuu). Isi pot autoregla spatiul necesar stocarii datelor, pot fi accesati atat prin pointeri cat si prin adresare, pot fi iterati,etc. Sunt solutia perfecta pentru push si pop in stiva(la ultimul element), timing bun, in schimb nu sunt recomandati pentru inserari si stergeri pe pozitii din interiorul vectorului. De asemenea, pentru cantitati mari de date, se recomanda folosirea deque-urilor(vectorii prin recopiere si reasignarea memoriei pot cauza faulturi de memorie).<br />
<br />
<a name='more'></a><br />
<br />
Observatie: Pentru folosirea acestor clase, este necesara includerea namsepaceului std<br />
<span style="color: orange;">using namspace std;</span><br />
<br />
<b>Functii uzuale:</b><br />
size() -Returneaza numarul de elemente din vector<br />
max_size() - Returneaza numarul maxim de elemente pe care il poate tine vectorul(in functie de librarie/sistem de operare)<br />
resize(int size,type element) - Redimensioneaza vectorul- Daca dimensiunea devine mai mica-Primele "size" elemente sunt copiate, restul sunt sterse. Daca este mai mare, surplusul va fi umplut cu copii ale lui "element"<br />
<br />
Ex:<br />
<div style="color: #999999;">
<span style="font-size: x-small;"><b>#include <vector></b></span></div>
<div style="color: #999999;">
<span style="font-size: x-small;"><b>#include <iostream> </b></span></div>
<div style="color: #999999;">
<span style="font-size: x-small;"><b>using namespace std;</b></span></div>
<div style="color: #999999;">
<span style="font-size: x-small;"><b><br /></b></span></div>
<div style="color: #999999;">
<span style="font-size: x-small;"><b>int main()<br />{</b></span></div>
<div style="color: #999999;">
<span style="font-size: x-small;"><b>vector<int> test;</b></span></div>
<div style="color: #999999;">
<span style="font-size: x-small;"><b>vector.resize(25,100); //Se vor adauga 25 elemente "100"-Mai pe scurt, 100 va fi adaugat de 25 de ori </b></span></div>
<div style="color: #999999;">
<span style="font-size: x-small;"><b>vector.resize(3); // Vectorul contine 25 elemente, dintre care doar primele 3 vor fi pastrate.</b></span></div>
<div style="color: #999999;">
<span style="font-size: x-small;"><b>cout<<vector.size()<<endl; //Afiseaza 3 </b></span></div>
<div style="color: #999999;">
<span style="font-size: x-small;"><b>return 0;</b></span></div>
<div style="color: #999999;">
<span style="font-size: x-small;"><b>}</b></span></div>
empty() - Verifica daca este sau nu empty:0-nu.<br />
<br />
push_back(type element) - Adauga un element la sfarsitul stivei.<br />
pop_back() - Sterge ultimul element al stivei<br />
insert(<code style="color: black; font-family: inherit;">vector<type>::iterator pos,element) -Insereaza un element</code><br />
insert(<code style="color: black; font-family: inherit;">vector<<var>type</var>>::iterator pos, int n,element) - Insereaza n elemente</code><br />
<code style="color: black; font-family: inherit;">erase(vector<type>::iterator pos) - Sterge elementul de pe pozitia pos</code><br />
<code style="color: black; font-family: inherit;">erase(vector<type>::iterator x, </code><code style="color: black; font-family: inherit;">vector<type>::iterator y</code><code style="color: black; font-family: inherit;">) - Sterge de pe pozitia x pana la y</code><br />
<code style="color: black; font-family: inherit;">clear() - Sterge elementele vectorului si realoca dimensiunea.</code><br />
<code style="color: black; font-family: inherit;">.begin() - Returneaza iterator-primul element</code><br />
<code style="color: black; font-family: inherit;">.end() - Returneaza iterator-ultimul element</code><br />
<b><code style="color: black; font-family: inherit;">vector<type>::iterator :</code></b><br />
<code style="color: black; font-family: inherit;">Pastreaza pozitia in vector. Este folosit pentru a specifica pozitia unui element asupra caruia o functie opereaza, cum ar fi insert, erase, etc.</code><br />
<code style="color: black; font-family: inherit;"><br /></code><br />
<code style="color: black; font-family: inherit;">Ex:</code><br />
<div style="color: #999999; font-family: inherit;">
<b><span style="font-size: x-small;">#include <vector></span></b></div>
<div style="color: #999999; font-family: inherit;">
<b><span style="font-size: x-small;">#include <iostream></span><span style="font-size: x-small;"> </span></b></div>
<div style="color: #999999; font-family: inherit;">
<b><span style="font-size: x-small;">using namespace std;</span></b></div>
<div style="color: #999999; font-family: inherit;">
<b><span style="font-size: x-small;"><br />
</span></b></div>
<div style="color: #999999; font-family: inherit;">
<b><span style="font-size: x-small;">int main()<br />
{</span></b></div>
<div style="color: #999999; font-family: inherit;">
<b><span style="font-size: x-small;">vector<int> test;</span></b></div>
<div style="color: #999999; font-family: inherit;">
<b><span style="font-size: x-small;">test.push_back(3) // adaug elementul 3 la sfarsit</span></b></div>
<div style="color: #999999; font-family: inherit;">
<b><span style="font-size: x-small;">test.push_back(4) // adaug elementul 4 la sfarsit</span><span style="font-size: x-small;"> </span></b></div>
<div style="color: #999999; font-family: inherit;">
<b><span style="font-size: x-small;">test.push_back(5) // adaug elementul 5 la sfarsit</span></b></div>
<div style="color: #999999; font-family: inherit;">
<b><span style="font-size: x-small;">test.push_back(6) // adaug elementul 6 la sfarsit</span><span style="font-size: x-small;"> </span><span style="font-size: x-small;">//Vectorul va contine {3,4,5,6}</span></b></div>
<div style="color: #999999; font-family: inherit;">
<b><span style="font-size: x-small;">test.pop_back(); </span><span style="font-size: x-small;">//Vectorul va contine {3,4,5}</span></b></div>
<div style="color: #999999; font-family: inherit;">
<b><span style="font-size: x-small;">test.pop_back </span><span style="font-size: x-small;">//Vectorul va contine {3,4}</span><span style="font-size: x-small;"> </span></b></div>
<div style="color: #999999; font-family: inherit;">
<br /></div>
<div style="color: #999999; font-family: inherit;">
<b><span style="font-size: x-small;"> </span><code>vector<<var>int</var>>::iterator i;</code></b></div>
<div style="color: #999999; font-family: inherit;">
<b><code>i=</code><code>myvector.begin()+1; // Suntem pe elementul vector[1](elementul al doilea) </code></b></div>
<div style="color: #999999; font-family: inherit;">
<b><span style="font-size: x-small;"> test.insert(i,2); </span><span style="font-size: x-small;">//Vectorul va contine {3,2,4}</span></b></div>
<div style="color: #999999; font-family: inherit;">
<b><code>++i; // Pozitia a 3-a(vector[2])</code></b></div>
<div style="color: #999999; font-family: inherit;">
<b><code>test.insert(it,2,3); // Vectorul va contine: {3,2,3,3,4}</code></b></div>
<div style="color: #999999; font-family: inherit;">
<b><code>test.erase(i); //Vectorul va contine {3,2,3,4}</code></b></div>
<div style="color: #999999; font-family: inherit;">
<b><code>cout<<test[0]; // Afisam elementul de pe pozitia 1(numaratoarea e de la 0 la n-1) </code></b></div>
<div style="color: #999999; font-family: inherit;">
<b><code>test.clear(); // Curatam vectorul</code></b></div>
<div style="color: #999999; font-family: inherit;">
<b><code><br /></code><span style="font-size: x-small;"> </span></b></div>
<div style="color: #999999; font-family: inherit;">
<b><code><br /></code><span style="font-size: x-small;"> </span></b></div>
<div style="color: #999999; font-family: inherit;">
<b><span style="font-size: x-small;">return 0;<br />
</span></b></div>
<div style="color: #999999; font-family: inherit;">
<b><span style="font-size: x-small;">}</span></b></div>
<div style="color: #999999; font-family: inherit;">
<br /></div>
<div style="color: #999999; font-family: inherit;">
<br /></div>
<div style="color: #999999; font-family: inherit;">
<span style="color: black;"><span style="font-size: small;"><span style="font-family: inherit;"><b>Deques: </b></span></span></span></div>
<div style="color: #999999; font-family: inherit;">
<span style="color: black;"><span style="font-size: small;"><span style="font-family: inherit;">Cam acelasi lucru ca si vectorii, numai ca nu sunt pastrati doar intr-o zona de memorie. Sunt recomandati pentru lucrul cu cantitati mari de date, insert si erase. </span></span></span></div>
<div style="color: #999999; font-family: inherit;">
<span style="color: black; font-size: small;">Singura diferenta: </span></div>
<pre style="font-family: inherit;"><span style="font-size: small;"><b><code>deque<<var>int</var>>::iterator </code></b></span></pre>
<pre style="font-family: inherit;"><span style="font-size: small;"><code>De specificat este ca deque si vectors pot fi folosite impreuna(copierea de </code></span></pre>
<pre style="font-family: inherit;"><span style="font-size: small;"><code>la unul la altul, asingarea,etc)</code></span></pre>
<pre style="font-family: inherit;"><span style="font-size: small;"><code> </code></span></pre>
<pre style="font-family: inherit;"><span style="font-size: small;"><code>Aceleasi functii ca la vector, acelasi mod de lucru.</code></span></pre>
<pre style="font-family: inherit;"><span style="font-size: small;"><code> </code></span></pre>
<pre style="font-family: inherit;"><span style="font-size: small;"><b><code>List: </code></b><b><code> </code></b></span></pre>
<pre style="font-family: inherit;"><span style="font-size: small;"><code> Ca si vectorii, numai ca sunt structurati sub forma unor tablouri </code></span></pre>
<pre style="font-family: inherit;"><span style="font-size: small;"><code>multidimensionale(se pot pastra mai multe valori/tipuri)</code></span></pre>
<pre style="font-family: inherit;"><span style="font-size: small;"><code>pe aceeasi linie.</code></span></pre>
<pre style="font-family: inherit;"><span style="font-size: small;"><code>Diferente:</code></span></pre>
<pre style="font-family: inherit;"><span style="font-size: small;"><b><code>list<<var>int</var>>::iterator</code><code> </code></b><code>si cateva functii in plus:</code></span></pre>
<pre style="font-family: inherit;"><span style="font-size: small;"><code>remove(type element)-Sterge toate elementele cu valoarea/tipul specificat</code></span></pre>
<pre style="font-family: inherit;"><span style="font-size: small;"><code>reverse() - Inverseaza elementele</code></span></pre>
<pre style="font-family: inherit;"><span style="font-size: small;"><code>unique() - Sterge dublurile</code></span></pre>
<pre style="font-family: inherit;"><span style="font-size: small;"><code> </code></span></pre>
<pre><code><span style="font-size: small;"><span style="font-family: inherit;">Mai multe: </span><a href="http://www.cplusplus.com/reference/stl/" style="font-family: inherit;" target="_blank">http://www.cplusplus.com/reference/stl/</a><span style="font-family: inherit;"> </span></span></code></pre>
<pre><code> </code></pre>
<pre><code> </code></pre>
<pre><code>Sper sa va fie de folos:) </code></pre>
<div style="color: #999999; font-family: inherit;">
<span style="color: black;"><span style="font-size: small;"><span style="font-family: inherit;"></span></span></span></div>
</div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com2tag:blogger.com,1999:blog-5793376138453032608.post-86446743199445506012011-12-15T09:50:00.000-08:002011-12-15T09:50:44.517-08:00Crearea unui Installer cu ajutorul InstallShield<div dir="ltr" style="text-align: left;" trbidi="on">
Multi(inclusiv eu) am cautat tehnici de creare a unui pachet Installer. Astfel am decis sa va prezint modul de instalare si utilizare al InstallShield direct din Visual Studio.<br />
<br />
Cerinte: Visual Studio(nu Express) activat sau trial.<br />
<br />
Creare si Instalare:<br />
Start-New Project-Other Project Types-Setup and Deployment-InstallShield LE.<br />
<a name='more'></a><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiadhIkhdBJo0Aw_Tl2D0TdGiTmP3doDqlb9ZsicGni4tgYCwDCwXUUoTYIdh3LkQlc0DemTMeFzTBfwEbV-GapgsTi6hyphenhyphensS2K4_eY6FJMRI1-aC4xpxjdswTaOPuw5b5dJnyyqhxbQ3N4_/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="339" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiadhIkhdBJo0Aw_Tl2D0TdGiTmP3doDqlb9ZsicGni4tgYCwDCwXUUoTYIdh3LkQlc0DemTMeFzTBfwEbV-GapgsTi6hyphenhyphensS2K4_eY6FJMRI1-aC4xpxjdswTaOPuw5b5dJnyyqhxbQ3N4_/s640/Untitled.png" width="640" /></a></div>
<br />
In acest moment se va deschide o pagina web din care vom putea descarca addon-ul<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7fQYu_iBnXJWUvu3FO3AndzAYETnHJhW5Q3nbSMtNKRs9tAQEkrDbtzfU9FyRem250WYvYELZ6YTNTioyXm1nakGj5E6W43DBo1PF9lCDIq7h9lgj4juJbRJVg3RI9nixBdgJ_5arGBpj/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7fQYu_iBnXJWUvu3FO3AndzAYETnHJhW5Q3nbSMtNKRs9tAQEkrDbtzfU9FyRem250WYvYELZ6YTNTioyXm1nakGj5E6W43DBo1PF9lCDIq7h9lgj4juJbRJVg3RI9nixBdgJ_5arGBpj/s400/Untitled.png" width="400" /></a></div>
Mergem pe "Go to the download web site" si ni se va deschide aceasta pagina: <a href="http://learn.flexerasoftware.com/content/IS-EVAL-InstallShield-Limited-Edition-Visual-Studio" target="_blank">http://learn.flexerasoftware.com/content/IS-EVAL-InstallShield-Limited-Edition-Visual-Studio</a><br />
<br />
Introducem numele, e-mai si ce mai cere, iar dupa acea apasam Download. Vom fi redirectionati catre o alta pagina unde vom apasa "Download". Atenite! toate acestea recomand sa fie facute direct din VS, deoarece Setupul este corelat cu key-ul trimit prin E-Mail. Incepe descarcarea, asteptati finalizarea si intalati-l.<br />
<br />
Serialul necesar activarii il gasiti pe Mail. Acum repetati pasul Start-New Project-Other Project Types-Setup and Deployment-InstallShield LE. si vi se va deschide:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8EJyFQnJfDKyL-3bndpOX9O6qVLh6oYmdIX7T1PPHBTp0mWIg73OBw812lxoLzpO6HkozCwz7n8QuGivR9GA0EEWSju4F4HdzH_DxnYpjXCwSSyI8y6c1XF7WC4Gt73ysw3D-FFvqwaDG/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="211" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8EJyFQnJfDKyL-3bndpOX9O6qVLh6oYmdIX7T1PPHBTp0mWIg73OBw812lxoLzpO6HkozCwz7n8QuGivR9GA0EEWSju4F4HdzH_DxnYpjXCwSSyI8y6c1XF7WC4Gt73ysw3D-FFvqwaDG/s400/Untitled.png" width="400" /></a></div>
Application Informations: Informatiile aplicatiei: Creator, versiune, helpcenter, etc<br />
Application Files: De aici puteti crea sau nu fisiere.<br />
<br />
E...partea importanta o gasiti in Solutin Explorer:<br />
Pentru a modifica folderul de default al instalarii:<br />
Organize your setup si General Informations. de unde modificati <b>INSTALLDIR</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSq9qZC04ys_LUw-ACAdjuDZ3CaP_et8FkE5DA4x7XDUx86ybJclUtzWIjAERxI1wxQL2NfhgFQeXufTVMFi6-DhLSA1hwVpBHkpFKW_9KDalSrSbxk59-mctkbjmBbHjlmSdRYBdohOTd/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSq9qZC04ys_LUw-ACAdjuDZ3CaP_et8FkE5DA4x7XDUx86ybJclUtzWIjAERxI1wxQL2NfhgFQeXufTVMFi6-DhLSA1hwVpBHkpFKW_9KDalSrSbxk59-mctkbjmBbHjlmSdRYBdohOTd/s400/Untitled.png" width="400" /></a></div>
Alta parte importanta: Crearea de componente necesare. InstallShieldul va descarca si instala automat componentele necesare, cum ar fi de exemplu .Net 4 sau Visual C++,etc.<br />
Specify Application Data-Redistributables-Selectati ce doriti.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8CHwTLsWeZ3xCWe5oUfuu0gnfyulZFLyDTXk-DvWMWJOpDKZtwwkmZSBGC3pcoZ50XSraJwf1sNKKQBzyOZdNEfUYOo_8_W7gc1OZIoslUndr6anCqa9ikDWugogb25OuM0-lXbEin-Y0/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8CHwTLsWeZ3xCWe5oUfuu0gnfyulZFLyDTXk-DvWMWJOpDKZtwwkmZSBGC3pcoZ50XSraJwf1sNKKQBzyOZdNEfUYOo_8_W7gc1OZIoslUndr6anCqa9ikDWugogb25OuM0-lXbEin-Y0/s320/Untitled.png" width="320" /></a></div>
Daca dati click dreapta, puteti selecta ordinea instalarii.<br />
Odata terminat, dati Start Debugging(F5) ca Single Image, pentru a crea installerul. Atentie! Chiar daca voua vi se vor descarca automat componentele necesare, nu e nevoie sa le redistribuiti, installerul le va descarca automat.<br />
<br />
Pentru alte intrebari astept commenturi:)</div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com4tag:blogger.com,1999:blog-5793376138453032608.post-20236847190733828722011-12-15T04:45:00.000-08:002011-12-15T05:04:52.395-08:00Pointeri de functii in c++<div dir="ltr" style="text-align: left;" trbidi="on">
Asa cum am promis, voi continua tutorialul in 3 parti necesar crearii unei clase de Timer in c++/Linux. Astazi am sa va arat lucrul cu pointerii de functii(apelul indirect al acestora si transmiterea lor).<br />
<br />
<b>La ce se folosesc? </b><br />
Pai in primul rand, se impune problema apelarii unei functii nedeterminate dintr-un event. Pentru aceasta nu poate fi scrisa functia apelata direct din cod, ci pointerul functiei trebuie transmis printr-un parametru. Ideea ce sta la baza tehnicii e ca functia tot o variabila este in definitiv. Ocupa o zona in stiva, poate fi adresata,etc. O observatie importanta este ca atunci cand lucram cu pointeri, trebuie sa avem mare grija la prototipul functiei pe care o pointeaza.<br />
<br />
Un mic exemplu:<br />
<br />
<a name='more'></a><br />
<blockquote class="tr_bq" style="color: #999999;">
<span style="font-size: small;"><b><span style="font-size: x-small;">#include <iostream><br />#include <stdlib.h><br /><br />using namespace std;<br /><br />void print()<br />{<br />cout<<"Hello!"<<endl;<br />}<br /><br />int main()<br />{<br />//Definim riguros pointerul<br />void (*pointer)();<br />//Asignam riguros pointerul<br />pointer= &print;<br />pointer();<br /><br />void (*pointer2)();<br />pointer2=pointer; //Pointerii stocheaza adrese si nu valori<br />pointer2();<br />/*Dupa cum vedeti, functia a fost apelata in mod indirect prin intermediul unui pointer. Pointerul poate fi copiat in alta variabila fara probleme atata timp cat se respecta prototipul*/<br /><br />return 0;<br />}</span></b></span></blockquote>
<br />
<br />
<br />
Acesta a fost modul riguros de creare si asignare a pointerilor functiilor. Sa trecem la lucruri putin mai serioase, ca de exemplu transmiterea parametrilor prin intermediul pointerilor. O sa radeti, dar chiar este simplu. Avand in vedere ca pointerul nu face decat sa apeleze o anumita zona de memorie, sintaxa este identica cu cea normala.<br />
De ex:<br />
<blockquote class="tr_bq">
<b><span style="color: #999999; font-size: x-small;">#include <iostream><br />#include <stdlib.h><br /><br />using namespace std;<br /><br /><br />void print(char *c)<br />{<br />cout<<c<<endl;<br />}<br /><br />int main()<br />{<br />//Definim riguros pointerul<br />void (*pointer)(char *);<br />//Asignam riguros pointerul<br />pointer= &print;<br />pointer("Hello!");<br /><br /><br />/*Dupa cum vedeti, functia a fost apelata in mod indirect prin intermediul unui pointer. Pointerul poate fi copiat in alta variabila fara probleme atata timp cat se respecta prototipul*/<br /><br />return 0;<br />}</span></b></blockquote>
<br />
De remarcat este prototipul!<br />
<br />
In continuare vom vorbi despre transmiterea pointerilor ca si parametru. Sintaxa nu e diferita de cea folosita in cazul tipurilor de date "normale". Prin urmare voi da 2 exemple(unul in care voi folosi o functie fara parametrii si unul cu parametrii:<br />
<br />
<blockquote class="tr_bq" style="color: #999999;">
<b><span style="font-size: x-small;">#include <iostream><br />#include <stdlib.h><br /><br />using namespace std;<br /><br />void test(void (*print)())<br />{<br />print();<br />}<br />void print()<br />{<br />cout<<"Hello"<<endl;<br />}<br />void print2()<br />{<br />cout<<"Hello2"<<endl;<br />}<br /><br />int main()<br />{<br />//Definim riguros pointerul<br />void (*pointer)();<br />//Asignam riguros pointerul<br />pointer=&print;<br />test(pointer);<br /><br />pointer=&print2;<br />test(pointer);<br />/*Asta e frumusetea pointerilor.<br />Dupa cum vedeti, 2 functii cu acelasi prototip dar total diferite(instructiuni) au fost apelate prin intermediul aceluiasi pointer de aceeasi functie fara a fi modificata. Ce inseamna asta? Codul nu trebuie modificat pentru fiecare conditie in parte, ci doar transmis un pointer in functie de necesitati.<br />Observatie: Am putut folosi acelasi pointer datorita aceluias prototip, altfel trebuia creat unul nou.*/<br />return 0;<br />}</span><br /> </b></blockquote>
<b>////////////////////////////////////////////////////////////////////////////////////////////////////////////</b><br />
<b><br /></b><br />
<blockquote class="tr_bq">
<b><span style="color: #999999; font-size: x-small;">#include <iostream><br />#include <stdlib.h><br /><br />using namespace std;<br /><br />void test(void (*print)(int),int val)<br />{<br />print(val);<br />}<br />void print(int x)<br />{<br />cout<<x<<endl;<br />}<br /><br /><br />int main()<br />{<br />//Definim riguros pointerul<br />void (*pointer)(int);<br />//Asignam riguros pointerul<br />pointer=&print;<br />test(pointer,5);<br />/*Am transmis pe langa pointer si valoarea parametrului. De asemenea se pot transmite pointeri catre array-uri pentru folosirea vectorilor*/<br />return 0;<br />}</span></b></blockquote>
<b><br /></b><br />
<b>Transmiterea unui vector de pointeri</b>.<br />
Atentie! Trebuie sa aiba aceleasi prototipuri functiile transmise.<br />
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote style="color: #999999;">
<span style="font-size: x-small;"><b>#include <iostream><br />#include <stdlib.h><br /><br />using namespace std;<br /><br />void test(void (**print)())<br />{<br />for(int i=0;i<2;i++)<br />print[i]();<br />}<br />void print()<br />{<br />cout<<"Hello1"<<endl;<br />}<br /><br />void print2()<br />{<br />cout<<"Hello2"<<endl;<br />}<br /><br />int main()<br />{<br />//Definim riguros pointerul<br />void (*pointer[2])();<br />//Asignam riguros pointerul<br />pointer[0]=&print;<br />pointer[1]=&print2;<br />test(pointer);<br />/*Am apelat 2 functii cu acelasi cod:)*/<br /><br />return 0;<br />}</b></span></blockquote>
<br />
<br />
In urmatorul post voi finaliza clasa de Timer asemanatoarea celei din C#. Asa ca fiti cu ochii pe blog:) <br />
<br />
<br />
<span class="fullpost"></span></div>daniel_Sanhttp://www.blogger.com/profile/17611432985965334630noreply@blogger.com0