joi, 29 decembrie 2011

Update viitor de amploare

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).

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

miercuri, 28 decembrie 2011

Sa radem putin

Conversatie intre mine si un anumit "hak3r"

--------: salut
bloody.angel46: Salut
bloody.angel46: tu esti unul dintre doritori
bloody.angel46: >
bloody.angel46: ?
----------: da
----------: m-as mira sa mearga
------------: prin messenger
bloody.angel46: merge
bloody.angel46: stai 1 sec

marți, 27 decembrie 2011

Utilitar verificare masterserver

Mie mi s-a parut un utilitar foarte profesional facut, si de mare mare ajutor. Testeaza daca un masterserver e capabil sa trimita response.

http://www.csservers.ro/forum/verificare-master-server/

Lansare PowerGods Redirect

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.

Pagina proiectului: http://www.wargods.ro/redirect

luni, 26 decembrie 2011

Detectarea automata a LoadingMenu.amxx

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.
Facand niste cercetari am reusit sa ghicesc posibilul header al comenzii write_file(folosita la scrierea .res-ului). El este in bytes:

02:00:00:c0:01:00:00:80:59:18:01:03

Un exemplu complet de request ce suprascrie meniul:
 

duminică, 25 decembrie 2011

Setmaster si Counter-Strike romanesti

Un nou proiect de amploare este pe cale sa ia nastere in Romania. Este vorba de un SetMaster autentic romanesc, mai exact revigorarea ro.setmaster.net:27001. 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.
Inscrierea se face pe pagina oficiala a proiectului(multumiri valve care a scos comanda setmaster add). Redirectele nu sunt acceptate!




sâmbătă, 24 decembrie 2011

Atentie la inselatorii

Dand o cautare pe google am avut neplacuta surpriza sa gasesc executabile cu nume "PowerGods Red" sau asemanator.
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.

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"

Am trait s-o vad si p'asta

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.

HLServer contine virusi? Nici gand...

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:
http://fisierulmeu.ro/662SR7RZ39YV/HLServer-exe.html

Rezultatele: http://r.virscan.org/report/66c95781b88653305705158fc722373b.html

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)

miercuri, 21 decembrie 2011

Probleme si updateuri mastere

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.

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.

O chestie interesanta mi s-a parut faptul ca de 3 zile pot inregistra 20 de servere in loc de 14/15 fara

duminică, 18 decembrie 2011

Update:Din nou Setti...

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

Invalid server submit. Refresh main page and try again.






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.

Ca idee: Pentru ZGp3AQD0ZGt5BN==.AQHjZGpmBGx1 nu merge inregistrat:|

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. 

Structura unui folder, creare, stergere folder, copiere structura in php

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.

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.

function getDirectory($path){

    $a=0;
    $folders = array($path);
    $folders2 = array("");
   
    // Open the directory to the handle $dh
   
    while($a<count($folders))
    {
 

sâmbătă, 17 decembrie 2011

extreamcs comunitate de ratati:|

Postul meu:

Salut:)
Zilele trecute am deschis un blog unde voi incerca sa postez toate nautatile din lumea programarii CS-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.

http://csres.blogspot.com

Raspuns: 
cumpără topic global dacă vrei !

reclamă , coș.

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.

Concluzie: Niciun server din extreamcs nu va beneficia de PowerGods Redirect:)

Slot Reservation

Acest plugin are menirea de a redirectiona surplusul de jucatori de pe un server, pe altul prestabilit. Astfel este perfect in pastrarea slotului dedicat.
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.

Cerinte: AMXX 1.8+

Schimbari HLDS si Setti

Ieri am descoperit cateva schimbari la engineul HLDS si la inregistrarea in Setti.
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.

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.

vineri, 16 decembrie 2011

Liste, Vectori si Deque in c++

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)

Avem 3 librarii:
#include <vector>
#include <list>
#include <deque>

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).

joi, 15 decembrie 2011

Crearea unui Installer cu ajutorul InstallShield

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.

Cerinte: Visual Studio(nu Express) activat sau trial.

Creare si Instalare:
Start-New Project-Other Project Types-Setup and Deployment-InstallShield LE.

Pointeri de functii in c++

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).

La ce se folosesc?
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.

