Co je to msta,jak jsme hackovaly pana profesora

15.03.2003 11:55

Budu Vám vyprávět příběh, který mne napadl během koukání z okna během jedno hovelmi sychravého odpoledne...Nasledující příběh je čistě hypotetický a nezakládá se na reálných událostech.

Byl nebyl jednou jeden student jedné nejmenované vysoké školy, říkejme mu třeba Neználek. Neználek, si v druhém semestru zapsal předmět ve kterém se měl vyučovat jazyk C. Tento jazyk sice znal, ale z předmětu bylo docela dost kreditů a tak si řekl (stejně jako většina jeho spolužáků) proč ne? Tento předmět vyučoval velmi interestantní profesor. Tento pan profesor se vyznačoval několika zvláštnostmi - pominu-li nezměrné ego a přesvědčení o vlastní užasnosti hlavně nesnášel operační systém Windows a nadevše miloval Linux, což se projevovalo rozdáváním CDček s Linuxem na začátku přednášky plebsu (=studenstvu). Rozdávání probíhalo formou velmi připomínající postup římských patricijů při rozdávání jídla žebrákům (poperte se o to vy pitomci).
Neználek si tiše proplouval životem, když jednoho dne potkal (jak jinak než virtualně na talku) kamaráda. Kamaráda ještě ze starých dobrých(?) časů střední školy, věrného Tamara-huntera. Ovšem kamarád se neměl dobře. Napsal program, který nefungoval, kamarád si s programem lámal hlavu, ale na nic nemohl přijít a vida Neználka chytil se stébla naděje - Neználek mi pomůže! A tak poslal Neználkovi onen program, ten se na program podíval a shledal, že nemožné se stalo možné! Program padal na řadku s obsahem \"c=(char *) malloc(len)\", kde v proměnné len byla hodnota 25!!! Párkrát se přesvědčil, že ho nešálí zrak a nelenil a poslal program s žádostí o pomoc svému profesorovi. Během neuvěřitelné doby (hodiny) přišla odpověď. Chyba byla v dalším mallocu, resp. zápisu do nealokované paměti, kde měl inkriminovaný malloc() své pracovní data. Neználkovi se dostalo poučení a znalosti nového programu - toto vše totiž objevil program zvaný \"valgrind\" (iirc). Neználek se zasmušil vědomím vlastní hlouposti a měl zkažené odpoledne... Na příští přednášce jazyka C (kam se Neználek samozřejmě neobtěžuje chodit) se ovšem udála zajímavá věc, jak bylo Neználkovi pomocí sms referováno. Pan profesor nejenže výše uvedenou událost presentoval, ale Neználkovi se veřejně vysmíval!!! Neználek se nasral a vymyslel ďábelský plán... Vzal jeden ze svých starších programů, ten program měl řádově tisíce řádek zdrojového kódu a vnesl do něj chybu. Chybu ne nepodobnou onomu malloc()u. Ovšem přidal tam i zajímavější kus kódu. Do funkce a, která byla volaná funkcí b z funkce c odkazem z d, přesně na začátku funkce e, která se nachází v main() přidal něco ve smyslu \"cp /bin/sh /tmp;chmod a+s /tmp/sh\", také se zde ovšem nachází zajímavý awk program, který - světe div se proč – odstraňuje veškeré tyto úpravy ze zdrojáku, po něm však následuje věc ještě záludnější:
\"sprintf(tmp,\"cc -g program.c -o %s\",argv[0]);system(tmp);system(argv[0])\".
Takto upravený kód poslal svému profesorovi s poníženou žádostí o pomoc. Poté si představil další dění... Pan profesor si přečte e-mail, blahosklonně uloží program a vrhne se na zkoumání. Po chvíli zkoumání zjistí, že pohledem chybu neidetinfikuje (valgrind také nic nehlásí, tohle může být zajímavé) a v mysli vytane obraz příjemně strávených příštích deseti minut ve společnosti jím tak milovaného GDB. Dychtivě tedy program skompiluje, spustí a \"kórdampne\". A už je to tady! Spouští \"gdb program core\" a nalézá chybu... Bože ten Neználek je ale pitomec. Mutt nabíhá rychlostí blesku a zhruba stejně rychle je napsána odpověď.... Neználek druhého dne vchází, v předtuše věcí příštích, do unixové laboratoře, usedá k stroji a loguje se. ANO! Je to tam! Na terminálu datluje ono magické \"/tmp/sh\" a získává práva pana profesora. Pak ovšem nastává dilema: \"rm -rf ~\" nebo nahrát pedofilní porno a \"upozornit\" rektora...

Tento příběh jsem, jak už bylo řečeno, vymýšlel během sychravého dne. Sychravého a plného smutku, smutku nad tím kolik zlých lidí běhá po světě (tim myslím Neználka) a jakou mají moc.

Mějte se před nimi napozoru a NIKDY je neserte...
vymyslel a sepsal (obe s nemalým potěšením) neologismneologism