Jak vydat hru na Steamu bez vědomí Valve
zdroj: Archiv

Jak vydat hru na Steamu bez vědomí Valve

30. 3. 2016 16:55 | Téma | autor: Adam Homola |

Steam si za svou více než desetiletou historii prošel několika menšími i většími bezpečnostními problémy, přičemž skrze ten poslední jste si mohli vydat na Steamu prakticky cokoliv. Na vlastní kůži si to vyzkoušel člověk s přezdívkou Ruby, který vydal „hru“ Watch paint dry. Bez jakéhokoliv schvalování, bez komunikace s Valve, zcela sám. Stačila mu k tomu jen bezpečnostní chybka v interních nástrojích Steamu.

Ruby přitom o chybě nějakou dobu věděl a snažil se na to upozornit Valve, ale ti, asi nepřekvapivě, nereagovali. Po vydání Watch paint dry už chybu zaregistrovali a opravili ji, tudíž se mohl Ruby o přesný postup podělit na svém blogu. Ve stručnosti se celý proces sestával ze tří kroků: Steamworks, kartiček a samotného vydání hry.

Abyste se vůbec do vývojářského zákulisí Steamu dostali, musíte mít účet na Steamworks. Ten Ruby měl a ve svém blogu odmítl prozradit, jak se k němu dostal. Jen přísahal, že ho získal regulérní cestou a nešlo o žádný hack, zneužití chyby, nebo cokoliv podobně nekalého. Neměl ho ani díky Greenlight, ani díky žádnému zaměstnanci Valve. Tím pádem se dostáváme k druhému kroku, kterým jsou kartičky.

Steam Trading Cards si coby vývojář můžete udělat ke každé hře, jenže stejně jako hru samotnou je nejde vydat jen tak. Valve vám musí kartičky schválit. V interních nástrojích Steamu jsou pak pro vývojáře tři možnosti, kdy kartičky posíláte na schválení: Not ready, Ready for review a Not ready due to edits. Při celém tomto procesu je už potřeba nahlédnout do zdrojového kódu stránky a obecně se trochu vyznat v JSONu, AJAXu a podobných technologiích.

Odborníci mohou nahlédnout na Rubyho blog, kde nechybí obrázky kódu a detailní popis změn. Ve zkratce ale stačilo při procesu schvalování karet poslat do Valve špatný request s jiným ID, vrátil mu formulář hodnoty, který neměly být k dispozici pro vývojáře. Jedna z hodnot pak byla Released. Opětovným načtením formuláře mohl najednou poslat request s pátou možností, namísto původních tří a pátou byl právě stav Released.

Server v tu chvíli už prý nekontroloval, zda jde o zaměstnance Valve, o vývojáře, nebo o libovolné jiné ID. Kartičky byly tedy v tuto chvíli vydány a nastal čas vydat i samotnou hru. Tady Ruby zkusil vyslat požadavek na vydání hry s ID číslem jeho aplikace, což mu vrátilo chybu 403 – „přístup odepřen.“ Stačilo ale jen upravit v kódu hodnotu sessionid, použít znovu ID číslo své aplikace, zavolat požadavek na vydání hry a Watch paint dry se najednou objevila mezi nově vydanými hrami na Steamu.

Následovala komunikace s Valve, stažení hry z obchodu a opravení chyby. Stejný postup, na jehož detailní odborný popis vás znovu odkáži na Rubyho blog, se vám už tedy zopakovat nepodaří. Ruby nakonec ještě dodal, že součástí jeho plánu bylo nechat se chytit. Nakonec tak šlo jen o způsob jak upozornit Valve na chybu, nikoliv jak dostat do obchodu za každou cenu nesmyslnou „hru“ a vydělávat na ní peníze.

Nejnovější články