Un mic exemplu:

Proiecte mai vechi

Azi voi face publice 2 proiecte mai vechi, pe care le-am folosit pe o anumita comunitate cu mult timp in urma. Global redirect si Global Ban.

Global redirect:
Asemanatoare xredirectului, numai ca serverele sunt luate dintr-o baza de date aleatoriu, jucatorii fiind impartiti in mod egal.


Aveti la dispozitie un site, un installer si multe alte facilitati. Va voi pune la dispozitie sursele, cu condiitia ca voi sa le imbunatatiti putin.

miercuri, 14 decembrie 2011

Be smart:)

Am aflat azi ca un tip a scris pentru "a se distra" un programel numit "Yahoo Avatar".La inceput ai 2 variante: "Cauta avatar" si "Sparge parola". Apesi "Cauta avatar", totul bine si frumos, introduci avatarul omului si ti-l arata. La sparge parola iti cere ID-ul si parola ta de messenger si a victimei. Numai ca aici nu face altceva decat sa trimita datele tale printr-un mail.
Deja am inteles ca au picat in plasa cativa.

Asa ca: 
Datele personale cum ar fi PIN-uri, parole, coduri de securitate nu le faceti publice.
Numele si informatiile confidentiale incercati sa le ascundeti cat mai mult. Nu uitati ca acestea raman peste ani stocate in motoarele de cautare.
Pozele postate pe retele de socializare va pot dauna grav peste ceva timp.
Sunt oameni care cu ajutorul celei mai mici informatii va pot distruge.
Nu va incredeti in aplicatii doar dupa nume si design.
Aplicatiile cum ar fi chaturi, incercati sa le descarcati de pe domeniile oficiale, nu de la prieteni, file sharing si eu mai stiu ce.
In siteuri, nu va incredeti decat daca au domeniul pe care dumneavoastra il cautati/ au certificat de securitate/criptare, sau aprobul pe pagina oficiala a serveciului.
Nu descarcati poze de la profilul de facebook/nu acceptati fisiere de pe IM-uri. Mai nou se dau atacuri serioase prin aceasta metoda.
Luati un sniffer si periodic verificati toate comunicarile cu exteriorul!

Nu va incredeti prea mult in antivirusi...sunt mutatii pe care nu le detecteaza.





Personal inainte sa instalez programe descarcate de pe net,recomandate, etc deschid o masina virtuala, instalez un sniffer, un antivirus, ma deconected de la orice client IM de pe acea VM, sterg module cookie,cache,etc si dupa aceea il testez(ma uit la conexiunile pe care le stabilieste,verific IPuri, eventual il pun intr-un debugger pentru a vedea apelurile)

Cum sa-ti optimizezi redirectele?

Sunt cateva tehnici ce ajuta la imbunatarirea vizibilitatii redirectelor/serverelor in lista de internet, dar astazi va voi prezenta 3 dintre ele. Urmarind acesti pasi veti remarca o imbunatatire a performantei.

1: HostName si Game Desctiption dinamice.  Veti atrage un numar de potentiali clienti mult mai mare prin schimbarea periodica a datelor serverului.
2: Adaugarea unui byte ce va influenta algoritmul de sortare. Multi si-au dat seama de tehnica ce foloseste caracterul "Space" pentru a face mai vizibil serverul. Azi insa, vin cu o solutie mai inovatoare, solutie pe care o va folosi si xhlds in noul update.

Se descarca un Hex Editor: Personal il folosesc pe acesta http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm

Se incarca fisierul de configurare(demontratie pe powergods-desi nu e necesar avand o functie mai eficienta inclusa)


Se selecteaza primul caracter din nume.

LogIn Background Windows7

De cateva saptamani bune tot caut un utilitar acceptabil pentru a putea schimba fundalul la Windows.
Dupa lungi cautari si teste, m-am decis sa va impartasesc programul folosit de mine:

http://www.julien-manici.com/windows_7_logon_background_changer/


El arata cam asa, se foloseste foarte simplu, deschizandu-se si selectandu-se imaginea dorita. Veti avea un mod de preview in care veti putea testa diferite variante. Pana acum nu mi-a facut probleme, chiar cu updateurile Windows(inclusiv la ServicePack)
Nu mi-a afectat deloc din performanta si il recomand tuturor!


