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

13.6.2017

Japanin muistiinpanoja 1

Luvut
0 = zero/rei
1= Ichi 11 = Jyuu-ichi 200 = Ni-hyaku 2000 = Ni-sen
2 = Ni 12 = Jyuu-ni 300 = San-byaku* 3000 = San-zen*
3 = San 13 = Jyuu-san 400 = Yon-hyaku 4000 = Yon-sen
4 = Yon/Shi 14 = Jyuu-yon 500 = Go-hyaku 5000 = Go-sen
5 = Go 15 = Jyuu-go 600 = Roppuyaku* 6000 = Roku-sen
6 = Roku 20 = Ni-jyuu 700 = Nana-hyaku 7000 = Nana-sen
7 = Nana/Shichi 21 = Ni-jyuu-ichi 800 = Happyaku* 8000 = Hassen*
8 = Hachi 30 = San-jyuu 900 = Kyuu-hyaku 9000 = Kyuu-sen
9 = Kyuu 40 = Yon-jyuu 1000 = Sen/Issen 10  000 = Ichi-man
10 = Jyuu 50 = Go-jyuu 1100 = Issen-hyaku 20  000 = Ni-man
100 = Hyaku 60 = Roku-jyuu 1200 = Issen-ni-hyaku 30  000 = San-man
* = Epäsäännölliset

Päivämäärä Vuosi - Kuukausi - Päivä
1 = Ichi-gatsu = いちがつ Maanantai = Getsu-yoobi Eilen = Kinoo
2 = Ni-gatsu = にがつ Tiistai = Ka-yoobi Tänään = Kyoo
3 = San-gatsu = さんがつ Keskiviikko = Sui-yoobi Huomenna = Ashita
4 = Shi-gatsu = しがつ Torstai = Moku-yoobi
5 = Go-gatsu = ごがつ Perjantai = Kin-yoobi Viime viikolla = Senshuu
6 = Roku-gatsu = ろくがつ Lauantai = Do-yoobi Tällä viikolla = Konshuu
7 = Shichi-gatsu = しちがつ Sunnuntai = Nichi-yoobi Ensi viikolla = Raishuu
8 = Hachi-gatsu = はちがつ
9 = Ku-gatsu = くがつ Viime kuussa = Sengetsu
10 = Juu-gatsu = じゅうがつ Tässä kuussa = Kongetsu
11 = Juu-ichi-gatsu = じゅういちがつ Ensi kuussa = Raigetsu
12 = Juu-ni-gatsu = じゅうにがつ

Kello Paljonko kello on? Ima, nan-ji desu ka?
1:00 = Ichi-ji  7:00 = Shichi-ji* Paljonko kello = nan-ji
2:00 = Ni-ji 8:00 = Hachi-ji a.m. = gozen
3:00 = San-ji 9:00 = Ku-ji* p.m. = gogo
4:00 = Yo-ji* 10:00 = Juu-ji
5:00 = Go-ji 11:00 = Juu-ichi-ji
6:00 = Roku-ji 12:00 = Juu-ni-ji
* = Epäsäännölliset

Hiraganat
Pieni つ kahdentaa seuraavan merkin konsonantin. Paitsi n/m, jolloin ん.
Vokaalit normaalisti paitsi O pidentyy lähes aina う:lla. (muutama poikkeus jolloin o).

Kielioppi wa = は. Esim. watashi wa Tatu desu. わたし Tatu です。

Kielioppia - partikkelit
wa = は = määrittelee keskustelun teeman/aiheen. Koohii wa ikura desu ka?
no = の = jokin on jonkun. Watashi no koohii desu. Kanji no kyoukasho.
wo = を = tulee objektin jälkeen, painottaa/tähdentää. Koohii wo nomimasu.
de = で = määrittelee missä tapahtuu. Uchi de yomimasu.
mo = も = -kin/myös. Watashi mo koohii wo nominasu.

Kielioppia - Kore wa koohii desu ka?
Kore = Tämä tässä Kono = Tämä Kore wa watashi no oishii koohii desu.
Sore = Se siellä Sono = Se Tämä on minun herkullinen kahvini.
Are = Tuo tuolla Ano = Tuo Kono oishii koohii wa watashi no desu.
Dare = kuka Dare no = kenen Tämä herkullinen kahvi on minun.

ja arimasen vaatii substantiivin tai substantiivin korvikkeen eteensä.

Koucha desu ka? Iie, koucha ja arimasen. Koohii desu.

Tässä siis jotain muistiinpanoja blogin täytteeksi :3
Linkki oikein näkyvään pdf tiedostoon: http://files.tatu.moe/japani-muistiinpanot.pdf
--
Tatu Toikkanen

2.3.2017

Pohdinta: Opiskelu yliopistossa

Yliopistossa opiskelu poikkeaa melko tavalla ammattikoulussa opiskeluun, mutta todella paljon yhtenäisyyksiä voi löytää, mutta vertaisin enemmän samankaltaisuuksia löytyy lukiosta. Olen opiskellut ammattikoulussa, lukiossa ja aikuislukiossa, mutta tutkinnon olen suorittanut loppuun vain Jyväskylän ammattiopistossa. Olen siis koulutukseltani ohjelmistotuotannon osaamisalan datanomi.


Samanlaisuuksia toisen asteen opinnoissa yliopisto-opiskeluun on tutkintojen rakenteissa. Molemmissa on melko samankaltainen runko joka koostuu useasta eri tyypistä joita tulee olla tutkinnossa tietyn verran mukana. Pääaineopintoja huomattavasti ja muita opintoja tukemassa osaamista. Valinnanvaraa ja mahdollisuus räätälöidä opinnoista oman näköinen tutkinto on yliopisto-opinnoissa paljon laajempi kun vertaa ammattitutkintoon, mutta ammattikoulussa on mahdollisuus suorittaa omia projekteja ja vapaus oppia tekemisen kautta, joka tuo opintoihin omaa vapautta verrattuna yliopiston teoreettiseen maailmaan.


Yliopisto-opiskelu vaatiin ainakin todella hyvää itsekuria ja vastuuntuntoa, jotta saa suoritettua opintojaan eteenpäin aikataulussa. Tämä käy ilmi viimeistään siinä vaiheessa kun on ensimmäiset kurssit loppusuoralla ja ei ole vielä oppinut tekemään asioita aikataulussa.


Opiskelutekniikat joita itse käytän ovat ehkä jopa hieman erikoiset. Esimerkiksi kun minulla on tehtävänä jokin keskisuuri työ, esimerkiksi vaikka viiden sivun pitkä kirjoitelma, herään sellaisena päivänä jolloin ei ole mitään muuta aikaisin, keitän ison pannullisen kahvia, ja alan työstämään tekstiä kunnes ensimmäinen versio työstä on täysin valmis tai on niin suuri nälkä etten pysty enää keskittymään. Koen oppivani parhaiten ja saavani asiat tehtyä valmiiksi, kun teen niistä suuren osan kerralla keskittyen vain ja ainoastaan yhteen projektiin kerrallaan.

Itselleni opiskelutekniikan perusidea on siis saada se tietty “flow” päälle ja keskittyä yhteen projektiin kerralla. Omia opiskelutekniikoitaan voi kehittää kokeilemalla erilaisten vapaa-ajan projektien kanssa erilaisia juttuja. Hyviä vinkkejä ja tekniikoita löytää varmasti hakukoneella.


- Tatu Toikkanen