Despre tot ce este în lume

Ce înseamnă să corectezi un joc pe steam. Cum am descărcat jocul pe Steam ocolind Valve. Obținerea unui cont SteamWorks

Desigur, fiecare jucător ar dori ca jocul pentru PC pe care îl achiziționează să fie complet finalizat și gata de utilizare. Cu toate acestea, din păcate, nu toate companiile de dezvoltare reușesc să obțină un astfel de rezultat. Desigur, ei nu lasă totul așa cum este - sunt în permanență angajați. Patch-uri speciale îi ajută în acest sens, pe care utilizatorii le pot descărca apoi absolut gratuit. În acest articol, veți afla despre patch: ce este, ce sunt și cum să le folosiți. Este clar că în timp totul se schimbă, respectiv, nici forma de depunere a patch-urilor nu rămâne aceeași, dar în același timp esența rămâne mereu aceeași. Și cu siguranță ar trebui să știi ce este un plasture.

Dezvoltarea jocului

Mulți jucători, când joacă următorul proiect major, nici măcar nu se gândesc la prin ce a trecut el înainte de a ajunge în mâinile lor. Dacă doriți să aflați despre un patch, ce este, cum să îl utilizați și de ce aveți nevoie de el, trebuie să înțelegeți cum sunt create jocurile pentru PC. Desigur, întregul proces nu va fi descris aici, deoarece este incredibil de lung și cu mai multe fațete. În plus, cea mai mare parte nu este vitală pentru această întrebare. Cel mai important lucru pe care ar trebui să-l știți este etapa de testare. Când dezvoltarea jocului se termină, proiectul deja terminat și jucabil este trimis pentru testare alfa. Aici, testerii profesioniști verifică performanța jocului, subliniază defecte și probleme care sunt remediate chiar înainte de lansarea jocului. După aceea, începe testarea beta, care poate fi deschisă sau închisă. Aici, jucătorii înșiși testează jocul și informează dezvoltatorii despre ce este în neregulă cu el - în funcție de tipul de testare, proiectul este în domeniul public sau unui anumit grup de oameni i se oferă posibilitatea de a-l testa. Și după aceea, se efectuează îmbunătățiri și corecții finale - iar proiectul intră în vânzare. Cu toate acestea, chiar și o verificare pe mai multe niveluri atât de atentă și meticuloasă nu este întotdeauna capabilă să detecteze toate minusurile, motiv pentru care există așa ceva ca un plasture. Ce este? În acest articol, veți afla totul despre patch-uri.

Deci, acum aveți o idee despre cum este testat jocul, dar de ce este nevoie de un patch? Ce este? După cum pot înțelege cu ușurință cunoscătorii limbii engleze, un patch este un „patch” pentru joc, un mic program care este instalat în joc și fixează anumite puncte în el. Din păcate, chiar și cea mai mare verificare pe mai multe niveluri poate să nu detecteze toate erorile conținute în joc - acestea apar numai după lansare. Aici intervine patch-ul - dezvoltatorii colectează informații despre erorile care sunt încă prezente în joc, dezvoltă un patch pentru ei și îl pun la dispoziție pentru descărcare gratuită. Astfel, jucătorii nu trebuie să plătească din nou pentru o versiune fără erori - pot „patch” un joc deja existent. Totuși, ce sunt patch-urile? La urma urmei, există o mare varietate de opțiuni.

Patch standard

Dacă știți că există anumite patch-uri pentru jocul pe care îl aveți la îndemână care ar merita instalate, trebuie să înțelegeți care ar putea fi acele patch-uri. Cel mai comun patch este o arhivă care conține fișierele necesare, pe care le puteți copia în folderul jocului în conformitate cu instrucțiunile conținute în aceeași arhivă. Cu toate acestea, dezvoltatorii nu forțează întotdeauna jucătorii să facă totul pe cont propriu - uneori puteți folosi un program special de patch-uri. Trebuie doar să-l rulezi, să selectezi jocul pe care trebuie să-l patchezi, apoi să selectezi patch-ul pe care vrei să-l instalezi - și asta este tot. Patch-urile Fifa sunt lansate cel mai adesea sub această formă, deoarece această serie este foarte populară și există de mult timp, astfel încât programul de corecție nu se schimbă în timp, iar jucătorii pot corecta cu ușurință orice versiune a fiecărui joc din serie.