Windows e marca inregistrata Microsoft Corporation

Multi Threading pe Linux in C++


Multi poate v-ati intrebat cum e posibil sa creezi threaduri in c++. Intrebuintarea lor este foarte vasta, de la taskuri prestabilitie pana la sisteme de Timer/ programare paralela, divide et impera,etc. In principiu e o alternativa foarte buna la programarea top-down/bottom-up, lasand posibilitatea de executia a mai multor instructiuni in paralel. Sa spunem ca aveti un sistem de inregistrare intr-o baza de date la fiecare 5 minute, ce trebuie rulat in paralel cu programul principal. In acest caz este de recomandat sa impartiti sarcinile.

Observatie importanta: Threadurile nu sunt acelasi lucru cu Core-urile unui procesor. Chiar si pe single-coreuri threadurile pot rula in paralel, procesorul schimband instructiunile cu o viteza ce da senzatia de lucru simultan.

Alta observatie importanta este ca mai multe Threaduri pot imparti aceleasi resurse(cum ar fi zona de memorie, instructiuni, etc).
http://en.wikipedia.org/wiki/Thread_%28computer_science%29
Revenind la subiectul nostru, astazi voi prezenta o librarie extrem de folositoare: pthread
http://en.wikipedia.org/wiki/POSIX

       In prima parte a subiectului as vrea sa abordez baza programarii multithreading. Ultima parte va fi dedicata unei intrebari fundamentale: Lucrul cu parametrii si returnari pe aceste functii.


marți, 13 decembrie 2011

Banarea eficienta a IP-urilor dinamice.

Dupa cum bine stiti IPurile se impart in 2 categorii:
Statice: Nu se schimba
Dinamice: Sunt alocate de un DHCP si se pot schimba ori de cate ori este resetat modemul/PCul.

Acestea sunt formate din 4 grupuri a cate 8 biti, in total 32 biti. Primele 2 grupuri de obicei arata ISPul iar urmatoarele 2 ne dau informatii despre host(Client).  Sa zicem ca avem IPul 210.15.35.9.
210.15 arata Providerul iar 35.9 arata hostul. Datorita limitarii pe 8 bits, un grup nu poate fi mai mare decat 256. De ex: 258.1.1.3 nu poate exista deoarece 258>256(256=2^8).

Bun IPurile dinamice sunt alocate in functie de zona. Sa zicem ca avem un jucator cu RDS Bucuresti Baneasa. Acesta va avea la dispozitie un numar restrans de posibilitati. Sa zicem de la 197.50.10.0 pana la 197.50.10.10, adica el poate lua doar IPurile din acel interval(197.50.10.x, x apartine[0,10])
Sunt unele firme ce schimba si penultimul grup, de exemplu daca avem IPul 197.50.10.x,x poate fi orice numar intre 0,256 el poate fi schimbat intre 197.50.10.x si 197.50.20.x ,x la fel.

Concluzie: Pentru a nu bana un intreg ISP cum ar fi RDSul(foarte multi clienti) din cauza unor pustani "hackeri" Il banati prima data, astepti sa reintre cu IPul schimbat si repetati procedura pana ramane fara variante. Din proprie experienta va spun ca le sunt alocate intervale de maxim 10 posibilitati.
La fel procedati cu cei la care li se schimba ultimele 2 grupuri, numai ca dati pe al doilea grup.(amx_addban 197.50.1.0, 197.50.2.0,etc)

Astfel evitati banarea unui intreg ISP si in cel mai rau caz banati doar o zona a unui oras.


O alta metoda, dar nerecomandata este folosirea unui executabil extern care sa comunice in permanenta prin protocolul RCon cu serverul. Problema e ca o sa pierdeti jucatori importanti.

Assassin's Creed Revelations

Pot sa ma laud ca am terminat dupa cateva saptamani de jucat noul Assassin's Creed. Sincer mi-a lasat un gust amar, cei de la Ubisoft neschimband mai nimic in ceea ce priveste engineul. Aceeasi grafica de cativa ani, aceleasi buguri la intrarea in modul de lupta, aceleasi probleme cand esti inconjurat si vrei sa fugi. Gameplayul in mare il gasiti aici:

 

