A napokban kezembe akadt egy érdekes cikk. A google-hez hasonlóan más cégek is készítenek olyan felvételi teszteket, melyeket programozóknak, informatikusoknak szánnak. Az álláshirdetés lényegében egy kód, rejtvény, melyet megfejtve jelentkezhetünk az állásra, és ha sikerrel vesszük az első akadályt akkor az első alapkövetelménynek már meg is feleltünk.
Nos, az angol Angol Kormányzati Kommunikációs Ügynökségnek (GCHQ) is van egy ilyen álláshirdetése. Igaz, nem Mi5 vagy CIA, de ők is benne vannak a klubban. 🙂
Lássuk a rejtvényt, és törjük fel!
A rejtvény: http://www.canyoucrackit.co.uk
A leírt megoldással a háromlépéses feladvány első részét tudjuk megoldani. 😛
Ezekre lesz szükségünk:
- NASM
- Cygwin w/ és DLL
- GDB
- Hex Editor
- Nyelvismeret(C/C++ or Python)
- Objdump
- Sok türelem, és egy finom kávé
Első lépésként a weboldalon található hexadecimális kódot gépeljük be egy fájlba, vagy valamilyen OCR segítségével olvastassuk be, ha igazán lusták vagyunk. Az így begépelt kódot aztán mentsük el egy hexeditor segítségével. Majd mentsük le a kódót ábrázoló képet, mert maga a cyber.png kép is tartalmaz egy base64 kódsorozatot. A lementett PNG-ben keressük meg a hexaeditor segítségével ezt a kulcsszót: iTXtComment
A base64 kód vége ‘==‘ lesz, mentsük ezt a kódot és a begépelt/olvastatott kódot egy bináris fájlba.
Futtassuk rá az Objdump-ot ezzel a parancsal: objdump -d -D -b binary -mi386 crackme.bin
Majd nyissuk meg a debuggerünket (gdb) és állítsuk be a töréspontot az INT 0 × 80 CALL-ra. Amikor eléri a töréspontot, használd a gdb parancsot „bt” (ami megmutatja a tárolót).
A dekódolt szöveg lesz látható:
GET / HTTP/1.1 15b436de1f9107f3778aad525e5d0b20.js
Nyissuk meg egy böngészőben a 15b436de1f9107f3778aad525e5d0b20.js kikódólt linkünket, és nekiláthatunk a második feladatnak. 🙂
Szerintem most meg lehet inni a kávét, mert innentől már nehezebb lesz… 🙂
Sok sikert a továbbfejtéshez.
A cikk írásakor még 7 nap volt vissza a határidőig. 🙂