Patch-uri cumulate

Ar trebui să vorbim și despre patch-uri cumulative. De exemplu, ele pot fi găsite adesea pentru jocul „Stalker” - patch-urile de acest fel conțin mai multe patch-uri care au fost lansate anterior. Astfel, în loc să descărcați fiecare patch lansat separat și să le instalați unul câte unul, puteți descărca un patch cumulativ care va conține toate modificările de la patch-urile anterioare, ceea ce este incredibil de convenabil.

Cum să corectezi jocul?

În cele mai multe cazuri, jucătorii folosesc platforme speciale pentru jocuri, cum ar fi Steam. Acolo vă puteți configura clientul astfel încât toate actualizările care apar pentru joc să fie instalate automat. Aceasta este o caracteristică foarte utilă, dar, din păcate, nu toate jocurile sunt disponibile pe Steam, așa că va trebui să studiați panoul de corecție. După cum am menționat mai devreme, acest proces poate fi rezolvat foarte simplu. Există doar două opțiuni aici: fie descarci arhiva și transferi fișierele din ea în folderul jocului, fie deschizi panoul de corecție și specifici doar calea către joc și patch, iar programul face totul pentru tine.

Dacă ai vizitat pagina de pornire Steam duminică seara, s-ar putea să fi observat o nouă ofertă destul de interesantă: „Uită-te la vopsea uscată”. Acest lucru a provocat multe controverse (și m-am distrat puțin pe forum) pe Steam, deoarece oamenii au susținut că Valve/Steam a pierdut complet controlul asupra calității jocurilor în Greenlight, chiar dacă acel joc nu a trecut nici măcar prin Greenlight.

Nici măcar nu am plătit 100 USD pentru taxa de trimitere Steam Greenlight pentru a reduce timpul de încărcare a distribuției pe server. Personal, cred că Greenlight este o platformă excelentă pentru ca oamenii să își trimită jocurile și, datorită ei, munca unui dezvoltator indie a devenit și va continua să fie o profesie de succes.

Aș dori să îmi cer scuze în avans dacă i-am jignit în vreun fel dezvoltatorii indie care au probleme în a-și publica jocurile pe Steam. Toate acestea nu sunt altceva decât o farsă făcută de dragul unui test, pentru a testa ceea ce am încercat să transmit lui Valve în ultimele luni - despre posibilitatea de a descărca orice joc pe Steam fără posibilitatea de verificare de către angajații Valve.

Acesta este un ghid învechit, deoarece proprietarii Steam au remediat lacunele existente, dar dacă vă plac călătoria în timp, acesta este un ghid solid despre cum să vă lansați jocul.

Obținerea unui cont SteamWorks

Acesta începe să devină un ghid tehnologic, dar obținerea accesului la SteamWorks a fost începutul cercetării mele asupra acestei probleme. Nu pot comenta cum/de ce am avut acces la SteamWorks, dar pot confirma că nu am avut nicio lacune în documentele de pe internet, Greenlight sau Valve în sine. Chiar dacă nu mai este în producție, nu voi divulga niciun detaliu despre cum a fost realizat, așa că nu mă întrebați despre asta. Am motivele mele.


Oricum, am avut acces la SteamWorks (platforma internă Valve pentru publicare pe Steam, baza pentru crearea realizărilor, DRM, multiplayer etc.) și asta mi-a dat ideea să caut punctele slabe în platformă. Am încercat să contactez Valve despre ei, dar nu am primit niciun răspuns. În cele din urmă, în jurul lunii aprilie, am decis să folosesc „aplicația fără nume” ca o glumă a lui April Fool pentru a aduce aceste probleme în atenția lui Valve.