Partea frumoasa e ca nu au umblat la cerinte foarte mult. Astfel pe un i7-720QM(notebook) si ATI 5730 am jucat fara probleme. Singura parte nefericita e ca engineul tinde sa-ti consume toate resursele, chiar si cand nu e nevoie, astfel tinandu-mi procesorul la vreo 80 grade si graphic cardul la 90-95. Enervandu-ma am decis sa il pun pe power saver(ma rog, un mod facut de mine) si am lasat placa video la 300MHz si procesorul la 55% din putere. Ghici ce....mergea la fel de bine ca inainte. Diferente insesizabile de frameuri, decat mici blocaje cand intervenea UPLAY-ul. 
Una peste alta va recomand tuturor acest joc, nu o sa regretati!

luni, 12 decembrie 2011

Motion Tracker

Vara trecuta lucram la un proiect grandios. Un program ce era capabil sa recunoasca formele(datorita unui algoritm pur matematic) si sa recunoasca miscarea. Cand miscai mana, apai stia ca e mana si nu picior! Proiectul mi-a iesit in flash(action script 3) si am inceput dezvoltarea lui in c#. Problema e ca nu prea stiu WinApiurile pentru camera video. Ok, capturez imaginea, dar nu-mi citeste C#-ul bine ClipBoardul. S-a mai confruntat cineva cu aceasta problema? Daca da, va rog lasati un comentariu cu solutia.
Multumesc!

Pluginuri, pluginuri si iar pluginuri.

Aveti aici o arhiva cu majoritatea pluginurilor create exclusiv de mine(majoritatea pentru zombie-biohazard) cum ar fi bomba de infectie, zspawn, zombie invizibil(netestat), si multe altele

Fisierele aferente le deduceti din SMAuri!

http://fisierulmeu.ro/652AMSE3I05G/scripting-rar.html
Toate sunt amxx 1.8+

amxx_banking - sistem de banca pentru amxx: imprmuturi, dobanzi, rate, etc(Neterminat si netestat)
autorr- Sistem de autorestart dupa n runde
invis - zm invizibil(stadiu de proiect)
map_scheduler.sma - Orar al mapelor. Cand nu sunt admini schimba automat anumite harti la ore setate(bun noaptea)
nick - nume interzise
slayteam,slapteam stiti ce fac
wantadmin - o comanda cu un motd si cerere automata de admin direct de pe server

Restul le mai descoperiti si voi:)

Un nou bug in Counter-Strike

Jucandu-ma cu requesturile am descoperit un nou bug in HL. Nu va pot da deocamdata detaliile, dar zilele urmatoare o sa-l fac public. Ce pot sa va spun este ca e o eroare de incepator(un array pasibil de limit exceded). Cam toate serverele pe care le-am testat au fost vulnerabile...deci nasol!

Ce e defapt un pachet IP? Tehnici de programare pe socketuri c++

Toti confundam IPul cu o adresa unica a fiecarui PC intr-o retea de internet. Practic este asa, insa si mai practic IPul nu este decat un protocol de comunicatie.

El arata cam asa: Puteti vedea bitii care cum sunt aranjati. Frumusetea e ca stiind acest model, orice IP poate fi spoofat(trimiteti un pachet in numele altcuiva)
Tehnica e simpla, in c++ se foloseste functia setsockopt cu ajutorul careia se dezactiveaza optiunea ce determina kernelul sa introduca automat headerul. Tehnica se poate folosi de exemplu in redirecte(pentru a inscrie un numar nelimitat)

 http://webee.technion.ac.il/labs/comnet/netcourse/CIE/Course/Section3/7.htm


De asemenea de mentionat este faptul ca HalfLifeul foloseste pachete UDP/DGram pentru comunicare. Acestea nu pot stabilesc o legatura persistenta. Nu exista un listener care sa stie de unde trebuie sa vina urmatorul pachet, ci doar ca trebuie sa vina.

Structuri folositoare in c++ pentru socketuri

