14.11.2017

StayFocused: Löysät pois Hartwallin kampanjasta

ED energiajuomalla oli kampanja 4.9.2017 - 5.11.2017, jossa pelaamalla Emoji Games GmbH:lta ostettua brändättyä* selainpeliä pelaamalla pystyi voittamaan palkintoja.

Vahinko vain että peli oli toteutettu siten, että siinä oli mahdollista huijata todella helposti esimerkiksi perinteistä "joka jonnen työkalua" Cheat Enginea käyttämällä.

*Pelin tekstuurit vaihdetaan pelin tilaajan omiin, mutta toiminnallisuus yms. pysyy samana.


Palkinnot

Päivän paras: 25€ arvoinen lahjakortti Jimm’s PC Storeen
Viikon paras: Xbox One S 1TB
Kaikkien aikojen paras: HyperX Cloud Revolver S -pelikuulokkeet

Lisäksi oli erilaisia arvontoja ja lisäpalkintoja, mukaanlukien pääarvonta Oculus Rift VR-lasit.



Peli pelattuna hidastusta hyväksikäyttäen


Pelissä on tarkoituksena edetä liikkuvia laattoja pitkin väistellen tai tuhoten vastaantulevia vihollisia. Vihollisten tuhoamisesta ja pulloista saa pisteitä ja eniten pisteitä kerännyt voittaa.
Pelissä lasketaan pisteiden lisäksi aikaa ja laattojen nopeus kasvaa ensimmäiset 200 pistettä.

Peli on tehty Construct 2 pelimoottorilla ja se pyörii selaimessa JavaScript ohjelmointikielellä. Tämä tarkoittaa siis sitä, että peli ja sen toiminnallisuudet pyörivät tietokoneellasi eikä palvelimella, mikä tarkoittaa taas sitä että pystyt manipuloimaan peliä.

Tutkin pelin tiedostoja jotka pyörivät selaimessani, mutta koska koodi oli "minifioitu" ja muutettu spagetiksi, sen tulkinta oli todella työlästä. Pisteiden laskeminen ja lähettäminen palvelimelle oli myös salattu RSA:lla ja siihen liittyi paljon tarkistuksia joten siirryin toiseen lähestymistapaan.

Skannailin peliä Cheat Enginellä ilman tuloksia joten kokeilin ohjelmaan rakennettua Speed Hack:iä mikä toimi täydellisesti. Cheat Enginen Speed Hack toimii siten, että ohjelman injektoiduttua kohteeseen se muuttaa kohteen sen hetkistä aikaa tietyllä kaavalla, siten pystyn hidastamaan tai nopeuttamaan ohjelman kelloa ja siten myös itse ohjelmaa.
Koska pääkohteena oli selainpeli oli Cheat Enginen kohteena itse selain.

Helpointa oli aloittaa pelaaminen 0.8 nopeudella ja siitä sitten siirtyä ensin 0.6, 0.4, 0.3 ja lopulta 0.2 jos halusi pelata todella rennosti. Lopussa pelasin siis peliä vain 20 prosentilla pelin alkuperäisestä nopeudesta. Mutta jos pelaa niin hitaalla nopeudella, niin eikö 10 minuutin normaalin nopeuden tuloksiin mene aikaa jo 50 minuuttia? Eikö kukaan huomaa listaa katsoessa huomattavasti suurempaa aikaa? Ei. Koska laskenta tapahtuu pelaajan koneella, niin myös ajan laskeminen. Tämä huijaus on kyllä todella helppo estää jos vain haluaa, mutta siitä lisää lopussa. Pelin hidastaminen toimi muuten paremmin Firefoxilla kuin Chromella jolla peli tuntui hieman tökkivän.

Vaikka voittaminen onnistui jo edellä mainituilla keinoilla, päätin silti jatkaa tutkimista ja ohjelmoin Pythonilla "tekoälyn" pelaamaan peliä puolestani. Tämä oli todella helppoa sillä pelissä on vain yksi tavoite: Etene laatoilla, klikkaa kerran laattaa ja kaksi kertaa vihollista.



Python botti pelaamassa hidastettua versiota

Ohjelma ottaa tietyn väliajoin kuvan ruudun määritetyistä kohdista ja tulkitsee värien perusteella mitä missäkin on. Sen jälkeen se joko klikkaa kerran tai kaksi ja siten etenee.

Kampanjan peli oli helpon huijattavuuden lisäksi buginen ja välillä se loin näkymättömiä laattoja ja vihollisia. Pelin pystyi myös laittamaan tauolle pienentämällä ikkunan tai valitsemalla muun ikkunan aktiiviseksi.

Mutta miten pelissä huijaamisen pystyisi estämään? Speed Hack tapauksessa helposti:
Ota palvelimella aikaleima pelin alkaessa ja pelin päättyessä. Vertaa aikaleimoja niin saat todellisen keston. Jos pelaajan kesto ja palvelimen kesto poikkeavat huomattavasti, niin pelaaja saattaa huijata. Tuota botin koodaamista on hankalampi estää, mutta sitäkin voi vaikeuttaa pienillä nikseillä ja tuomalla peliin hieman monimutkaisuutta.

Kaiken kaikkiaan kampanja olisi ollut toimivampi hieman suuremmalla panostuksella.
Aina ei selvästikkään kannata ottaa halvinta vaan tehdä yhteistyötä esimerkiksi suomalaisten yritysten kanssa ja vaatia laatua ja tukea teknisissä asioissa.

Muutenhan tälläinen Supah-L33t-H4x0R tulee ja vie pari Xboxia ja kasan lahjakortteja :3

Joku Ub3rH4x0R voitti sit pari Xboxia :O

Huom. En ollut selvästikkään ainoa joka huomasi tämän kampanjan mahdollisuudet.

Hyvänä esimerkkinä koko kilpailun suurimmat pisteet saanut sai tunnuksensa ensimmäisellä pelillä parhaat pisteet n. 30 minuuttia ennen kilpailun päättymistä. Pistää miettimään...



-- Tatu Toikkanen