Na našem IRC chatu se jednoho dne kámoši začali bavit o nějaké soutěži a kolik nahráli bodů. Ze zvědavosti jsem se podíval o co jde a zjistil jsem, že na stránkách farcry-hra.cz byla soutěžní hra, ve které mohl každý nahrát své skóre a pokud se umístil v první desítce, tak se dostal do slosování o nový počítač a hru Far Cry 4. Jednalo se o plošinovku na motivy zmíněné hry a hráč musel přeskakovat propasti, zabíjet nepřátele a sbírat penízky. Přitom se celá hra stále zrychlovala.
Soutěže o cokoli mne nezajímají, protože šance vyhrát je prakticky nulová ať už kvůli nízké pravděpodobnosti, nebo kvůli podvodům a vynaložený čas za to nestojí – sami si položte otázku, kolikrát jste slyšeli a četli o různých super soutěžích, ve kterých nabízí jako výhry počítače, tablety, auta, zájezdy a kdo ví co ještě. A potom zapátrejte v paměti, jestli jste někdy také slyšeli, jestli alespoň kamarád vašeho kamaráda slyšel vyprávět kamaráda, jak prý známý jeho kamaráda něco skutečně hodnotného vyhrál. Řekl bych, že ne. Proto mne maximálně zajímají „soutěže“ typu „když uděláš tohle, dostaneš tohle“. Jakmile je někde nějaké slosování, tak mne to automaticky nezajímá. Je to také nejsnadnější způsob, jak se vyhnout všem podvodům – zkrátka nechci nic, co je mi nabízeno zadarmo, nebo jako výhra. Ale zpátky ke hře.
Hra běžela v internetovém prohlížeči a proto mne hned začalo zajímat, jak ji mají ošetřenou proti cheatování. Z vlastní zkušenosti vím, že je to hodně složité, až nemožné a jde prakticky jen o to, kolik klacků se nahází hackerovi pod nohy, aby ho to přestalo bavit a vzdal to.
Při prvním spuštění hry to po mně chtělo nainstalovat plugin Unity. Sice si teď nejsem jistý, jestli jsem si to nespletl s něčím jiným, ale o tom až později. Takže mne zajímalo, jak hra komunikuje se serverem. Na webu psali, že během hraní se nesmí přerušit serverové spojení, tak jsem si říkal, že to bude vymakanější zpracování.
Nainstaloval jsem si tedy program Wireshark pro sledování síťové komunikace a zjistil jsem, že při spuštění hry se pošle normální http požadavek na server a při ukončení také. Požadavek obsahoval session a pár zakódovaných informací. Nebylo to tedy trvalé připojení během celého hraní.
Dalším krokem bylo zjištění, v čem je ta hra vlastně uložená, jaký formát Unity používá. A v tu chvíli jsem zjistil, že jde o obyčejnou HTML5 hru, která nemá s Unity (respektive s jejím pluginem) nic společného. Takže buď jsem si spletl to, že hra využívá Unity, nebo hru následně vyexportovali do HTML5 verze hry, aby lidé nemuseli instalovat nové pluginy a mohlo si ji zahrát více lidí. Než jsem se totiž od prvního spuštění hry dostal ke zkoumání zdrojových kódů, tak uplynulo několik dní, protože jsem měl jinou práci.
Tím lépe, HTML5 hra znamená, že mám všechno naservírované pod nosem. Nemusím zkoumat síťové packety, ale zkrátka se podívám rovnou do zdrojového javascriptového kódu a budu si dělat co chci.
Zdrojový kód je ale samozřejmě špatně čitelný, protože je minifikovaný (odebrány všechny mezery, nové řádky atd.) a obfuscateovaný (veškeré funkce a proměnné jsou nazvány nesmyslnými jmény). Stručně řečeno, je to nečitelný bordel. Kromě hry také kód obsahuje celý engine a proto je jeho velikost 1 MB, což z toho dělá velký nečitelný bordel.
Takže prvním krokem bylo udělat z nečitelného bordelu o trochu čitelnější bordel. Na to stačí použít například stránky www.jsbeautifier.org, do kterých vložíte velký bordel, který vypadá asi takhle:
if(256>e)_a1>=_Tp&&(this._m9=_a1,_La=this.e(),_a1=this._m9),_La[_a1++]=e;else {_Ka=e-257;_YT=_mY[_Ka];0<_YP[_Ka]&&(_YT+=_TM(this,_YP[_Ka]));e=_ZO(this,_tj);_e1=_Q91[e];0<_mO[e]&&(_e1+=_TM(this,_mO[e]));_a1>=_Tp&&(this._m9=_a1,_La=this.e(),_a1=this._m9);for(;_YT--;)_La[_a1]=_La[_a1++-_e1]}A udělá to z toho trochu čitelnější verzi:
if (256 > e) _a1 >= _Tp && (this._m9 = _a1, _La = this.e(), _a1 = this._m9), _La[_a1++] = e;Tahle čitelnější verze, ve které se už lze mnohem lépe vyznat, měla něco přes 72000 řádků kódu.
else {
_Ka = e - 257;
_YT = _mY[_Ka];
0 < _YP[_Ka] && (_YT += _TM(this, _YP[_Ka]));
e = _ZO(this, _tj);
_e1 = _Q91[e];
0 < _mO[e] && (_e1 += _TM(this, _mO[e]));
_a1 >= _Tp && (this._m9 = _a1, _La = this.e(), _a1 = this._m9);
for (; _YT--;) _La[_a1] = _La[_a1++-_e1]
}
Jelikož se požadavek na server posílal jen na začátku hraní a na konci, vůbec mne nezajímalo co se v něm posílá. Předpokládám, že se díky tomu měří délka hry, případně se posílají počty zmáčknutých tlačítek, případně počet sebraných penízků a provozovatel podle toho může odhadnout nebo přepočítat, jestli skóre bylo možné nahrát – šlo by zjistit, co se tam skutečně posílá, ale jak říkám, nezáleží na tom, protože na skóre (které může být různě ochráněno) jsem vůbec sahat nechtěl.
Nejjednodušší cheat je samozřejmě použití nějakého memory monitoru, ve kterém si člověk nechá vyhledat místo v paměti, kde je uložené skóre a to změní na vlastní hodnotu – ale to může fungovat jen u hodně amatérských projektů a je to lehce odhalitelné, takže tady jsem se o to ani nepokoušel, jelikož jsem si byl jistý, že by tohle snadno rozpoznali (poznají, že hru člověk hrál minutu a přitom nahrál hodinové skóre), protože tohle je první věc, kterou „big haxxoři“ zkouší.
Hru jsem si potřeboval zjednodušit, aby mne prakticky nic nezabíjelo. Potřeboval jsem přežít narážení do zdí a střet s jakýmkoli nepřítelem. Padání do děr jsem musel zachovat, protože kdybych se nezabil, padal bych pořád dolů pod obraz a hra by nikdy neskončila. A já jsem se taky někdy potřeboval zabít a hru skončit.
Takže jak najít ve špatně čitelném kódu místo, které způsobuje smrt, když nabourám do zdi? Stačí si vyhledat text, který se po takové smrti objeví. Texty totiž zkomolené nejsou a jde je normálně přečíst a tedy i vyhledat. Samozřejmě by i tohle šlo vylepšit a zakódovat i texty, ale byl by to jen další klacek pod nohy pro hackera, žádná stoprocentní ochrana.
Jakmile jsem tohle místo našel (otázka jedné vteřiny), stačilo podmínku:
„pokud něco1 je stejné jako něco2, tak udělej něco3, něco4, něco5 a napiš text NABOURAL JSI DO ZDI“
změnit na:
„pokud číslo 1 je stejné jako číslo 2, tak udělej něco3, něco4, něco5 a napiš text NABOURAL JSI DO ZDI“
Je to jen ukázkově vymyšlená podmínka, ale přibližně tak to tam bylo, jen složitější. Kód funguje jednoduše. Pokud se stane, že hodnoty, které jsou v proměnných něco1 a něco2 jsou stejné, tak to hráče zabije a vypíše text, který se mi ukáže při smrti. Hodnoty, parametry nebo funkce jsem tady nazval jako „něco“ a to jednoduše protože skutečně nevím, co to je, co to dělá a hlavně to ani vědět nepotřebuji.
Jediné co potřebuji, je zajistit, aby program nikdy do této podmínky nešel. Takže když změním podmínku na „pokud číslo 1 je stejné jako číslo 2“, tak přesně to se stane. Protože jednička se nikdy nerovná dvojce.
Fajn, teď jsem změnil kód, který mám někde v textovém editoru, ale jak donutím hru, která běží v prohlížeči (Google Chrome), aby použila tuhle mojí změnu? Stačí zmáčknout klávesu F12, která otevře panel pro pomoc s vývojem www stránek. Tam lze najít právě načtený javascriptový soubor, zobrazit ho, udělat stejnou změnu v něm a uložit ho. Samozřejmě tam je kód pořád velmi nečitelný (velký bordel) a tak najít správné místo, upravit ho a neudělat chybu, je o dost nepřehlednější.
Po uložení se hra v prohlížeči na chvilku sekne a jakmile se opět rozjede, tak už používá nově změněný kód. Po spuštění hry můžu vyzkoušet, co se stane, když nabourám do zdi – nic. Nezabije mne to, ale propadnu se pod zem a zabiji se jako když normálně spadnu do propasti. Takže to funguje.
Dalším krokem bylo tedy úplně stejným způsobem vypnout všechny ostatní smrti, aby mne nemohl zabít nepřítel, orel, fretka, mina, ani slon – kterého jsem tam ještě ani neviděl, protože se objevuje až v pozdějších levelech.
Tím jsem osekal hru jen na to, že mne zajímalo jen sbírání penízků a přeskakování děr. Případně jsem si mohl přivydělat skóre zabitím některého z nepřátel, protože oni mi sice nic nedělali, ale já je stále mohl zabíjet.
Přesto ta hra nebyla úplně lehká a přeskakování děr mne stále trápilo. Hlavně se zvyšující se rychlostí se přeskakování komplikovalo a také grafika některých částí docela mate a způsobí, že člověk si myslí, že skála je v pozadí, ale ona je v popředí, člověk do ni nabourá, propadne se a umře.
Tohle všechno by vyřešila změna, která by zařídila, že hráč může skákat kdykoli, tedy i ve vzduchu. Díky tomu se nemusím bát, že někam spadnu a bude se to vlastně podobat létání.
V kódu můžete zamaskovat hodně věcí, ale základní názvy funkcí ne. Takže pokud hráč skáče klávesou šipka nahoru, tak stačí hledat všechny javascripové eventy, které čtou stisky kláves. Což je „keypress“, „keydown“ atd. Nic takového jsem tam nenašel, takže řada byla na eventu „which“. A ano, ten tam použit byl. Sice nebyl použit přímo, ale alespoň vím, s čím se pracuje a jaké hodnoty přijímá.
Dále bylo potřeba zjistit, jaký číselný kód má klávesa šipka nahoru a poté najít, kde v kódu se volá a tím se dostat do části, která zajišťuje skákání hráče. V té části bude totiž podmínka, která dovolí hráči skočit jen když stojí na zemi. A já ji budu chtít přepsat tak, aby si hra myslela, že vždycky stojím na zemi a že tedy kdykoli můžu skákat.
Například na této stránce www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes lze najít seznam kódů všech kláves a šipka nahoru má číslo 38. To je v kódu použito mnohokrát, ale dost pomohlo to, že hráč může skákat také klávesou W a to má kód 87. Poté už jen stačilo hledat buď jen samotné číslo 38, nebo různé varianty jako jsou „= 38“ protože vím, že se bude s něčím porovnávat, nebo „(38)“ protože se bude předávat nějaké funkci, která poté použije výše zmíněný event atd.
Každopádně, stačilo se jen dívat, kdy narazím na kus kódu, ve kterém je číslo 38 a poblíž i 87. Protože podmínka bude samozřejmě znít podobně jako „pokud stisknu šipku nahoru, nebo klávesu W a stojím na zemi tak vyskoč“. A přesně tak to tam bylo – parametrů v podmínce bylo sice více, ale stačilo je všechny smazat a nechat jen „pokud stisknu šipku nahoru, nebo klávesu W tak vyskoč“.
A od té doby jsem měl dokonale hacknutou hru. Bylo mi jedno, co se posílá na server, co si tam měří a počítají. Já jsem si vesele procházel skrz nepřátele, sbíral body, skákal ve vzduchu a měl možnost vždycky umřít, abych to nějak zakončil a také aby nebylo podezřelé, že mám nereálně vysoké skóre.
Tohle řešení mi dalo více zábavy, než samotné hraní hry. Nebýt to soutěžní hra, která by měla být ochráněna proti podvodům, tak se o ni ani nezajímám.
Jak hru zabezpečit aby hacknout nešla
Je tu několik možností, jak takovouhle soutěžní hru ošetřit.- Naházet hodně klacků pod nohy hackerům. Dát jim k dispozici jen zkompilovaný kód, rozhodně ne zdrojáky. Zakódovat všechno co jde, včetně čistých textů. Počítat všechno – počty stisknutých kláves, časy mezi nimi, počty a časy objevení nepřátel, doba hraní a postup ve hře (kvůli zpomalení hry) atd. Nastražit pasti na hackery – například mít detekci smrti dvakrát najednou – jednou, kdy to hráče zabije a podruhé, kdy to nic neudělá, jen si to připočte smrt – hacker potom může vypnout smrt a zdánlivě to přežije, ale provozovatel bude vědět, že to se stát nemohlo. Nebo udělat nepřekonatelný konec, nebo část, která vypadá normálně ale překoná ji jen hacker. Atd.
To je ale špatné řešení. Místo smysluplnějších věcí budete vymýšlet pasti na hackery, kteří to stejně mohou odhalit a nikdy nebudete mít stoprocentní jistotu, jak někoho usvědčit. Krom toho se vám může stát, že usvědčíte nevinného člověka, který se do pasti na hackery dostal omylem, nebo vaší chybou. Často také sofistikované řešení, které jste vymýšleli měsíc, může komplikovat hru poctivým hráčům (náročnost na HW, překážky a bugy ve hře...) a hacker udělá „klik“, kompletně to obejde a pokud vám to neřekne, tak budete žít v blažené nevědomosti, že je hra nehacknutelná.
- Banovat po konci soutěže. Navazuje to tak trochu na první bod. Výhodu to má v tom, že hackerovi nedáte zpětnou vazbu tím, že mu smažete skóre, protože tím mu řeknete „odhalili jsme tě, zkus to znova a lépe, třeba to tentokrát nepoznáme“. Daleko lepší je ho nechat věřit v to, že uspěl a vyřadit ho až na konci soutěže, když už svůj podvod nemůže vylepšit.
To je také špatné řešení, za prvé si nese negativa z prvního bodu a za druhé hackeři potom zaplní první místa v žebříčku a odradí ostatní hráče, kteří vidí, že nemají šanci.
- Hru spustit na serveru a hráč by viděl výsledek jen jako klient. Stejně jako se hrají jakékoli multiplayerové a MMO hry. Je k tomu nutné zachovat generování levelů podle nějakého časového seedu, protože kdyby byl level vždy stejný, tak lze potom i takhle zpracovaná hra hacknout namakrováním všech pohybů dopředu a za hráče potom může hrát program.
Tohle řešení je ale mnohem složitější na výrobu a vyžaduje dobrý ping.
- Během hraní ukládat záznam hry (stisky všech tlačítek) a na konci ho odeslat spolu se skóre. Díky tomu půjde hra přehrát a překontrolovat a pokud takový záznam někdo nahraje na hacknuté hře, záznam se na nehacknuté hře nepřehraje správně a hacker je odhalen.
Tohle řešení je celkem bezpečné, když se zachovají požadavky na server při startu a na konci a zároveň se ze serveru na začátku obdrží vygenerovaný seed, podle kterého se bude generovat level. Ale je složitější na naprogramování, protože se musí zajistit, že se zachová přehratelnost záznamu i když se hráči na chvíli zalaguje počítač, nebo něco podobného. Při přehrávání záznamu tam totiž žádné lagy být nemusí (nebo naopak mohou být jiné v jiných místech) a v takové chvíli se může chování některých věcí ve hře změnit (například výpočet fyziky), i když stisky kláves budou načasovány stejně jako při hraní.
- Nechat vše jak je, ale skóre započítat jen když hráč nahraje přímo video toho, jak rekord nahrál, včetně záběru na klávesnici.
To je nejjednodušší a nejbezpečnější řešení. I tak v něm půjde podvádět, ale jen velice omezeně a složitě a hlavně má největší nevýhodu v tom, že hráč musí odesílat objemné video se záznamem hry, čímž odradíte spoustu hráčů.
Morální úvaha
Jakmile jsem si mohl nahrát jakékoli skóre, měl jsem splněno a tím jsem skončil. Zůstal jsem v polovině první desítky hráčů. Nechtěl jsem jim (provozovateli) hru kazit a honit si ego tím, že nahraji skóre, které bude 10x větší, než je na prvním místě, jen proto abych se jim vysmíval, jak mají mnozí hackeři ve zvyku. Krom toho, já nejsem hacker. Zkrátka jsem si to chtěl zkusit, povedlo se, napsal jsem jim email, ať mne smažou a tím to skončilo.Mimochodem, na email mi nikdo neodpověděl a ani mne nesmazali, ale časem jsem byl ostatními hráči odsunut ze soutěžních pozic. V takovémto případě nezájmu, se spousta hackerů naštve a začnou zveřejňovat postupy, jak danou věc hacknout, jak jsou provozovatelé arogantní atd., zkrátka něco jako „Já jsem jim napsal, že tam mají bezpečnostní díru a oni to neopravili, tak teď jim to hackněte všichni.“. Jako kdyby se je o to otestování na bezpečnost někdo prosil. Proč by měli skákat jak hackeři pískají (i když je to v jejich zájmu)?
Nic takového jsem neudělal, protože si myslím, že mi do toho vůbec nic není a ten kdo tohle dělá, by zasloužil akorát pár facek. Také tenhle článek jsem zveřejnil až po ukončení soutěže, aby nesloužil jako návod k podvádění.
Krom toho, další nedokonalostí je to, že oni ani nemohli zjistit, jestli ten kdo jim píše s žádostí o smazání, jsem skutečně já. Registroval jsem se tam z emailu na www.mailinator.com, ze kterého lze emaily jen přijímat, ne odesílat. Takže pokud je to vůbec zajímalo a četli můj email, mohli si akorát říct „Někdo nám píše, že nahrál podvodem skóre, ale píše z jiného emailu, takže ho stejně nemůžeme smazat, co když si to vymyslel a chce abychom smazali cizího člověka?“. Potom se místo jasného rozdělení hráčů od podvodníků snadno zabředne do bahna, ve kterém není jasné co je a není podvod, ani když se k tomu dotyčný přizná.
Mimochodem, když jsme u těch emailů, tak tohle je taky dost naivní pokus, jak někomu ukrást výhru.
Zajímavá byla ale i jiná věc. A to potom to, co se mi honilo hlavou. Podíval jsem se totiž konečně na cenu, o kterou se soutěží. Konfigurace počítače sice zveřejněna nebyla, ale i tak bylo celkem jasné, že jeho hodnota bude více než pár desítek tisíc korun.
A teď nad čím jsem přemýšlel:
Hmm, nebylo by špatné ho vyhrát. Můj počítač by také snesl upgrade, krom toho dělá strašný kravál. Kdybych sice opravdu chtěl, tak si nový počítač můžu koupit, ale tenhle by byl přece zadarmo.
Musel bych si vytvořit deset účtů a nahrát na nich tak velké skóre, aby mne nikdo neohrozil a poté by se z deseti „já“ vylosoval jeden výherce. Určitě logují ip adresy a prohlížeče atd. Takže bych mohl pár účtů vyřešit u kámošů a i kdybych měl stejnou ip adresu tak co – může to být jako kámoš u mne, nebo někdo z rodiny, nebo můžu soutěžit jako ze školy nebo koleje, kde mají všichni stejné ip. Navíc to je jejich starost, oni to musí rozhodnout, jestli x lidí z jedné ip je jeden člověk nebo více a to zjistit prostě nejde.
Navíc, třeba jim je to úplně jedno. Spousta soutěží se dělá jen pro to, aby se někde získali lajky, návštěvy atd. a provozovatelům vůbec nezáleží na tom, jestli ty lajky a návštěvy jim k něčemu posloužily, hlavně že je to číslo větší. Třeba je to jedna z takových firem, které udělají soutěž kvůli nějakému takovému číslu a je jim putna, jestli to vyhraje někdo poctivě nebo ne. Hlavně že mají vyšší číslo, byť jen po čas té soutěže.
A co když je to stejně podvod? Sám znám některé průběhy soutěží zevnitř, ve kterých ačkoliv se soutěžilo jen o maličkosti, tak nebylo nic výjimečného, když před koncem soutěže přišel zadavatel a chtěl aby se na první místo dosadil někdo jiný – a ten potom vyhrál kšiltovku... A ne, i když šlo jen o kšiltovku, tak to nebyla malá firma, měla pořady i v televizi.
Takže co když je to to samé – ve stylu „uděláme hru a soutěž, ale proč bychom tu cenu dávali někomu cizímu, před koncem tam šoupneme svého syna, nebo známého, ten bude jako náhodou vylosován a nový počítač alespoň zůstane v rodině, lidi jsou stejně zvyklí, že nikdy nic nevyhrají, tak jim to nepřijde divné“.
Nebo minimálně můžu zůstat v žebříčku, nikomu to neříct, nikdo na to nepřijde a pokud by to bylo poctivé a měl jsem štěstí, můžu vyhrát. Šance 1:10 je hodně velká, na rozdíl od ostatních soutěží.
Navíc když jsem to hacknul já, mohl to hacknout kdokoli jiný a nejspíše i hackl. Opravdu bych chtěl vidět na vlastní oči, jak někdo nahraje téměř 500 000 bodů, když při 250 000 je to takový fofr, že se to zdá nemožné. A to je právě ten hlavní problém – mě se to zdá nereálné, provozovateli se to může zdát nereálné, ale nemůže 100% říct, tohle je podvod a tohle podvod není. Může jen odhadovat, jestli to bylo možné nahrát. Potom už jen zbývá uznávat nereálná skóre jen proto, že nelze říct jiný důvod proti, než „skóre se zdá být nereálně velké“. A tak provozovatel potom schvaluje skóre a říká si „tohle nemohl nikdy poctivě nahrát, ale musím to schválit, protože nemám důkazy“.
Takže o co jde, ostatní také hackují, soutěž je stejně určitě podvod nebo jim je jedno zda vyhraje poctivý hráč nebo podvodník, a nebo je také možné, že nakonec opravdu vyhraje jen poctivý hráč.
Jaký mám pro sebe argument, abych si řekl „neudělám to, protože ...“. Ten důvod je jediný: moje čest. A co to vlastně je? Čest je něco, co se nedá koupit, na rozdíl od počítače. Je to něco, o čem vím jen já a největší hodnotu to má jen pro mne, protože ostatní o mé cti většinou nemají ani potuchy.
Má čest vůbec nějaký smysl? Mám sto chutí odpovědět, že nemá. Všude přece všichni kradou, od politiků až po bezdomovce, blbci se smějí chytrým, poctiví hráči si hry koupí a warezáci se jim kvůli tomu vysmějí, cikáni si množí děti jen kvůli přídavkům, válí se doma bez práce a smějí se pracujícím lidem, kdykoli má jakýkoli blb možnost cokoli získat, ukrást, nebo si jen někde vyřvat, tak to udělá a má z toho profit na rozdíl od toho poctivého. Ale z nějakého záhadného důvodu, nelogicky a bez argumentů, se ještě za poslední prst držím nad propastí a tvrdím, že být čestným člověkem je přece to správné. Bohužel za to nemůžete čekat nikdy žádnou odměnu, naopak maximálně tak posměch a můžete nečinně sledovat, jak zástupy nečestných lidí získávají bez práce to, na co se vy hodně nadřete a hlavně za to nejsou nijak potrestáni a vůbec jim jejich jednání nevadí. Podvodník by se za své jednání měl minimálně stydět, bohužel momentálně to vypadá, že se stydí spíš ti poctiví za to, že si na rohlík vydělají peníze a potom si ho koupí, místo aby ho vyžebrali nebo ukradli a mělo ho bez práce hned.
Takže já jsem jiný argument nenašel. To je hodně slabé. A ačkoliv jsem nikdy nechtěl podvádět, utvrdil jsem se v tom, že s tím začínat nebudu. Sám jsem zabezpečoval soutěžní web proti podvodníkům a myslel si o nich to nejhorší, jelikož podváděli, lhali a vysmívali se tomu, když systém obešli. Považoval jsem je za odpad společnosti a tím bych se nerad stal. Smutné mi přijde jen to, že abych se takovým odpadem nestal, tak si v tom bráním jen já sám svým svědomím. A kdybych se tím odpadem stal, tak by se vlastně nic nezměnilo, ani by o tom nikdo nevěděl, maximálně bych si občas něčím přilepšil. To je ten hlavní důvod, proč se mi ke slovu „čestný“ váže tak trochu slovo „hloupý“. Asi za to může celková morálka této země, kterou tady ovládají politici.
Představa, že bych měl doma počítač, na který když se kouknu, tak si připomenu „to jsi dostal za to, že jsi podváděl“, mne zrovna netěší - ale tahle věta mi připadá jako takový ohraný blábol. Myslím, že realita by byla taková, že za měsíc bych se na počítač díval úplně normálně a na nic ohledně podvodů bych si ani nevzdechl.
Je to podobné, jako když si pustíte hru, nahrajete vysoké skóre a poté se chlubíte, co jste dokázali a jste na to hrdí. Když ale to skóre nacheatujete, můžete se s tím chlubit, ale hrdí na to už nebudete. Bohužel je pravda, že mnoha lidem je to naprosto jedno. Jde jim jen o to vysoké skóre, nebo o ten počítač doma. A ani se jim není co divit – vysoké skóre ocení všichni, ale poslední pozici v žebříčku, protože jste jako jediní necheatovali, neocení nikdo – jen vy sami. A to je, jak už jsem psal, hodně slabé ocenění.
Určitě je pravda i to, že je celkem snadné svou čest zahodit a při pohledu na počítač si říct „stejně všichni podvádí a kradou“ a za chvíli si na to ani nevzpomenout. Ale já to prostě nechci. To že to ostatní dělají, neznamená, že to budu dělat taky.
Daleko více jsem ale přemýšlel nad trochu jinou věcí. Co takhle otestovat poctivost provozovatele? Co kdybych skutečně vytvořil deset účtů, dostal se s nimi na prvních deset míst s menším náskokem, aby mne nikdo nepředběhl (maximálně nějaký hacker) a čekat, jestli mne skutečně vylosují a vyhraji, nebo se v poslední minutě náhodou objeví nový hráč, který náhodou zrovna vyhraje. Kdybych vyhrál, nechal bych se vyřadit. Kdyby ne, byl by to jasný podvod.
Ale je to dost práce a navíc tu hru by mohli ještě během soutěžení klidně i zrušit, ale je to skutečně věc, která by mne hodně zajímala. Jestli není o výherci už rozhodnuto.
Každopádně, neudělal jsem nic z toho. Jak už jsem řekl, nechtěl jsem podvádět a ani s tím ztrácet čas. Zajímavé ale bylo, že ačkoliv jsem to udělat nechtěl, tak jsem nad tím přemýšlel a plánoval různé scénáře, jak by to mohlo jít. Je vůbec myšlenka na podvod špatná? A měl bych to tady psát? Neměl bych se radši poplácat po zádech, jak jsem jim to natřel a o všem negativním pomlčet? Z čeho vůbec tyhle myšlenky pocházejí? Z výchovy? Ze samotného člověka? Nepřeprogramovali jsme naše primitivní chování pračlověka, s touhou získat cokoli tím nejsnadnějším způsobem, nějakou umělou morálkou? Co z nás zbyde, když si sundáme všechny naše masky a dovolíme si myslet i na to, na co by se nemělo?
Žádné komentáře:
Okomentovat