struct sockaddr_in {
uint8_t sin_len; /* length of structure (16) */
sa_family_t sin_family; /* AF_INET */
in_port_t sin_port; /* 16-bit TCP or UDP port number */
struct in_addr sin_addr; /* 32-bit IPv4 address */
char sin_zero[8];
};
struct in_addr {
in_addr_t s_addr; /* 32-bit IPv4 address */
};
struct sockaddr {
uint8_t sa_len;
sa_family_t sa_family; /* address family: AF_xxx value */
char sa_data[14]; /* protocol-specific address */
};


Functii:

All data in the network is sent as “Big Endian”
Conversion into local representation required (Intel)
(depends on the CPU architecture but should always be done
for portability)
netshort = htons (hostshort)
netlong = htonl (hostlong)
hostshort = ntohs (netshort)
hostlong = ntohl (netlong)
int createSocket(const sockaddr_in &addr)
{
int sd=socket(AF_INET,SOCK_DGRAM,0);
if (sd<0) return -1;
int yes = 1;
setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, (char*)&yes, sizeof yes);
fcntl(sd,F_SETFL,O_NONBLOCK);
if (bind(sd,reinterpret_cast<const sockaddr *>(&addr),sizeof addr)<0) {
std::cerr << strerror(errno) << std::endl;
return -1;
}
return sd;
}

Mai mult:
http://www.netlab.tkk.fi/opetus/s383150/2006/slides/network-programming-c.pdf

Clase c++ si c# folositoare pentru determinarea headerului IP/UDP si a datelor. Daca va vine pachetul si voi vreti sa determinati sursa, portul, protocolul, CheckSumul ,etc.

Clasele nu sunt facute de mine, dar le-am folosit si le recomand.
http://fisierulmeu.ro/65C9FFZRZ5CO/Internet-pg-rar.html

c++:
http://www.cplusplus.com/forum/general/7109/


Surse: http://www.netlab.tkk.fi/opetus/s383150/2006/slides/network-programming-c.pdf

Sa vorbim de Valve:)

Acum cateva saptamani scriam:

"Valve a produs o surpriza uriasa, prin care a reusit sa filtreze marea majoritate a redirectelor.
Mai exact, cu noul protocol(implementat de cateva saptamani) masterele devin inactive si inutile. Singurul master la care se conecteaza engineul HL este 69.28.158.131. Conectarea se face in mod automat, comanda setmaster add fiind dezactivata.

Din cauza aceasta o sa vedeti in console "setmaster command ignored". De asemenea, filtrarea pe IP este de o mai buna calitate, protocolul de query a fost schimbat in mod radical. 

De ce se vad scaderi de dropuri?
HLDS se inregistreaza numai la acel master folosit de clientul Steam. De asemenea, dezactivand inregistrarea in celelalte mastere, clientii non-steam nu vor mai vedea in liste o gramada de servere. De precizat este ca un client non-Steam nu-si poate face singur update la noul protocol. Si uite cum Valve lasa pe afara jucatorii non-Steam... Nu-i asa ca se pierd o gramada de jucatori non-steam? Asa este...

Concluzia: Degeaba puneti setmaster add, pentru ca acea comanda este inutila.  "


Acum mi-am dat seama ce au cautat. Pur si simplu, au distrus clientii Non-Steam. In afara de redirectele PowerGods niciun HLDS nu se mai poate inscrie pe alte mastere decat pe cele care vor Valve. Problema e ca au creat o problema uriasa: Au dat posibilitatea crearii de Boosturi. GameTracker.rs si in curand unul romanesc la care am ajutat si eu:) In schimb, mai nou exista 2 masterservere Valve. S-a observat o crestere semnificativa a numarului de redirecionati in special Steam on dupa acest update(5408). De asemenea HLDSurile au fost nevoite sa-si faca update, pentru ca nu se mai inscriau in absolut niciun master.

De asemenea de vreo 3 zile am lista plina(vreo 2000 de servere constant) si multe rusesti:)
Asa ca au incercat sa faca un bine, si au facut un rau incredibil prin aceste boosturi. Traiasca aceasta companie:|





Clase C# folositoare!

Azi am sa va pun la dispozitie 2 clase C# folositoare create de mine.


Prima contine un algoritm de criptare propiu, folosit de WAC si Redirecte in comunicarea cu serverul.
Va voi pune la dispozitie si codul php aferent.




PHP:

