De snelklikpromo van Eci.be

Sinds kort staat er op Eci.be een spelletje waarmee je korting kunt krijgen. Hoe sneller je klikt, hoe meer korting:

Dat moest ik toch even onderzoeken.

Na het spelen van een spel, krijg je een code toegestuurd in mail. Die kun je dan gebruiken tijdens de betaling op Eci.be Ik kreeg 3€ korting en mijn code was “snelklik3″. Omdat ik de 3 zag staan in de code, probeerde ik snel even snelklik100, maar dat bleek niet te lukken. Hoogstwaarschijnlijk zijn er maar een beperkt aantal code’s die lukken.

Tijd om even naar de achterliggende code te kijken:

Ok, als je meer dan 40 keer klikt, krijg je code[2]. Wat is code[2]?:

Ah, “snelklik7″ is code[2] !

En volgens de code komt snelklik7 overeen met 7,5€ korting! Dus je kunt maximum 7,5€ korting krijgen.

Dus, iedereen naar Eci.be en krijg 7,5€ korting met de code snelklik7 !

“Het Laatste Nieuws: Belgisch kampioenschap klikken” omzeild

Een maand terug kwam Het Laatste Nieuws af met het Belgisch kampioenschap klikken. Het kwam er op neer om zo vlug mogelijk te klikken.

We nemen even een kijkje achter de schermen van het spel. Het spel is geschreven in Flash/Actionscript. Deze zorgt het grafische gedeelte. Flash draait in de browser, dus de gebruiker is niet afhankelijk van de snelheid van de server. Hij is eerder afhankelijk van de snelheid van z’n eigen pc. Pas op het einde van het spel wordt dan ook de score naar de server gestuurd.

Het grappige aan de implementatie van dit spel, is dat ze de data via een standaard SOAP webservice doorsturen. Met een eenvoudige sniffer als Firebug, kan de SOAP-url teruggevonden worden:
http://klikken.hln.be/klikkenservice.asmx

We zien meteen de methode AddScore(int ScoreValue,  string HASH). Deze doet exact wat we denken dat ze doet. Ze geeft de score door. Uiteraard moet er eerst ingelogd worden, dit kan met de methode LoginUser(string Username, string Password). Dit geeft een object van het type UserInfo terug en deze kan dan gebruikt worden om de methode AddScore() op te roepen. De enige beveiliging die voorzien is de de HASH-waarde bij het toevoegen van de score. Hiervoor moeten we in de broncode van het Flash-spel duiken, met een swf-decompiler zien we hetvolgende:

De hash-waarde bestaat dus uit een concatenatie van de UserID, de score en de GUID.
De score kennen we. De UserID en de GUID zijn twee elementen die terug te vinden zijn in het UserInfo-object.

Het is dus een kwestie van een score te kiezen, in te loggen met LoginUser(), de hash te berekenen en de score naar de server te sturen met AddScore(). Verder zijn er geen beveiligingsmaatregelen zoals tijdscontrole, browsercontrole of dergelijke voorzien!

Andere methodes zoals GetLiveScores() kunnen gebruikt worden om een schatting te krijgen van het aantal spelers die per dag meegedaan hebben met het spel (= de schiftingsvraag die HLN vroeg).

Oja, SOAP webservices kan men heel eenvoudig toevoegen via .NET.. Een automatisatietool schrijven is dus een kwestie van minuten.

Videos van Schooltv.nl’s beeldbank downloaden

Helaas kan ik schooltvdownloader niet meer aanbieden.
Stichting NTR verbiedt mij om de tool nog langer aan te bieden omdat het in strijd is met hun voorwaarden.
Filmpjes mogen enkel gestreamd worden en niet gedownload worden. Technisch is er geen verschil tussen streamen en downloaden. Juridisch helaas wel.
Het was nooit mijn bedoeling om NTR te boycotten, maar om leerkrachten een mogelijkheid te geven om de filmpjes ook te gebruiken waar geen internetverbinding was.
Ik hoop dan ook dat NTR zelf iets onderneemt om het offline bekijken van filmpjes toe te laten.

Toch bedankt iedereen.. het was plezant.
Sam