„Nu voi vorbi despre cum am creat un simulator de vopsea uscată cu 45 de secunde de joc în RPG Maker, pentru că nu sunt prea mulțumit de el și nu contează deloc”.

Obținerea verificării cardului de tranzacționare Steam

Un joc precum Drying Paint Simulator ar fi complet fără Steam Trading Cards?

În 10 minute de Photoshop, am creat un set de glume de bază distractive. Cu toate acestea, Valve ar trebui să evalueze cărțile, emoticoanele și tricourile înainte de a le elibera. Dar au apreciat-o?

Dintr-o privire, puteți vedea că starea lansării are mai multe opțiuni inițiale:


Mă întreb ce zici de sursa acestui formular:


Interesant este că țin evidența atât a sesiunii mele, cât și a ID-ului contului editorului. Să încercăm să schimbăm aceste date în datele angajaților Valve (adică 1). De exemplu, modificați valoarea din select cu ceva inexistent și vedeți cum afectează formularul.


Și mai interesant... Noua opțiune „Last Editor” este cineva de la Valve. Și ce se întâmplă dacă re-salvam formularul cu starea „Eliberat”?


Până la urmă, când am introdus o interogare greșită, a revenit cu o listă întreagă de opțiuni și valorile acestora. În acest caz, am văzut că starea „Eliberat” era 5. Reîmprospătarea formularului a adus înapoi „editor_accountid” și schimbarea valorii din fereastra „Ready for Review” selectată de la 3 la 5 a salvat totul pe server, deoarece dacă cardurile mele de colectare sunt confirmate. Serverul nu verifică dacă cineva de la Valve a aprobat cardurile și setează starea la „Eliberat”. Acum să trecem la descărcarea jocului în sine.

Procesul de aprobare a supapelor

Un mic sfat pentru tine: înainte ca Valve să încarce ceva pe Steam, trece printr-un proces de lansare în trei pași. În primul rând, trebuie să puneți la coadă pagina magazinului pentru evaluare, apoi să trimiteți o versiune finală sau aproape finală a jocului înainte de a-l putea lansa.

Evenimentul principal: Lansarea jocului

Site-ul Steamworks este scris în principal în AJAX. Tot codul de funcție Javascript pe care se bazează sursa este destul de obscurcat, dar poate fi citit de oricine (înregistrat la Steamworks). Există o mulțime de lucruri interesante în cod, dar din moment ce acest joc a fost mai degrabă o dovadă a conceptului, am rămas cu ceea ce era important și am găsit o funcție Javascript interesantă „ReleaseGame(appid, data)”. Se pare că aceasta a făcut o solicitare tipică AJAX (deși nu a implicat nicio autentificare) către Steam și, după cum se spune, aplicația a fost lansată.


Am încercat să sun ReleaseGame cu valoarea 445730 (aplicația mea) fără a completa datele și am primit eroarea 403 (Acces refuzat). Interesant. M-am uitat la alte câteva funcții din fișier și am observat că cele mai multe dintre ele au adăugat valori la o solicitare JSON numită „sessionid” cu ID-ul sesiunii pe care l-am văzut mai devreme când ne-am emis cardurile de tranzacționare.