$key = "J545c54sere54cx54cJskhML5khcJw9X2DqE5pKA3y2NS3SDMgsov3C8xVgT";
$block=15;
$delimiter=10;


function decrypt($string,$key,$block,$delimiter)
{
$parts = explode(";",$string);
$res;
for($i=0;$i<count($parts);$i++)
{
$c = (int)$parts[$i]-ord($key[$i % $block])- ord($key[$i % $block + $i % $delimiter]);
$res = $res.chr($c);
}
return $res;
}
clasa C#:
http://fisierulmeu.ro/65LQXD4NKUD7/dscrypt-cs.html


A doua clasa contine un mod rudimentar dar eficient de detectare a pornirii unei aplicatii(detecteaza cand o aplicatie a fost deschisa/inchisa). Am folosit-o in WAC 1, pana sa o creez pe cea care foloseste HOOK-uri.

http://fisierulmeu.ro/65CIKQQFSAFA/ProcessTrace-cs.html

Mod de folosire:
    private ProcessStartTrace pTrace = new ProcessStartTrace();
    pTrace.onStart+=new ProcessTraceHandle(pTrace_onStart);
    pTrace.Start(170); //Numarul de milisecunde la care se va face verificarea
  

 public void pTrace_onStart(object s,EventsProcessTrace e)
        {
        }

pTrace.Stop();

Sper ca o sa va fie de folos, in special la detectia programelor nedorite.





Gamtracker Registerer!

Sincer sa fiu, mi-am cam luat teapa cu acest programel. Mi-a fost promisa o suma de bani pentru el, dupa care ownerul comunitatii respective nu s-a mai sinchisit. Asa ca il fac public in varianta demo...

Ce e?

Redirectele PowerGods(alea gen FakeHLDS) am avut placuta surpriza sa observ ca apar in GameTracker. In ce sens? Jucatorii falsi de pe redirecte apar ca si jucatori normali, se pun la statistici, ba chiar se indexeaza:D. Am ajuns cu un redirect pe locul 40 in lume in aproximativ 2 saptamani. Culmea e ca il modificasem putin, recunosc, sa apara 40/40 Pe GameTracker si 39/40 pe Steam. Va dati seama ca avea o medie lunara de vreo 38 de jucatori=)) in conditiile in care pentru CS maximul e de 32:). Dar nimeni nu s-a prins, el statea bine merci acolo. Deci reprezinta o tehnica buna de reclama a serverului. Programul urmator poate inregistra automat in Gametracker cam cate porturi vreti ale redirectelor:) Deci puteti pe scurt inregistra cate redirecte vreti voi. Va atasez executabilul...

Necesar .Net Framework 4


http://wargods.ro/download/GameTracker%20Registerer.rar

Va creati un cont GameTracker si ii dati drumul. Versiunea demo e limitata la 150 porturi per sesiune.




PowerGods Redirect

Incep prin a spune ca vreau sa le mut de pe acem domeniu!

Ce sunt? Mai stiti redirectele gen fakeHLDS? Normal...
E, astea sunt niste redirecte in acelasi stil, consuma cam 20MB la 500 redirecte dintre care vreo 16 o ocupa interfata. Frumusestea e ca dupa ultimul update valve baga jucatori in prostie. Exista versiune spearata pt linux cu suport nativ. Se inregistreaza in Setti, setmaster.info, masterele rusesti,masterele Steam si multe altele. Frumusetea e ca datorita unei scapari a Valve, apar primele in listele de internet(chiar si in fata celor rusesti) De asemenea sunt singurele capabile sa se mai  inregistreze si pe masterele non-Steam, functionand ca un Boost(o sa fie singurele in acele mastere:D ). Va las pe voi sa descoperiti frumusetea lor
http://www.wargods.ro/redirect



Au consumat 3 luni de tocit creierii, seri pierdute, ochi stricati in wireshark, dar toate astea au meritat. Sunt unice in lume!


Stiu de o anumita problema cu Shortcutul in varianta 3.2. Celor care le da Don't Send, va duceti in C:\ProgramFiles\PowerGods Redirect(sau unde l-ati instalat) si accesati Start.exe sau app.exe!

Voi remedia si aceasta minora problema:)






WarGods Anticheat

