Meeting
Het doel van de dag was het inbreken in de systemen van Charlie om geld over te sluizen van hun bankrekeningen.
Tijdens de briefing (die vanwege het slechte weer verplaatst was naar een binnenlocatie, net alsof de hoge bazen van de CIA zelf droog wilden blijven terwijl de agenten mooi tijdens de regen het veld in werden gestuurd) werd ons uitgelegd dat de kabouters die we gisteren bevrijd hadden geinfiltreerd hadden in de basis van de Charlies. Omdat deze kabouters erg klein waren (terwijl de kabouterexperts daar toch anders over dachten) konden ze zonder problemen naar binnen bij het hoofdgebouw en werden we voorzien van een blauwprint van dit gebouw, een zogenaamde geblouwprint. Na de briefing mochten we nog even met zijn allen blijven zitten en zorgde iemand ervoor dat er wat toepasselijke muziek op de achtergrond gedraaid werd, onder andere “Never gonna give you up” en “Theme from Rawhide” passeerden de revue.
Beginpuzzel
Wat we bij de meeting meekregen was eigenlijk vrij simpel: een blaadje met daarop een tinyurl, wat ons doorverwees naar een AES encrypter/decrypter. Ook waren vermeld instructies om de vorige dag gevonden ‘Geheime code’ te gebruiken als crypted data, en regel 13 van het reglement als key. Helaas bleken na een hoop geprobeer en gevloek twee dingen: de online tool gaf geen feedback wanneer corrupte data werd ingevoerd, en waren hadden de vorige dag niet geheel zorgvuldig geweest in het noteren van de geheime code. Na deze uiteindelijk maar volledig opnieuw van de fotos te reproduceren (het zoeken naar fouten in deze toch vrij kleine tekst had ook al niet veel succes) kregen we de oorspronkelijke data terug: een link naar de website charliecharliecharlie.nl/geheim.
Puzzel 1: Vroegah had je geen meters
Op de website waren eigenlijk maar twee interressante elementen te vinden: de subpaginas ‘bankzaken’ en ‘system admins’. We hebben even door de website source gespit, maar het enige wat daaraan opviel was dat de div met id container nooit werd afgesloten. Gelukkig werd dit na het melden bij de orga prompt rechtgezet, en hoefden we er verder niets achter te zoeken. Het onderdeel ‘bankzaken’ werd, bleek, als puzzel 3 bestempeld, en zullen we dus ook later pas behandelen.
Het onderdeel ‘system admins’ bood ons interressante informatie die we waarschijnlijk nodig zouden hebben om Charlies operatie te doen instorten.
Charlie internetbankieren wordt bewaakt door de allerbeste system admins die elke transactie controleren. De locatie van de dienstdoende admins zijn te vinden met de volgende puzzel.
Men neme 15 palm (geen grote, geen kleine, maar een engelse). Tel er een lokale el bij op waarna het geheel gedeeld wordt door 100 barleycorn stukjes. Herhaal dit negen keer. Nu komt het belangrijkste deel: Neem 1/10e van een sheppey (pittoreske schapen zijn zeer belangrijk!) en trek de wortel van 1/30e van een virgate ervan af. Haal van dit totaal het vorige gedrocht af en je bent er!
Het doel hiervan leek duidelijk: zoek de maten op, converteer dit naar een gemeenschappelijke eenheid, gezien de titel waaschijnlijk een meter, voer het rekensommetje uit en zoek de locatie op.
Helaas bleek dit allemaal niet zo makkelijk gezegd als gedaan: niet alleen bleken er voor elke eenheid vaak meerdere definities te zijn (al hintte de puzzel over het algemeen vrij duidelijk naar de juiste), ook kwamen wij keer op keer uit op het getal 59 (Mondriaan), waar dit, zo bleek, 58 (Sleutel) had moeten zijn. Waarom dit nou precies zo is zullen we helaas nooit te weten komen, maar gelukkig hadden we de wijsheid om, ondanks eerdere gefaalde pogingen, ook urenlang door te blijven zoeken bij antwoorden die in de buurt van onze oplossing lagen.
Dit verhaal kreeg zelfs nog een mooi staartje, doordat we zelfs al een hint voor de puzzel aangevraagd hadden toen we hem eenmaal vonden. Gelukkig was de orga bereid om de hint-aanvraag in te trekken aangezien deze nog niet beantwoord was, waarvoor we ze eeuwig dankbaar zullen zijn.
Puzzel 2: Pandora’s heir is still looking for his code
Puzzel twee was duidelijk een knipoog (of, voor sommigen van ons, een steek onder water), naar een set puzzels van de twee voorgaande jaren. In 2010 (Pandora’s heir) werd de klassieke pigpen-codering gebruikt in de aankondigingen. Deze werd gevolgd door een puzzel waarbij dezelfde tekens gebruikt werden, maar hier ineens als betekenis hadden een bepaald pad door een grid te volgen. In 2011 (Pizzer-ia) werd dit gevolgd door een puzzel waarbij deze zelfde tekens gebruikt werden om de toetsen op een ‘ouderwetse’ mobiele telefoon (zoeen die het wel gewoon doet) weer te geven. Dit jaar werd de traditie trouw voortgezet in de vorm van twee puzzels die naast elkaar stonden.
De eerste puzzel was redelijk straightforward. We hebben hier uiteraard eerst een half uur gespendeerd aan het proberen van alle mogelijke pig-pen varianten en mobiele telefoons, maar dit leidde tot niets. Uiteindelijk kwamen we tot de ontdekking dat het ook heel mooi over de numpad van je toetsenbord te leggen valt, en dan kwamen de bekende 52 en 6 van de gps-coordinaten weer te voorschijn.
De tweede puzzel bleek uitdagender. Voor ons zelfs zo uitdagend, dat we uiteindelijk ten einde raad een hint aanvroegen:
linker deel zijn coordinaten die verwijzen naar puzzel ‘sysadmin’
We vermoeden dat het geen woord is, maar een getal. De bovenste regel zou overeen kunnen komen met 52.2 (gps), waarbij de onderste kan beginnen met 6.8. Dit vermoeden wordt voornamelijk gevoed door het ontbreken van een windrichting.
We hebben geprobeerd om puzzel 1 over puzzel 2 te “vouwen”; hier kwam geen zinnig plaatje uit.
We hebben de mason/pig pen code gebruikt om er letters van te maken, hiermee kwamen we ook niet verder. We hebben bedacht waar we deze reeks op konden “leggen”: toetsenborden, game controllers, etcetera.
We hebben in photoshop de plaatjes over elkaar heengelegd. en puzzel 2 over zichzelf heengelegd. Dit leverde ook niks op.
We zijn nu compleet zonder ideeen en vragen ons af in welke richting we moeten denken.
We hebben nog gekeken of we de lijntjes aan bits kunnen knopen (met 5, 2, 6 en 8), maar dat liep ook nergens op uit.
Prompt kregen we het antwoord:
Hallo Rolstruik,
Zoals ik kan lezen in de eerste regel van jullie beschrijving zijn jullie inderdaad op de goede weg. Blijf in die richting denken en probeer erachter te komen wat de puntjes betekenen.
Groet,
Daan Rop
Omdat het inmiddels 7:13 in de ochtend was en we er eigenlijk wel een beetje doorheen zaten, hebben we vrij snel de orga teruggebeld met de mededeling dat we dit natuurlijk allang geprobeerd hadden, en de intentie meer informatie uit ze te trekken. Dit is uiteindelijk na een paar keer bellen en meer (voor ons op dat moment) vage hints krijgen duidelijk geworden: de puzzel werkte op dezelfde manier als de eerste, waarbij de punt betekende dat de bewuste toets ingedrukt moest worden met de numlock uitgeschakeld, waarmee het ineens een home-, end- of pijltjesfunctie kreeg. Hiermee bleek ook dat we ons blind gestaard hadden op de ‘5225’, deze werd simpelweg verderop in de sequence toegevoegd.
De orga heeft geprobeerd ons uit te leggen wat het ene afwijkende teken moet betekenen, het zo een insert of delete moeten zijn ofzo. Nouja, we hadden hem niet nodig.
Locatie sysadmins
Na het volgen van de twee locaties uit puzzel 2 kregen we twee nieuwe locaties gepresenteerd, hoefden we niet eens voor te puzzelen!
Bij de drakenkelder hing een briefje dat de sysadmin was gaan slapen. Mooi, dan zit die ons niet meer in de weg bij het inbreken in de banksystemen.
Bij Box 128 konden we, omdat we de rest van de puzzels al gehad hadden, meteen langsgaan. Omdat we te moe waren vergaten we echter in eerste instantie de sysadmin afdoende af te leiden, en moesten we terug. Daarover later meer.
Puzzel 3: bankzaken
Aan deze puzzel begonnen we eigenlijk aan het begin van de avond al, omdat deze ook op de geheime Charlie-website te vinden was. Het bankzaken-systeem had namelijk een handige feature om verloren gebruikersnamen en wachtwoorden op te vragen. Score! Helaas: voor het opvragen van de username hadden we de volledige naam van een gebruiker nodig. Gelukkig had de CIA ons van uitstekende intel voorzien, zodat we de volledige naam van een gebruiker hadden, de hoofdbaas zelfs: Charles Reed. Deze naam werd gelukkig herkend, en er kwam een vreemd stuk tekst uit rollen, met daarboven de titel “typeof NaN === “number”:
((![]+/*******/[])[+!+[]]+(![]+[/************/])[!+[]+!/***/+[]+!/********/+[]]+([][(![]/********************/+[])[/***/+[]]/*********/+([![]]+[][/********/[]])[+/********/!+[/***/]+[/**********/+[]]]+(![]/********/+[])[!+[/********/]+/***/!+/****//*****/[]]+(!+[]+/********/[])[+[]]/********/+(/***/!+[]+[])/*****/[!+[]+!+[]/********/+!+[]]+(/********/!+/***/[]+[])[+/*****/!+[]]]+[])/********/[!+[]+!+/********/[]/***/+!+[]]+(/*****/[![]]+[][[/********/]])[+!+[/********/]+/***/[+[]]]+(/*****/[![]]+[][[/********/]])[+!+[/********/]+/***/[+[]]]+(/*****/![]+[])[+!/********/+[]]+(!!/********/[]/***/+[])[+!+/*****/[]]+(!![]+/********/[])[+[]]/********/)+/***/(((!+[]+/*****/!+[])+(+[]/********/))*((!+[/********/]+/***//*********************/!+[/********/]+!+[]/********/)+(/***//*********************/+[]))/********************/*((+!/***//*********************/+[]+[+[]]/************/)))/*********/
Dit lijkt een stuk code, en de titel was een vrije sterke hint naar javascript. Domweg laten uitvoeren met een alert-statement eromheen, gaf ook resultaat: ‘asciiart60’. De volgende stap was dus wel duidelijk: line-wrappen op 60 tekens. Dat gaf het volgende zeer fraaie resultaat:
((![]+/*******/[])[+!+[]]+(![]+[/************/])[!+[]+!/***/ +[]+!/********/+[]]+([][(![]/********************/+[])[/***/ +[]]/*********/+([![]]+[][/********/[]])[+/********/!+[/***/ ]+[/**********/+[]]]+(![]/********/+[])[!+[/********/]+/***/ !+/****//*****/[]]+(!+[]+/********/[])[+[]]/********/+(/***/ !+[]+[])/*****/[!+[]+!+[]/********/+!+[]]+(/********/!+/***/ []+[])[+/*****/!+[]]]+[])/********/[!+[]+!+/********/[]/***/ +!+[]]+(/*****/[![]]+[][[/********/]])[+!+[/********/]+/***/ [+[]]]+(/*****/[![]]+[][[/********/]])[+!+[/********/]+/***/ [+[]]]+(/*****/![]+[])[+!/********/+[]]+(!!/********/[]/***/ +[])[+!+/*****/[]]+(!![]+/********/[])[+[]]/********/)+/***/ (((!+[]+/*****/!+[])+(+[]/********/))*((!+[/********/]+/***/ /*********************/!+[/********/]+!+[]/********/)+(/***/ /*********************/+[]))/********************/*((+!/***/ /*********************/+[]+[+[]]/************/)))/*********/
Puzzel 4: Google is je vriend
Deze puzzel was redelijk simpel. De titel duidde erop dat je op google maps moest zoeken naar iets wat op de afbeelding leek. Het enige wat hiervoor in aanmerking kwam waren de tennisvelden direct naast de hunkerbunker.
Puzzel 5: Base
Bij de tennisvelden vonlden we de volgende puzzel. Het bestond uit een hexadecimaal-lijkende string, maar daarachter klein het getal 16. Gezamelijk met de titel deed dit toch wel vermoeden dat dit een base16-getal was. Het eerste wat we deden was dan ook de grote vrienden van http://www.digitconvert.com/ gebruiken om het te converteren naar over 9000 andere bases. Hierbij viel meteen op dat het in base36 de tekst ‘PARKJETENZSPCGMV3G2EAPXGXNFNK’ werd. Dit kon natuurlijk geen toeval zijn, maar de spiegel heeft niet echt een parkje aan het zuiden.
We gingen toch maar even kijken, maar we hebben daar niks gevonden. Na een minuut of 20 zoeken hebben we toch maar eens de orga gebeld met de stand van zaken, en het verzoek ons te vertellen of deze tekst niet gewoon een puur toeval was wat ze over het hoofd hadden gezien, want dan konden we tenminste lekker verder puzzelen. Na een erg doorweekt kwartiertje (alle regen voor de hele week kwam even voorbij) kregen we een reactie: de puzzel klopte inderdaad niet, en we hadden bij het parkje ten zuiden van het Paviljoen uit moeten komen.
Hier bleek gelukkig wel iets te liggen, in de bak van het boompje wat in het parkje ongeveer het meest in het midden stond, precies zoals het hoorde.
De juiste oplossing had waarschijnlijk moeten zijn: “PARKJETENZUIDENVANFACULTYCLUB”. Op het moment dat je dit op de door ons gebruikte website invoert als base36, en daarna klikt op base33, en daarna op base32, komt in het veldje van base36 opeens de uitkomst te staan die wij ook verkregen hebben. Blijkbaar had de orga dezelfde website gevonden als wij, en is die website gewoon buggy.
Puzzel 6: It’s all in the abbreviation
De puzzel die we hier vonden was was wederom een rebus. Opvallend hierbij was dat het eerste en het tweede plaatje gelijk waren, en dat de titel iets hintte over afkortingen. Maar van de plaatjes (een ark en een pot honing) konden we geen afkortingen bedenken. De tekst “-ey” onder de honingpot gaf echter aan dat we hem in het Engels moesten interpreten. De uitkomst hiervan zou dan “Dark arc hon” zijn, niet echt iets waar we chocola van konden maken. Dit hebben we maar ingetypt op Google, die aangaf dat de uitkomst eigenlijk “Dark archon” had moeten zijn, een karakter uit het spel StarCraft. StarCraft wordt afgekort met “SC”, en dat stond natuurlijk voor het SportCentrum. Terwijl op de achtergrond het serene geluid van een ontruiming van het sportcentrum klonk, met daarrbij de mededeling dat we de lift niet mochten gebruiken, vonden we verstopt achter een natte struik de volgende puzzel.
Puzzel 7: Gouden getal
Bij het sportcentrum hebben we flink wat tijd moeten besteden aan het fotograferen van de puzzel. De puzzel bestond uit een ontzettend groot blok met cijfertjes en aangezien het donker was moesten we flitsen en gaf dat telkens flinke reflectie waardoor er op elke foto wel een stuk was dat niet te lezen viel. We hebben direct de orga maar gebeld met de vraag of het eht niet de bedoeling was dat dit een meeneemplaatje was, of dat we een digitale versie konden krijgen. Hierin wilde de organisatie niet meegaan, dus aan de hand van een grote stapel foto’s moesten we de gegevens maar reproduceren. Hierbij viel op dat op de tweede regel het getal pi bleek te staan, maar dan toch niet helemaal. Daarnaast was de derde regel voor een groot deel gelijk aan phi, en stonden er op een willekeurig ogende plek ook twee puntjes. Het enige aanknopingspunt dat we verder hadden was de titel “Gouden getal”, maar verwees die naar de Gulden Snede, of naar het Gouden Getal van jaartallen? We konden er in ieder geval niets mee.
Uit pure wanhoop zijn we maar begonnen met het overtypen van de getallen in de hoop dat er in digitale vorm meer logica (daar hing niets) in te ontdekken viel. Er kwamen wat stukjes in voor die zichzelf herhaalden enwat stukjes die ook in spiegelbeeld voorkwamen, maar hier kregen we ook niets nuttigs uit. Het markeren van alle losse getallen gaf ook geen ASCII-art. Gelukkig kwam er afleiding, de mensen van Charlie kwamen namelijk langs om de brandveiligheid in ons hoofdkwartier te inspecteren op het gebied van brandveiligheid. Gelukkig waren we hier totaal op voorbereid, de douche kon ook als brandslang worden gebruikt en hing op een hoogte waar je er makkelijk bij kon als je in paniek met je handen in de lucht die kant op rende, de betonschaar stond klaar om eventuele obstakels onschadelijk te maken en de nooduitgangen stonden vast op een kier zodat je in geval van nood snel naar buiten kon. Dit was voor de Charlies niet genoeg, ze wilden namelijk vermaakt worden. Met wat printjes met de tekst van ons levenslied hebben we ze laten genieten van beeldschone muziek over mensen die nooit op zouden geven en nooit toetjes zouden maken van anderen. Ze waren totaal flabbergasted, zoveel muzikaal talent hadden ze nog nooit eerder gehoord en prompt werd ons een platencontract aangeboden dat tevens dienst deed als bonuspuzzel. Ons teamlid Rick heeft dit contract ondertekend, maar helaas wachten we nog steeds op het bericht dat de opnames gaan beginnen. Zouden ze ons soms vergeten zijn?
Na dit muzikale intermezzo was het tijd om verder te puzzelen met de nummertjes. Inmiddels volgde ook een mail met daarin de opmerking dat de puzzel die opgehangen was niet klopte, waarbij een nieuwe versie was toegevoegd. Helaas nog steeds als plaatje, maar dit keer waren we wel van het probleem van de flits af en hadden we iets dat wel door een OCR kon. Dit hebben we met enkele verschillende softwarepakketten gedaan, om ook hier de fouten uit te kunnen halen. Helaas leverde dit geen informatie op over wat we met de puzzel zouden kunnen doen. Na nog langer staren besloten we maar dat het tijd werd om een hulpkreet naar de orga te sturen.
We hebben de gehele reeks overgetikt. Het is ons opgevallen dat er 3 punten in de reeks staan.
De 2e regel komt redelijk overeen met pi (rond de 50 tekens). De 3e regel heeft een aardige overeenkomst met de gulden ratio. Voor de rest valt het ons op dat bepaalde reeksen (5 lang) zich af en toe herhalen, maar hier halen we ook geen patroon uit.
We hebben de regels dus als losse regels bekeken en de serie als geheel.
We verwachten dat de 3.14 bedoeld is als representatie van pi en dat we de 2 losse punten verderop nodig hebben als oplossing voor deze puzzel.
We hebben gekeken of de gulden ratio voorkwam in de reeks, bijvoorbeeld tussen rijen of tussen delen van rijen. Dit leverde ook niks op.
We hebben een verschil van deze reeks genomen met pi, wat ons ook niet verder bracht.
We hebben geprobeerd om de reeks getallen op een telefoon in te tikken, alsof het t9 is. Dit werkte ook niet.
We hebben groepjes van 2 getallen, die vaak voorkwamen bekeken en gekeken of hier een patroon in zat.
We hebben gekeken of we figuurtjes zagen ontstaan als we alle 1en, 2en, etc. pakten.
We zien dat er een flinke overeenkomst is tussen de eerste en de 3e rij (rond de 30 getallen).
Nu zijn onze ideeen op. Mogen we een hint?
Uit het antwoord van de orga bleek dat we toch gebruik moesten maken van het getal phi (dus de titel had eigenlijk gewoon Gulden Snede moeten zijn), en na wat doorvragen bleek dat we dit getal moesten volgen op het papier. Dit kon vanaf twee plaatsen, maar slechts vanaf 1 plaats ging dit na meer dan 20 decimalen nog goed. Al snel vormde zich een K op het papier en keken we op de lijst met gebouwen welke afkortingen er met een K begonnen. Dit waren Kleinhorst (KH) en Keet (KT), waarbij de windrichting al wel verraadde dat het waarschijnijk Keet zou moeten zijn. Agent Barrel ging op weg en de rest van het rolstruikgewas bleef de puzzel opmaken. Onderweg ging de telefoon van Barrel, de uitkomst was inderdaad Keet. Inmiddels was de vrijdag al lang en breed begonnen en waren er al mensen bij Keet aan het werk, waardoor het wat moeite kostte om de zuidkant te bereiken zonder rare vragen te ontvangen. Hier werd inderdaad de volgende puzzel gevonden. en intussen werd de oplossing een klein beetje bijgewerkt om onze mening over de tijd dat we met deze puzzel kwijt zijn geweest te illustreren.
Mededeling: Inlognaam
Bij Keet hing geen puzzel, maar een mededeling. “De inlognaam voor de site is: Charliezard73”. Het was duidelijk dat we weer verder mochten met het tentoonspreiden van onze 1337 h4xx0r sk1llzzz op de website van de vijand. Met deze inlognaam konden we mogelijk weer een stapje verder komen, nu konden we namelijk het formulier gebruiken voor als iemand een wachtwoord vergeten is. Helaas bleef dit formulier de melding geven dat onze inlognaam niet klopte, en na dit 9001 keer gecontroleerd te hebben kwam Duck op het idee om het toch maar eens met een kleine letter te typen, en dat werkte wel. Hier volgde een geheime vraag, we moesten uit onze intel achterhalen hoe de hond van Charles Reed heet. Dit bleek echter niet in de datasheet die we inmiddels achterhaald hadden te staan, en ook alle andere namen die hierin voorkwamen bleken niet te werken. Gelukkig was er ook nog een blueprint van het hoofdkwartier van Charlie, waarop de locatie van “Dozer’s kennel” stond. Het proberen van de naam Dozer leverde ons de volgende boodschap op:
Je wachtwoord is: “worlddomination123”
Hiermee konden we inloggen op de site, en kwamen we terecht bij de bankrekening van Charlie. Het was duidelijk dat al veel studenten en verenigingen afgeperst waren door deze onderdrukkers, het saldo hierop was maar liefst 100 miljoen miljard euro en 42 eurocent. Gelukkig hadden we in onze mail een rekeningnummer ontvangen waar het geld heen moest, en snel probeerden we de 9000 euro waar de CIA om gevraagd had over te sluizen naar het rekeningnummer van onze opdrachtgevers. Helaas bleken er nog wat sysadmins te zijn die dag en nacht de transacties van deze rekening in de gaten hielden en de transacties die ze niet herkenden afbraken. Gelukkig wisten we van het bestaan van twee van deze sysadmins af. De ene hiervan was nog steeds aan het slapen, dus hoefde er maar 1 persoon bezig gehouden te worden. Voorzien van afluisterapparatuur, een zak spekjes en een afdruk van een foto van de cijferbrij trokken agenten Barrel en Rollade naar het kantoor van een nietsvermoedende sysadmin. Op het moment dat deze sysadmin naar buiten liep kreeg agent Duck een seintje dat de transactie mocht beginnen. Drie minuten lang mochten Barrel en Rollade de sysadmin aan de praat houden over het probleem dat de techniek van tegenwoordig nog steeds niet zo ver was dat we foto’s konden maken in de nacht zonder flitser te gebruiken , terwijl Duck zat te kijken naar een langzaam vorderend balkje. Eindelijk lukte de overdracht, en Barrel en Rollade konden weer naar huis toe rollen. Dag 4 was officieel afgerond.
De volgende dingen hebben we al bedacht:
‘zuid en oost’ zou zuidhorst en oosthorst kunnen zijn. De kluis zou dan de binnenplaats tussen zuidhorst en buitenhorst kunnen zijn, maar daar kan je niet bijkomen.
Wat betreft een of meer punten, we vermoeden dat we op 1 punt voor de hele puzzel uit moeten komen, maar dat zouden er ook twee kunnen zijn.
‘Een punt in het holst van de nacht’ zou het Seinhuis kunnen zijn.
‘het oosterijk gebouw’ zou chalet kunnen zijn, het niet-oosterijkgebouw misschien blokhutten.
‘Rara is R in arg.’ -> ararag. Arago? die zitten in Carre (misschien de datum 11-5-2012 om aan te geven dat het om Carre gaat en niet Hogekamp.
We hebben geprobeerd lijnen tussen deze 4 punten te trekken, maar dat komt ook nergens op uit.
We hebben ten noorden van de blokhutten, zuidhorst, garage (ararag omgekeerd) en het seinhuis al bekeken, maar daar niets gevonden.