Deci, numim ReleaseGame(445730, ( 'sessionid': 'my_session_id')


Accesați pagina magazinului Steam:


Tadam! Trebuie să recunosc că apariția jocului în secțiunea de lansări noi a fost o neglijență din partea mea. Inițial am vrut să „lanseze pe 1 aprilie” și să nu apară pe Steam până vineri. Totuși, nu mă așteptam să dureze atât de mult. De asemenea, recunosc că îmi doream foarte mult să văd cât de departe aș putea merge cu procesul de lansare a jocului. Dar cred că este bine că nu a ieșit la vânzare.

Am contactat ulterior Valve, care a remediat toate cele de mai sus.

Ceea ce am învățat cu adevărat este că atunci când lucrați cu conținut generat de utilizatori care trebuie să fie aprobat, nu setați doar „Review Ready” și „Reviewed” ca valori pentru acel conținut. În schimb, încercați să o abordați diferit, creați „bilete de recenzie” pentru fiecare conținut sau ceva de genul. Sau pur și simplu nu le oferi utilizatorilor posibilitatea de a trimite un articol pentru lansare.

ora buna, %NUME DE UTILIZATOR%! În articolul meu anterior " Aburi CEG de la Valve și cu ce se mănâncă. Introducere"s-a dat doar o înțelegere abstractă și principii de funcționare a tehnologiei CEG. Acest articol va conține minimumul absolut de teorie și marea majoritate a practicii. Astăzi și acum ne vom gândi dacă este posibil să „înțărcăm” râvnitul fișier executabil de la această protecție.

Pasul I. Selectarea și analiza victimelor
Prezența CEG și orice versiune poate fi ușor detectată prin prezența unei secțiuni în fișierul antet .versiuneși primii patru octeți din ea ( 78 56 34 12 ):

Cunoscând aceste informații și căutând puțin în biblioteca Steam, alegerea mea a căzut pe reeditarea HD a legendarului Vârsta mitologiei cu prefixul " ediție extinsă". După ce descărcarea este finalizată cu succes, după ce ați așteptat câteva secunde pentru ca CEG să semneze fișierul executabil, deschideți-l în depanatorul nostru, în cazul meu în x64dbg . O, da, merită remarcat că prietenul lui CEG folosește niște instrumente anti-depanare. , așa că vom folosi pluginul ScyllaHide cu următoarele setări:

Așadar, după ce am deschis fișierul executabil, vedem că nu este acoperit de packeri terți, așa că putem trece în siguranță la al doilea pas.

Pasul II. Debriefing
Absolut în orice versiune de CEG există o funcție care efectuează un calcul general al valorilor dorite. Arata cam asa:

Știind acest lucru, punem o pauză fie pe instrucțiuni
mov eax, dword ptr ds:
,
sau pe urmatoarea:
mov dword ptr ds:,eax
:

Presa " Alerga" (F9) si vezi ca a functionat pauza! — Și ce ne-a dat? - întrebi, eu răspund: valoarea exactă a EAX în buffer. Puteți verifica acest lucru uitându-vă în coloana din dreapta opusă filei " CPU":

După cum puteți vedea din imagine, am primit valoarea EDB88320. Să-l copiem în clipboard și să mergem mai departe. Presa " pas peste" (F8) de două ori și ne găsim în interiorul uneia dintre funcțiile utilizate de CEG. Și în această etapă merită să spuneți câteva cuvinte despre tipurile existente de astfel de funcții. De fapt, pot exista trei tipuri de ele:

1 . Funcții cu o valoare constantă (Constant) - returnează o valoare constantă care va fi întotdeauna aceeași. Patch ca:
muta eax,<значение>ret
;
2 . Funcții cu o valoare aleatorie (Aleatoriu) - returnează orice valoare întreagă. Patch ca:
muta eax,<значение>ret
(utilizat numai pe cele mai recente versiuni ale CEG);
3 . Funcții de protecție (Proteja) - sunt pointeri care conduc la adevărata funcție Patch ca:
jmp<адрес>
.

Acum să revenim la jocul nostru. Suntem în interiorul funcției dorite și avem valoarea corectă în buffer. Acum trebuie să definim forma funcției noastre. Derulând în jos câteva instrucțiuni, putem vedea că instrucțiunea este folosită
lea eax, dword ptr ds
:

Și asta nu poate însemna decât un singur lucru - avem de-a face cu o funcție care returnează o valoare constantă. În general, trebuie amintit că dacă se află în buffer EAX sunt valori de tipul: EDB88320, 60 , 11 , 5 , 3f etc., va fi imediat clar că funcția care utilizează această valoare va fi constantă. De ce? Deoarece acestea sunt valori constante CEG „cunoscute”, acestea vor fi aceeași pe orice versiune de CEG. Prin urmare, trecem la începutul funcției și o corectăm schimbând-o în
mov eax, EDB88320
ret
:

Deci ce urmeaza? Și apoi repetăm ​​totul din nou (bineînțeles, având același bug pe funcția care calculează valorile) până începe jocul (Profit!), ceea ce înseamnă că am trecut toate verificările CEG. Toate?! Ei bine, să vedem. Salvăm fișierul cu patch-urile făcute și încercăm să-l rulăm pe alt PC (pe care jocul a fost deja descărcat). Și apoi... o dezamăgire. Jocul nu vrea să înceapă! O, da, am uitat de încă un detaliu important! Cert este că CEG, așa cum se menționează în primul articol, folosește așa-numitele verificări ale fișierelor. Deschizând din nou depanatorul, putem detecta cu ușurință aceste verificări prin prezența trăsăturilor caracteristice minunatului WinAPI: GetFileInformationByHandle , CreateFileW , OpenFileById , StringFromGUID2 , RegOpenKeyExW , SystemFunction036 și lstrcmpiW . În jocul nostru - există doar o astfel de verificare, o puteți găsi imediat conducând GetFileInformationByHandleîn căutare" Referințe":

Mergem la început și căutăm o funcție care apelează această verificare ( RMB -> Găsiți referințe -> Către adresa (e) selectată, sau o comandă rapidă de la tastatură CTRL+R). Va arata asa:

Ei bine, hai să o facem! Deși acest lucru se poate face într-un mod mai sofisticat, o vom face mai ușor prin folosire
mov eax, 1 ret


Salvăm rezultatul muncii depuse și îl testăm a doua oară și, Doamne, jocul s-a lansat pe alt cont Steam și pe alt PC!

Pasul III. Decuplarea completă a jocului de la Steam (Ediția Yarr!)
Desigur, după plăcerea primită, mi-am dorit mai multe sporturi extreme. Dar dacă vreau doar să mă joc cu un prieten pe LAN fără niciun Steam acolo, ca în vremurile cu barbă? Ei bine, nu o întrebare. Pentru a face acest lucru, am descărcat un excelent emulator Steam cu suport parțial suprapus (!) numit SmartSteamEmu . După ce l-am configurat, am lansat jocul fără Steam activat. Și ce văd - a fost creat un fișier *.STEAMSTART iar jocul a atârnat în procese. După ce m-am gândit la aproximativ treizeci de secunde, jocul încă a început și a funcționat corect. Dar de ce? Am făcut totul, nu-i așa? Da, este, dar am uitat de o mică atingere. Faptul este că acest fișier de eveniment este creat atunci când procesul Steam nu rulează și este în esență ultima micro-verificare. Ei bine, deschideți depanatorul pentru a treia oară și căutați toate funcțiile cu CreateFileA. Fără ezitare, punem pauze pe toate funcțiile (în acest caz sunt doar două). La pornirea jocului, eroarea a funcționat:

STEAMSTART te vedem! Deci, pentru a pune capăt acestei neînțelegeri, schimbați JE de sus în JNZ sau JMP:

Salvați patch-ul, încercați să rulați din nou jocul fără Steam, cu degetele încrucișate. Și voilà - jocul a început în câteva secunde! Ți-am făcut-o CEG ne iertați.

De fapt, concluzia
L-am prins pe CEG în joc Age of Mythology: Extended Edition nu a fost dificil. Acest joc nu avea niciunul Proteja, nici Aleatoriu funcții, doar una Constant ceea ce simplifică foarte mult sarcina. De asemenea, în acest joc nu au existat verificări minore, sub forma vechiului bun CRC sau ultimele verificări ID procesor sau numărul de serie al hard diskului.
În viitor, sper să reușesc să stăpânesc aceste două noi verificări și să scriu un articol nou, dar deocamdată - ne vedem curând!

AI NEVOIE DE UN PRIETEN SAU 2 CONTURI PENTRU ACEST PROGRAM!!!
Zic imediat, citeste-l mai intai si abia apoi repeta totul ca sa nu fie intrebari!
Pe scurt, acest program este ceva de genul AppID_patch. Cu toate acestea, după cum știți deja, a fost remediat și nu vă mai puteți adăuga jocuri. Acest program face ceva similar.
Imaginează-ți: ai un prieten și el are un joc, de exemplu, modul lui Garry. Și ai vrut să-l joci cu el, dar nu îl ai, doar un pirat. Programul SteamCrack servește pentru asta, ei bine, ca o inteleg.

Ei bine, cum să-l folosești?

  1. Am descărcat arhiva și am dezarhivat-o oriunde am dorit
  2. Lansăm în numele administratorului SteamCrack.exe și faceți clic pe toate ferestrele „Da”
  3. Închidem știrea, dacă se oferă să fie actualizată, atunci o facem.
  4. În fereastra care se deschide, lovim cele trei puncte „packageinfo.vdf” și îl căutăm de-a lungul căii / steam / appcache /
  5. Ai ales? Apoi apăsăm pe patch steam și ne dă „Ai închis Steam?” opriți Steam și faceți clic pe „Da”
  6. Vă va oferi de unde să descărcați SteamPatched, descărcați de unde vă va fi convenabil.
  7. După descărcarea SteamPatched.zip, aruncați-l în folderul cu acest program (nu puteți închide programul în sine) și apăsați din nou pe Patch Steam în program, acesta va verifica fișierele și dacă lipsesc, introducem fereastra de patch steam care se deschide, bine, salvează-l, pentru orice eventualitate.

Si asta e!

Iată un link către un videoclip despre acest program în limba engleză, ei bine, cu text.

Acesta este însuși dezvoltatorul și pare să fie și din Franța.

Despre alte funcții.

  1. În „Adăugați jocuri” există un buton „Căutare manuală” - făcând clic pe el, se deschide magazinul Steam și băgeți acolo jocul dacă nu este al nostru în lista de jocuri și faceți clic pe „adăugați”.
  2. Doar „Adăugați manual” - făcând clic pe el, trebuie să scrieți numele jocului și ID-ul acestuia, după ce faceți clic pe „Adăugați” și „Terminat!”
  3. „Eliminați din listă” - elimină jocurile pe care le-ați adăugat.
  4. „Reset” - șterge fișierul packageinfo.vdf, nu, jocurile tale nu se vor pierde, doar acele jocuri pe care le-ai adăugat prin acest program vor fi șterse
  5. Poți vedea actualizările în fila „SteamCrack”. Sunt și știri
  6. Dacă la prima pornire ați selectat limba greșită, o puteți schimba făcând clic pe butonul „Changer de lounge”.
  7. Îl puteți elimina complet în fila SteamCrack ---> Resetare ---> Toate
  8. De asemenea, puteți adăuga conținut suplimentar
IMPORTANT!!!
Dacă doriți mai multe jocuri pe cont, alegeți imediat, altfel data viitoare când utilizați programul, toate jocurile primite anterior vor zbura pur și simplu din contul dvs.!
Programul necesită MSVC2015 x86 și x64. Îl puteți obține descărcând Visual Studio de la acest link
De asemenea, nu pot adăuga un program aici din cauza greutății și a mâinilor strâmbe. Poate fi descărcat de aici. Nu eu l-am încărcat, ci dezvoltatorul acestui program. Doar că are un link sub vido, care nu merge la mulți. A trebuit să folosesc un proxy pentru a-l descărca.
Autorul părea să spună că vrea să returneze AppID_Patch. Așteaptă.

Postari similare