Acum ceva timp am inceput sa lucrez la o aplicatie AntiCheat destinata CS-ului. Partea buna e ca a iesit mai bine decat ma asteptam si este deja folosita de cateva servere, Detecteaza cam tot ce se poate detecta, de la penibilul CD-Hack pana la coduri ce lucreaza la nivel de kernel. Algoritmul e unul simplu, tine evidenta a tot ce misca in PC, fiind asemanator solutiilor antivirus. Partea frumoasa e ca datorita acestei ocazii, am facut ceva ce multi considerau imposibil. Am reusit sa HOOKuiesc deschiderea unui program decat prin rescrierea zonei de memorie destinate apelurilor.
Singurul dezavantaj: E client extern, desi comunica cu serverul prin amxx

Prezentarea oficiala:
Programul este in varianta finala, orice modificare va aparea pe viitor se va face prin autoupdate! Functionarea programului nu va mai fi intrerupta. Va rog sa-l descarcati si sa-l folositi cu incredere ;)
Wargods Anti Cheat este o aplicatie care prin utilizarea ei detecteaza codurile. Jucatorul va trebui sa deschida cs-ul prin acest program iar daca va incerca sa bage cod, aplicatia il va detecta si va aparea in evidenta online datele celui care a folosit cod.
[B]Crearea acestei aplicatii a fost posibila datorita lui daniel_San, initiativa ii apartine si partea de programare a fost creata de el!
Multumim inca o data pentru cele oferite Comunitatii WarGods![/B]

