Hacker
                                   -=-=-=-=

                       Thus spake the master programmer:

    "When you have learned to snatch the error code from the trap frame, it
                        will be time for you to leave."

                  -- Geoffrey James, "The Tao of Programming"

          K napsání   tohoto   článku   me  přiměla   následující   reakce
      nejmenovaného pana X:

          - Pokud potřebujete levně WWW a gateway, je asi nejlepší Linux
          - Linux ..... to je ten hackerský operační systém?
          - ano.
          - Tak  to  ne!  Nic  od  kriminálníků  instalovat  nebudeme.  My
            potřebujeme seriózní program.

          Toto  mínění o hackerech je poměrně  rozšířené.  Těžko  takovému
      človeku  pak  vysvětlíte,  že  Linux  je  jeden z nejspolehlivějších
      operačních   systémů  vůbec.   Největší   zásluhu  na  této  pověsti
      nemají  samotní  hackeři, ale  noviny. Je asi  mnohem  lukrativnější
      vydat  článek  "Neznámý  hacker  napadl  banku", než článek  "hacker
      naprogramoval gcse pro egcs".

          Proto  bych se rád  ohlédl po tom,  kdo  vlastně  hackeři  jsou.
      Samozřejmě,  že  každý  si  pod  tímto   slovem   představuje   něco
      jiného a tak  je  to  spíše  téma  na  větší  sociologickou  studii.
      Přesto  ale  existuje  několik  oficiálních  zdrojů, o které  se lze
      opřít.  Asi  nejznámější je Jargon - The  New  Hacker's  Dictionary,
      které   vydává   MIT  press  a  v  online   verzi  jej   najdete  na
      http://www.ccil.org/jargon.   Tento   dokument    obsahuje   nejenom
      výkladový  slovník všech základních výrazů hackerského slangu (který
      je nezvykle bohatý (kde jinde by měl smysl dialog:

                      "There is a bug in this ant farm!"

               "What do you mean?  I don't see any ants in it."

                               "That's the bug."

          )),  ale   obsahuje i rozsáhlý   úvod  do  podstaty   hackerství
      a v  sekci  Bibliography  najdete  odkazy  na  několik  dalších  děl
      zabývajících se tématem.  Například odkaz na nádherné  dílko The Tao
      of programming,  které jsem  vpodstatě celé  odcitoval v mé rubrice.

          Začneme trochou historie.  Hackeři se objevili hned ve 40. a 50.
      letech  zároveň s prvními  počítači. Byly učiněny první velké objevy
      na poli informatiky jako:

          as soon as we started programming, we found to our surprise that
      it wasn't as easy to get programs right as we had thought. Debugging
      had  to  be  discovered.  I can  remember  the  exact  instant  when
      I realized that a large part of my life from then on was going to be
      spent in finding mistakes in my own programs.
          -- Maurice Wilkes, designer of EDSAC, on programming, 1949

          To několik  lidí  přimělo  trávit  více času v práci než ostatní
      a po nocích studovat taje nového oboru. Jejich práce se stala jejich
      největším a většinou  jediným koníčkem a ten začal ovlivňovat jejich
      způsob myšlení. A právě oni se staly prvními hackery.

          Sály s počítači samozřejmě nebyly temnými kriminálními  doupaty,
      a vědci v bílých pláštích kolem měli daleko k sfetovaným teenagerům.
      okrádající  všechny  kolem.  Hacker  samozřejmě  většinou  nefetuje,
      protože jeho činnost vyžaduje  většinou plné vědomí. A proč používat
      chemické  drogy, když se může oddávat  závislosti na počítači. Proto
      zde novinová představa neobstojí.

          Průměrný  hacker té doby  tedy  zákonitě  musel  být  "seriozní"
      vědecký   pracovník.   (jinak  by  se k  mašině   prostě   nedostal)
      Od ostatních se vyznačoval  hlavně  tím, že znal stroj do posledního
      šroubku  (i když  někdy  mu nějaký  ten  magický  přepínač  utekl :)
      a bez problémů byl  schopen z výpisu  paměti po pádu  systému  najít
      chybu a opravit  ji v mikrokódu.  Označení  hacker  by  tedy  nemělo
      být  pomluvou  ale  jakýmsi  titulem.  Člověk by se neměl  prohlásit
      za hackera  sám, ale  počat, až jej za něj začnou  považovat ostaní.
      Zároveň to není věc, za kterou by se měl stydět.

          Pod  rukama  nejznámějších  hackerů  (jako  jsou  Ken  Thompson,
      Richard M. Stallman, nebo Linus Torwalds)  vzniklo  samozřejmě mnoho
      užitečných věcí - UNIX, C, GNU a mnoho free  softwarových  programů.
      Díky síti, která pomalu začala  propojovat  počítače i hackeři spolu
      začali  více mluvit a vznikla tak vlastně celá nová klutura se svými
      ideály,  vtipy i jazykem.  Tyto odlišnosti  pravděpodobne  způsobili
      nepochopení  ostatními.  Průměrný  hacker na  otázku: Ty ale  nejses
      lamer, že ne? odpoví ano podle logického schématu:

                            if (!lamer) ano else ne

          ale normálního člověka odpověď přinejmenším zmate. Dialogy jako:

       Hi! How are things going?
               (just fine, thank you...)
       Great! Say, could I bother you for a question?
               (you just asked one...)
       Well, how about one more?
               (one more than the first one?)
       Yes.
               (you already asked that...)
       [at this point, Alphonso gets smart...  ]
       May I ask two questions, sir?
               (no.)
       May I ask ONE then?
               (nope...)
       Then may I ask, sir, how I may ask you a question?
               (yes, you may.)
       Sir, how may I ask you a question?
               (you must ask for retroactive question asking
                privileges for the number of questions you have
                asked, then ask for that number plus two, one for
                the current question, and one for the next one)
       Sir, may I ask nine questions?
               (go right ahead...)

          Normální lidi totálně odradí. Jedno takové nedorozumění.

          Další  špatný vliv na pověst  hackerů  mělo  rozšíření  osobních
      počítačů a vznik pirátských BBS a warezáckých  sajtů. Zde se opravdu
      najde velké množství lidí, kteří se zabývají  výhradně  prolamováním
      různých  systémů. Ti ale alespoň podle New Hackers Dictionary nejsou
      opravdovými  hackery,  protože  jednak se většinou  vůbec  nesetkali
      s opravdovým  operačním  systémem a také člověk,  který nezná  lepší
      využití pro své vědomosti prostě hackerem  nemůže být. Přesto, že se
      často samozvaně za hackery prohlašují, měli by se důsledně označovat
      termínem cracker. Kdyby noviny psaly "neznámý cracker napadl banku",
      všechno by bylo vpořádku. Jedná se opravdu o odlišnou skupinu lidí.

          Samotné   crackování   je   poměrně   jednoduchou   záležitostí.
      Na  internetu   existuje   několik  dobře  známých  míst  (například
      www.rootshell.com),  kde  najdete  podrobný  návod a pokud si  umíte
      najít  tu  správnou  díru a  přeložit  program,  máte  vyhráno.  Asi
      nejklasičtějším  příkladem  takových chyb je buffer owerflow, kde si
      program  vyhradí na data na zásobníku nějaké místo, ale dostane víc.
      Data  přetečou  kam  nemají,  změní co  nemají a program  udělá  to,
      co cracker  chce.  Přečtete  si tedy,  jakému  programu  máte  zadat
      jaký  dlouhý  vstup a už na Vás mrká  vězení (#) rootovského  shellu
      (a posléze  možná i vězení  opravdové).  Nevyžaduje to tak  hlubokou
      znalost  problematiky,  hako by hacker měl mít. Ani samotné  servery
      s těmito informacemi nejsou  ilegální,  protože jsou nenahraditelným
      pomocníkem  správců sítí, kteří tam najdou i informace jak dané díry
      zalátat.  Většina z nich  Vás  zavazuje k tomu, že informace na nich
      obsažené  použijete pouze pro výukové  účely. Pokud neznáte  metody,
      jak crackování funguje, asi těžko mu můžete účině čelit.

                            Ukázková security hole                       

          Je pravda, že poněkud  složitější je po sobě  zamést  stopy, aby
      rozzuřený  správce sítě crackera  nenašel. Také vytváření  vlastních
      exploitů,  stejně  jako  prolamování  ochran u her vyžaduje  znalost
      assembleru.  Přesto  to ale  není  nijak  složité.  Sám se  považuju
      u assembleru  na Intelu  spíše za  nováčka  (nikdy  jsem se ho nijak
      výrazně  neučil a nenapsal v něm  program  delší než 20KB), ale umím
      to. Na hledání  životů u her také existují  velmi  účinné  pomůcky -
      například  gametools či gamewizards. S nimi pouze program  přerušíte
      pokaždé, kdy ve hře ztratíte, nebo  dostanete  život a oni porovnají
      změny v paměti,  najdou  správné  místo a potom pomocí  hardwarových
      breakpointů  najdou  instrukci,  která  paměť  mění. Tuto  instrukci
      vyhodit z programu  je už  většinou  hračkou - a crack  je na světě.
      Je pravda, že pokud je program  napsaný tak, aby se crackoval těžko,
      je situace  zajímavější.  Podle  vlastní  zkušenosti ale můžu  ríct,
      že tomu většinou tak není. K mému údivu vždy objevím hesla v textové
      podobě v některém souboru apod.

          O technikách  crackování by to asi už stačilo stačilo, aby někdo
      nedošel k závěru, že se zde snažím  vychovat  nové  crackery.  Tímto
      považuju téma crackování v této rubrice na vyčerpané.

          Opravdový hacker by měl nejenom znát metody  crackování  popsané
      výše  (rozumný  hacker  ale  tuto  zkušenost  použije  spíš k  tomu,
      aby  jeho  programy  byly  bezpečné,  nebo v situaci,  že  roztržitý
      kořen  zapomene  heslo).  Každy  hacker by měl dobře rozumět  UNIXu,
      sítím, programovaní v C, assembleru,  hardwaru a mnoho dalším věcem.
      Nejdůležitější  ale  je,  aby rád a s chutí  dělal  dobré  programy,
      bez zbytečných čekací smyčky, megabajty nepoužitých dat a jsou pokud
      možno zdarma.

          Prostě a  jednodušše  musí  udržovat  jistou  hackerskou  etiku,
      kterou lze pěkně vyčíst z příběhu opravdového programátora Mela.

          V poslední době  dochází k promíchávání  hackerů ze světa  UNIXu
      s lidmi odkojenými  warezem a crackováním a proto  záleží na každém,
      do  které  skupiny  se  hodlá   zařadit.   Jestli  bude  trávit  čas
      hledáním  hesla  u her,  nebo  hledáním  chyby  v  kernelu.  Myslím,
      že hodně  crackerů  to děla  jen  proto, že neví, co  dělat  lepšího
      a jsou znechuceni komerčním sofwarem. A proto je free sofware pro ně
      možností...

          Pokud opravdu  chcete vědět, zda jste se stali hackerem,  můžete
      se pokusit udělat hacker test.


                  Definice hackera z New Hacker's Dictionarry             

                                 Happy hacking

                                                                 - HH -


            výheň