1. SPIDER'S WEB
  2. rozrywka

C++ Elementarz Hakera

W czasach paranoi internetowej, dziennie "pączkujących" nowych odmian wirusów, coraz wymyślniejszych trojanów i zwiększającej się ilości spamu, pojęcia haker i cracker nabrały wysoce pejoratywnych znaczeń. Osoby określane tymi słowami, z jednej strony budzą podziw i rozpalają wyobraźnię wielu dzieciaków marzących o cyber-podbojach, z drugiej jednakże są potępiani tak przez ogół społeczeństwa, jak i organy ścigania. A mimo to osobiście darzę prawdziwych mistrzów tego, skądinąd dyskusyjnego, rzemiosła dużym szacunkiem. Nie oznacza to wszakże, że z równym pobłażaniem patrzę na domorosłych "hakierów"...

Siedząc w sieci o zasięgu miejskim, rozumiem, że mogę być "inwigilowany". I jestem na to przygotowany - odpowiednia ściana ognia, postawiona i skonfigurowana tak restrykcyjnie jak tylko umiałem, antywir sprawdzający czy nie ma jakichś prób injectów, tunelowanie z szyfrowaniem na wypadek próby przejęcia pakietów i takie tam... Jednocześnie wiem, że utalentowanemu hakerowi z prawdziwego zdarzenia takie zabezpieczenia nie przysporzą prawdziwych problemów. Ale i tak nieco zniechęcają do grzebania... Zaś na pewno ostro deprymują młodych "hakierów" po kursach typu "Aby włamać się na czyjś dysk, należy przenieść na dyskietce i zainstalować u niego [czyt. właściciela komputera ze wspomnianym HDD] tego trojana, po czym...". I jeśli myślicie, że mi przykro z tegoż powodu, to się mylicie.

Zazwyczaj codziennie przeglądam logi z zabezpieczeniami i uśmiecham się w duchu, gdy widzę kolejną próbę ataku... Skanowanie portów i próby włamań za pomocą aplikacji do analizy sieci wykorzystywanych przez administratorów mam na porządku dziennym. Może stąd moja dezaprobata dla takich poczynań. Mój negatywny punkt widzenia pogłębiają także destrukcyjne poczynania o jakich można przeczytać w gazetach i usłyszeć w TV. Ot znowu jakiś "smarkacz/-e", najwidoczniej bardzo inteligentny/-i, przełamał zabezpieczenia tej a tej organizacji i wykradł to a to... Wstyd panowie wstyd...

Kiedyś, i nadal wśród wielu przypadków, hakerem określano kogoś, kto dysponował olbrzymim talentem i bardzo bogatą wiedzą. Wielokrotnie stosował on techniki, o których możliwościach milczały oficjalne źródła, a "szary użytkownik" w ogóle nie wyobrażał sobie ich istnienia. Często jedyną pobudką działalności takiego cybermaniaka było upokorzenie "specjalistów" bezpieczeństwa. Przygotowanie nierzadko nietypowych i wysoce oryginalnych metod rozwiązywania problemów, wygrzebywanie czeluści systemów i pełna wiedza o jego sposobie działania - wszystko to sprawiało, że hakerzy zasługiwali na słowa uznania.

Hobbyści komputerowi, fanatycy bezpieczeństwa, lecz nie wandale, których jedynym celem jest włamywanie się do cudzych zasobów i niszczenie systemów. Prawdziwi hakerzy to twórcy, specjaliści w różnych obszarach wiedzy komputerowej, nierzadko potępiający kryminalną działalność pobratymców internetowych. Taka ekspertyza w dość wąskiej dziedzinie zazwyczaj stanowi punkt oparcia i źródło wiedzy dla wielu innych poszukujących "prawdy"...

C++ Elementarz Hakera