[B]Informatii:[/B]
[COLOR="#4169e1"]- Wargods Anti Cheat detecteaza majoritatea codurilor existente.
- Scopul principal al aplicatiei este de a evita existenta jucatorilor cu cod si in special a adminilor codati.
- Instalarea se face prin intermediul unui [B]downloader[/B] care descarca automat resursele necesare instalarii.
- Consumul de resurse este minim.
- Se minimizeaza in System Tray.
- Aplicatia este insotita de un plugin care va fi instalat pe server.
- Nu interactioneaza cu VAC sau VAC2 al Steamului.
- S-a introdus un sistem de licentiere avansat. Aplicatia nu poate fi utilizata pe alt server fara acordul nostru!
- S-a implementat functie de obligare a adminilor si sloturilor sa foloseasca WAC printr-un cvar.
- Verificarea jucatorilor de WAC se poate face atat online prin evidenta, cat si direct de pe server.
- Exista un Help cu instructiuni de utilizare a aplicatiei si cu butoane catre evidenta.
- [B]Exista spatiu pentru reclama, banner de 345 x 85.[/B]
- Aplicatia isi va face update automat la aparitia versiunilor noi.
- Mentionez ca Wargods Anti Cheat detecteaza mult mai multe coduri decat Steamul (VAC)!
- Detecteaza atat coduri ce se foloseau in PGL si ESL cat si codurile de Steam.[/COLOR]
[B]Aplicatia este disponibila si altor comunitati sau servere de cs! Pentru detalii: [url=http://www.wargods.ro/sendmessage.php]Contacteaza Administratorul[/url][/B]


Avantaje:
- Implementand aceasta aplicatie pe server NU va mai fi nevoie ca jucatorii sa isi cumpere Steam. Exista foarte multe coduri care functioneaza pe Steam si pe care anticheatul de la Valve nu le detecteaza. Wargods Anti Cheat detecteaza si aceste coduri fara probleme, astfel [B]nu veti mai fi nevoiti sa dati 10 euro pe licenta![/B]
- Securitatea si eficienta fiind superioara, adminii si sloturile care folosesc WAC pot primi imunitatea cu incredere chiar daca nu au Steam.
- Aplicatia minimizandu-se in system tray nu incarca bara de start si nu incomodeaza cu nimic.
- Consumul de resurse fiind minim aplicatia poate rula pe orice calculator fara a crea lag sau alt gen de probleme.
- Exista cvar care obliga adminii si sloturile sa foloseasca WAC. Dupa intrarea pe server, daca un admin sau slot nu are WAC-ul pornit va lua kick. Recomand ca toate serverele sa foloseasca aceasta optiune pentru a evita existenta adminilor codati!
- Pentru a evita reclama catre site-ul nostru verificarea celor care folosesc WAC se poate face direct de pe server. (daca optiunea de obligare a adminilor si sloturilor este activata, verificarea va fi necesara doar pentru restul jucatorilor). Verificarea se face din consola prin comanda [B]amx_wac nume[/B] sau din chatul general prin comanda [B]/wac nume[/B][/COLOR]


Instalare
DOWNLOAD: http://wargods.ro/wac/

[COLOR="#4169e1"]- Pentru rularea programului aveti nevoie de[/COLOR] .NET Framework4[COLOR="#4169e1"] si de [/color]Windows Imaging Component (WIC) [COLOR="#4169e1"]care se vor descarca automat daca nu le aveti instalate[/COLOR]
[COLOR="#4169e1"]- Instalati programul oriunde pe hard si il porniti de pe[/COLOR] [B]Start.exe[/B]
[COLOR="#4169e1"]- Introduceti numele exact cum il aveti pe server in campul dedicat.[/COLOR]
[COLOR="#4169e1"]- Cei cu Steam dati click pe butonul [B]Steam[/B] si selectati fisierul [B]Steam.exe[/B] din folderul unde aveti Steamul instalat
- Cei fara Steam dati click pe butonul [B]Non-Steam[/B] si alegeti fisierul [B]hl.exe[/B] din folderul unde aveti jocul
- Pentru a opri scanarea, dupa iesirea din joc dati click pe [B]Off[/B][/COLOR]


[B]Accesarea Evidentei:[/B]
[COLOR="#4169e1"]- Din bara principala de meniu a siteului (butonul WAC)
- Din Helpul aplicatiei de pe cele doua butoane dedicate
- Sau dati click mai jos:[/COLOR]
[list][*][url=http://www.wargods.ro/wac/users.php][B]Utilizatori WAC[/B][/url]




[B]ATENTIE! [/B][COLOR="#4169e1"][B]Numele introdus in WAC trebuie sa fie perfect identic cu cel utilizat pe server! Daca va schimbati numele in timpul jocului veti lua kick![/B]
- Mare atentie la majuscule si sa nu aveti "#" in nume!
- Verificati sa nu aveti coduri in acelasi folder cu jocul, in acest caz aplicatia va detecta codul chiar daca nu este activat!
- Este recomandat ca toate serverele sa foloseasca wac_autokick 1 pentru a evita adminii codati!
- Cei care mai aveti coduri va rog sa le incercati si sa ne anuntati daca ati gasit coduri care nu le detecteaza programul.
- Va rugam sa raportati orice buguri sau probleme intampinate.
- Verificati periodic evidenta online de pe site pentru a stii cine si ce cod a folosit!
- Codurile care apar in evidenta apar cu nume codificate (01, 02, a01, a02, etc). Numele real al codului va fi comunicat personal celui interesat
- Cei care aveti eroarea "[B]Unable to find a version of runtime...[/B]" gasiti solutia [url=http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/c88a7e64-219b-4303-bd52-bccc7dc4c7c5/][B]AICI![/B][/url]
- Partea de design a evidentei este inca in lucru, in curs de finalizare
- Serverele licentiate pe care puteti intra cu WAC sunt:
cs.wargods.ro
war.wargods.ro
zombie.wargods.ro
gungame.wargods.ro
dr.wargods.ro 
play.indungi.ro
- Daca intrati pe oricare alt server vi se va inchide atat WAC-ul cat si CS-ul![/COLOR]
[B]- Jucatorii care vor sa dea dovada de incredere sunt rugati sa foloseasca aceasta aplcatie de buna voie, astfel nu vor fi banuiti de cod si vor castiga incredere din partea noastra![/B]








Site: http://www.wargods.ro/wac
Pot sa afirm ca VACul e de 2 lei pe langa asta.









Bun venit:)

Uite ca am ajuns sa o fac si pe asta. Dupa lungi zile de programare in ale CS-ului m-am gandit sa deschid un mic blog. Asa ca nu ratati, va voi pune la dispozitie cele mai noi stiri, ultimele detalii tehnice despre tot ce misca Valve si multe tutoriale cu continut diversificat.

Sper sa gasiti folositoare aceasta initiativa:)