I tu właśnie docieramy do publikacji. "C++ Elementarz hakera" należy do serii "Elita rosyjskich hakerów prezentuje / nu pagadi!" i stanowi kwintesencję ostatniego zdania poprzedniego paragrafu. Skierowana jest do osób pogłębiających swoją wiedzę w tytułowym języku. I choć wiele z zaprezentowanych "sztuczek" jest już znanych i wykorzystywanych przez szerokie grono programistów, to ta lekka pozycja, skupiająca niektóre z nich, wydaje się być bardzo smacznym kąskiem. Szczególnie jako lektura do poduchy, którą to można by dzieciom na dobranoc czytać ;-).

Pokazuje ona bowiem tak parę niegroźnych dowcipów programistycznych, jak i całkiem rozsądne techniki współpracy z systemem. Oczywiście, by w pełni docenić zawartą wiedzę, warto cośkolwiek w C++ pod Windę pisać. Wtedy zaproponowane pomysły zyskują mocny grunt, dobrze się zakorzeniając w naszych przyzwyczajeniach deweloperskich. Osoby nie piszące jeszcze w C/C++ nie mają się jednak co obawiać, autor prowadzi czytelnika przez kolejne etapy projektowania algorytmów i ich implementacji w sposób dość infantylny (z punktu widzenia kogoś, kto zna się na rzeczy, zbyt infantylny!), a tym samym prosty do bólu.

Jest też dużo tego, co tygryski lubią najbardziej... Kody źródłowe są czytelne i dobrze opisane, zatem bardziej doświadczeni przekartkują knigę dość szybko. Nie ma też problemu, by zawarte w książce pomysły przeszczepić do innych rozwiązań (ot np. ja stworzyłem usługę systemową chowającą przycisk Start przed myszką, a dokładniej sprawiającą, że pasek wędrował po krawędziach ekranu, uciekając przed mychą ;-) ). Słowem, przy odrobinie inwencji twórczej, można zawarte pomysły przerobić na naszą modłę jako dość ciekawe dowcipy...

Książka stanowi także źródło wielu ciekawych podejść do bardziej typowych problemów programistycznych, z jakimi może przyjść nam się borykać, o ile zagłębimy się w programowaniu nieco dalej jak "Hello world!"... Oto bowiem znajdziemy parę rad jak zrobić nietypowe okna aplikacji, jak podpinać się pod inne programy, jak zmniejszać rozmiary pliku wykonywalnego, jak zbudować szybko podsystem transmisji sieciowej, korzystając z ogólnie przyjętych standardów. Do tego informacje pokazujące jak zbudować własny, prymitywny skaner portów, analizator trasy pakietów, sprzętowo-programowy podmieniacz numerów IP, czy też archaiczny już komunikator sieciowy na łączach szeregowych rs232c... Jest też dużo pożytecznej teorii pogłębiającej wiedzę w wielu aspektach, oraz parę kruczków, o których się zazwyczaj mówi na szkoleniach m.in. administratorów sieci.

Można więc stwierdzić, że choć daleko tej książce do wszystkich tych "biblii" czy "czarnych ksiąg", to przecież nigdy owa publikacja nie miała zajmować ich miejsca. Jest to lekka i cienka (poniżej 300 stron) lektura, z której skorzystają wtajemniczeni i wtajemniczani... Gros pomysłów na dowcipy, bezbolesne wprowadzenie w arkana programowania okienkowego pod windą, trochę przydatnej teorii (bez zbytniego przynudzania) to niewątpliwe atuty książki. No i ta cena - poniżej 40pln to już całkiem znośnie. Z drugiej jednak strony książka nie stanowi dla kogoś, kto w tym siedzi, nic nowego. Ba, infantylność prowadzenia "za rączkę" jakie zastosował autor może, i czasem naprawdę nudzi. Bądź co bądź, jest to książka dla wszystkich, zatem trzeba było znaleźć kompromis. Szkoda tylko, że odbyło się to kosztem bardziej zaawansowanych programistów. I szkoda, że książeczka ta nie może, wzorem innych publikacji informatycznych, posłużyć jako broń obronno-zaczepna ;-) (zastępca popularnych cegłówek).