r04.doc

(1479 KB) Pobierz
Helion

 

Rozdział 4. ¨ Cracking                            293

Rozdział 4.

Cracking

Internet daje nam możliwość łatwego i szybkiego przepływu i dostępu do informacji na całym świecie, czyniąc zeń tzw. „światową pajęczynę”. Bardzo szybko w związku z tym producenci wszelkiego typu oprogramowania oraz autorzy software’u
w Polsce zdali sobie sprawę z możliwości taniego udostępniania swoich programów szerokiemu gremium. Powstawały i powstają wciąż nowe serwery gromadzące wszelkiego rodzaju oprogramowanie dla różnych systemów operacyjnych. Są to często ogromne archiwa. Można je sklasyfikować następująco:

¨     Programy oferowane za darmo — freeware lub public domain;

¨     Programy oferowane za niewielką opłatą — shareware;

¨     Programy oferowane w wersji demonstracyjnej — trial.

Freeware to najczęściej zbiór aplikacji niewielkich rozmiarów, których zakres możliwości ogranicza się do kilkunastu funkcji. Nie posiadają one drukowanych instrukcji obsługi, a często nawet pomocy podręcznej. Ich twórcami są najczęściej początkujący programiści.

Autorzy w większości przypadków nie biorą odpowiedzialności za ewentualne szkody powstałe w wyniku eksploatacji programów. W zamian za te ograniczenia użytkownik uzyskuje całkowicie darmowe oprogramowanie, z możliwością powielania i przenoszenia na inne komputery dowolną liczbę razy. Ten fakt spowodował, że programy typu freeware należą do najbardziej lubianych przez użytkowników, gdyż pomimo wielu niedogodności niektóre z nich okazują się bardzo przydatne.

Shareware to najczęściej dosyć zaawansowany program. Choć nie jest to jeszcze rozbudowany pakiet oprogramowania, ma często wbudowaną pomoc podręczną
i podręcznik użytkownika (nawet w wersji drukowanej). Zdarza się, że są to rozbudowane wersje programów freeware wzbogacone o nowe możliwości.

Wielcy i znani producenci oprogramowania bardzo chętnie rozpowszechniają swoje produkty w postaci shareware. Jednak całe wsparcie techniczne ze strony autora lub producenta użytkownik zyskuje dopiero po uiszczeniu opłaty rejestracyjnej i zarejestrowaniu swojej kopii programu. Zanim program typu shareware zostanie zarejestrowany, posiada wbudowane ograniczenia funkcjonalności.

Oprogramowanie w wersji trial, czyli w wersji demonstracyjnej to najczęściej aplikacje, które są okrojonymi zaawansowanymi produktami profesjonalnych firm software’owych. Najczęściej można je wypróbowywać przez określony okres czasu (np. 30 dni), ale mogą one nie posiadać podręcznej pomocy, a część funkcji jest nieobsługiwana.

Należy tutaj zaznaczyć, że w dzisiejszych czasach dopiero zakup pełnej wersji programu, najczęściej na krążku CD wraz z instrukcją użytkownika, zapewnia wsparcie techniczne ze strony producenta.

Ponieważ programy shareware są zwykle wersjami z wbudowanymi elementami zabezpieczeń i różnorakich ograniczeń, cracker może modyfikując odpowiednio ich kod usunąć te zabezpieczenia i „przerobić” na wersję  nieposiadającą żadnych ograniczeń.

W znacznej mierze procesowi crackowania podlegają programy typu shareware. Ich definicję najprościej jest podać za magazynem komputerowym PC World Computer (Płyta CD 1/99/A, PC World Computer nr 1/99, IDG Poland S.A., 1999, http://www. pcworld.com.pl.).

Shareware — to popularny sposób dystrybucji oprogramowania „działający” na zasadzie „wypróbuj, zanim kupisz”. Obejmuje on programy (chronione zastrzeżonymi prawami autorskimi), które do chwili rejestracji użytkownik posiada tylko „na próbę”. Czas testowania programu jest ograniczony zwykle do 10-60 dni. Czasami program ma „wyłączone” niektóre opcje. Legalizacja programu polega na wniesieniu na rzecz autora lub producenta stosownej — ale dość niskiej w porównaniu z cenami programów komercyjnych — opłaty rejestracyjnej. W opisie każdego programu shareware powinny się znajdować zasady jego rejestracji. Należy pamiętać, że opłata za udostępnienie oprogramowania obejmuje tylko koszt nośnika i koszty handlowe dystrybutorów, wydawców CD-ROM, itd. i nie zwalnia w żaden sposób z konieczności wniesienia opłaty rejestracyjnej dla każdego programu shareware.

Definicja ta uświadamia nam fakt, że programy shareware są dostarczane do końcowego odbiorcy bądź to zapisane na płytach CD dołączanych do czasopism komputerowych (użytkownik staje się posiadaczem kopii programu „przy okazji”), bądź przez Internet (użytkownik może otrzymać zawsze najnowszą wersję programu). Dalej odbiorca jest zachęcany do wypróbowania programu, aby mógł się przekonać, że jest on niezbędnie potrzebny przy korzystaniu z komputera. Jeżeli zatem użytkownik rzeczywiście uzna, że program mu się przyda i zdąży się przyzwyczaić do korzystania z niego, będzie chciał przedłużyć okres jego użytkowania.

Jednak normalnie program może się dać uruchomić tylko przez pierwszy miesiąc,
a niektóre z jego funkcji mogą nie być aktywne. Wtedy pojawia się propozycja autora, który sugeruje, by dokonać rejestracji kopii i stać się posiadaczem legalnej
i pełnej wersji programu. Ale z wielu przyczyn część użytkowników nie decyduje się na wybór tego rozwiązania. Program shareware ma jeszcze jedną wielką zaletę — opłata rejestracyjna jest zwykle niska, co wpływa na podjęcie decyzji.

Dystrybucja shareware’a jest obecnie bardzo rozpowszechniona na całym świecie
i każde szanujące się czasopismo komputerowe dołącza do swoich wydań krążki CD, z aktualnymi wersjami lub zupełnie nowymi programami shareware. Z drugiej strony autorzy programów starają się dotrzeć do jak największej liczby końcowych odbiorców, a najbardziej popularne programy, można znaleźć na kilku krążkach jednocześnie wydanych w tym samym okresie czasu. Wspomnieć tu można o takich programach, jak WinAmp służący do odgrywania bardzo popularnego formatu zapisu dźwięku Mpeg Layer 3 czy WinZip i WinRar służący do kompresji i archiwizowania danych, których coraz to nowe wersje ukazują się prawie co miesiąc. Jednak największym dystrybutorem tego typu oprogramowania jest Internet. Popularne serwisy gromadzą w swoich archiwach dane na temat kilku — a nawet kilkudziesięciu milionów programów — z których większość to właśnie programy typu shareware.

W czasach kiedy Internet nie był powszechnym środkiem wymiany informacji,
a magazyny komputerowe były pozbawione drogich wówczas płyt CD, dystrybucja shareware’u była dość ograniczona, ale jednak istniała. Najprostszym sposobem zdobycia upragnionego programu było posiadanie znajomych, którzy albo mieszkali za granicą i mieli bliższy kontakt z producentem, albo też mieli znajomych, od których dostawali pocztą przesyłane na dyskietkach programy. Co prawda ta metoda dystrybucji była dość powolna, pomimo to popularne programy miał prawie każdy (tak było np. w Polsce czy byłym Związku Radzieckim). Innym sposobem choć raczej praktykowanym w Polsce w ograniczonym zakresie było zdobywanie programów
z sieci BBS-ów. Oprócz samego komputera potrzebny był zatem modem i jakiś BBS, który pozwalał na ściąganie oprogramowania. Obecnie jednak BBS-y zostały w dużej mierze wyparte przez serwery FTP, a pocztą przesyłane są megabajty programów.

Dlaczego programy te drażnią crackerów? Otóż jedną z rzeczy najbardziej uprzykrzających życie użytkownika jest tzw. nagscreen, czyli okienko z komunikatem, które pokazuje się albo przed uruchomieniem — często zanim można je wyłączyć mija kilka sekund — albo pojawia się co jakiś czas w trakcie działania programu
i przypomina użytkownikowi, że program, którego używa jest typu shareware i jego kopia nie została jeszcze zarejestrowana, w związku z czym autor prosi o dokonanie wpłaty na jego konto i zalegalizowanie programu. Po pewnym czasie cracker zaczyna się trochę denerwować taką nadopiekuńczością autora i zwykle wtedy  podejmuje decyzję o tym, aby w jakiś sposób obejść ograniczenia i otrzymać produkt naprawdę przyjazny dla użytkownika.

Jak postępuje cracker w tym wypadku? Zwykle musi poznać kod źródłowy programu, który jest najbardziej strzeżoną tajemnicą autora i w żaden sposób nie można go od niego wyciągnąć (chociaż dysponuje skompilowaną postacią kodu — wykonywalnym plikiem zakodowanym w postaci maszynowej zrozumiałej dla procesora). Trzeba zatem dokonać dekompilacji kodu i w ten sposób otrzymać można program, który już pozwala się modyfikować. Jednak dekompilować kod maszynowy można tylko do języka najniższego poziomu — asemblera, a ten nie jest najbardziej przejrzystym i czytelnym językiem programowania. Co więcej — kod małego programu to kilkadziesiąt tysięcy linii kodu asemblera i nawet pobieżne jego przejrzenie nastręcza wiele trudności. Tym właśnie, czyli odpowiednim zmodyfikowaniem kodu
i dostarczeniem gotowego produktu, zajmuje się cracker.

Cracking (łamanie, rozgryzanie problemu) to innymi słowy — podjęcie działań mających na celu usunięcie ograniczeń czasowych lub funkcjonalnych zabezpieczonego programu komputerowego poprzez modyfikację jego kodu lub dokonanie nieuprawnionej rejestracji umożliwiającej korzystanie z programu niezgodnie z przepisami prawa.

Jak wynika z przedstawionej definicji, procesowi crackowania podlegają wszystkie zabezpieczone programy komputerowe. Dotyczy to zarówno gier, które zwykle nie dają się uruchomić bez umieszczonej w napędzie płyty CD, jak i programów typu trial, które zwykle są zubożone o niektóre funkcje i dodatkowo posiadają ograniczenie czasowe. Crackowanie nie musi oznaczać modyfikacji kodu, ale może prowadzić do poznania mechanizmu uzyskiwania numeru rejestracyjnego na podstawie wprowadzonej nazwy użytkownika. Zarówno sam proces crackowania, jak i następujące po nim korzystanie ze zmodyfikowanego lub nielegalnie zarejestrowanego programu jest łamaniem prawa.

Ponieważ nie wszyscy użytkownicy komputerów posiadają umiejętność programowania, to ktoś, kto włamuje się do programu komputerowego musi nie tylko być zaznajomiony z samym systemem operacyjnym, w którym program pracuje, ale również — chociaż niekoniecznie bardzo dobrze — z językiem asemblera. Tym kimś jest właśnie cracker. To on stara się wniknąć w program, zanalizować wszystkie zabezpieczenia jakie autor zastosował, a następnie zniwelować je pozostawiając program pozbawiony ograniczeń, którego można używać do woli. Crackerzy najczęściej uzasadniają to, co robią na dwa różne sposoby. Część z nich uważa, że jakiekolwiek oprogramowanie, które zostaje rozpowszechniane publicznie nie powinno zawierać ograniczeń, gdyż to bardziej zniechęca niż zachęca użytkownika do zakupu pełnej wersji. Ponadto jeśli użytkownik uzna, że program wart jest zakupu, to na pewno go kupi, gdy jednak używa go tylko raz na jakiś czas, to nie ma sensu wydawać pieniędzy, bo wartość inwestycji będzie niewspółmiernie wysoka
w stosunku do osiągniętych korzyści. Z tych właśnie powodów należy umożliwić użytkownikom nieskrępowany dostęp do wszystkich funkcji danego programu oraz nie ograniczać czasu jego eksploatacji, a decyzję o tym, czy program kupić, czy też używać dalej jego nielegalnej kopii, należy pozostawić użytkownikowi i jego sumieniu. Inni crackerzy uważają to, co robią za sztukę. Podchodząc w ten sposób do całej sprawy, traktują złamanie jakiegoś programu jak wyzwanie rzucone im przez twórcę. Wyzwanie, z którego najczęściej wychodzą zwycięsko. Wynika to po części z faktu, iż programy są zabezpieczane zwykle bardzo podobnie i kiedy już opanuje się metody rozpracowywania poszczególnych zabezpieczeń złamanie kolejnego, podobnie zabezpieczonego programu nie jest dużym problemem i trwa czasem mniej niż dziesięć minut. Z drugiej strony cracker-artysta odczuwa przyjemność ze swojej pracy tylko wtedy, gdy znajduje nowe rodzaje zabezpieczeń po raz pierwszy zastosowane w danym programie, lub tak skomplikowane, że ich „rozgryzienie” zajmuje kilka dni. Widać tu zresztą pewną analogię do hakerów, którzy satysfakcję osiągają dopiero, gdy uda im się włamać na dobrze zabezpieczony serwer, a nie taki, który jest źle administrowany. Ze względów bezpieczeństwa crackerzy nie ujawniają swoich prawdziwych imion, ale używają pseudonimów. Najbardziej pracowici z nich łamią w ciągu roku kilka tysięcy programów (np. słynna grupa Phrozen Crew). Po złamaniu zabezpieczeń cracker pisze tzw. crack,
a więc program, który po uruchomieniu zamienia część łamanego programu tak, aby przekształcić go w pełną wersję. Crack jest najczęściej bardzo małym programem napisanym dla środowiska DOS, a jego objętość wynosi kilka kilobajtów. Swoje poglądy crackerzy wymieniają na łamach wielu usentowych list lub za pomocą usługi IRC. Najczęściej przedstawiane tam wysyłki dotyczą próśb o konkretny crack.

Cracki są zwykle umieszczane w Internecie, jednak często ich żywot jest krótkotrwały, gdyż administratorzy usuwają „zakazane” strony, mimo iż prawie zawsze osoby odpowiedzialne za daną witrynę umieszczają tzw. disclaimer (zaprzeczenie). Ponieważ ich treść jest bardzo podobna, można przytoczyć tu disclaimer pochodzący z jednej z polskich stron poświęconej crackowaniu, który głosi, że:

„Wszelkie materiały i informacje zawarte na tych stronach przeznaczone są jedynie do celów informacyjno-edukacyjnych. Autorzy zastrzegają sobie, że nie odpowiadają za użycie tych informacji do niecnych i niezgodnych z prawem celów. Autorzy nie odpowiadają za straty poniesione w wyniku wykorzystania tych materiałów. Prawo do pisania tego typu tekstów zapewnia wolność słowa i publikacji. Prosimy o rozsądne wykorzystanie informacji zawartych na tych stronach”.

Poszukując cracka do konkretnego programu, można posłużyć się wyspecjalizowaną wyszukiwarką internetową. Obecnie największą z nich jest Astalavista (http:// astalavista.box.sk), która kataloguje w swoich bazach ponad tysiąc stron zawierających cracki. Są wśród nich również polskie cracki.

Z jakimi rodzjami zabezpieczeń boryka się cracker? Do najczęściej łamanych zabezpieczeń należą aktualnie:

¨     Klucz rejestracyjny (serial number);

¨     Program rejestracyjny (upgrade patch);

¨     Plik kluczowy (key file);

¨     Sprawdzenie obecności płyty CD (CD check);

¨     Ograniczenia w programach trial;

¨     Klucze sprzętowe.

Zdecydowanie najpopularniejszym, ale i najłatwiejszym do złamania sposobem rejestracji programów, jest klucz rejestracyjny. Z reguły po wpłaceniu odpowiedniej opłaty rejestracyjnej użytkownik dostaje pocztą zwykłą lub przez Internet tzw. serial number, który zostaje wygenerowany na podstawie jego danych u producenta programu. Następnie po wprowadzeniu go w odpowiednie pole, program staje się w pełni działającym produktem bez jakichkolwiek ograniczeń.

Aby dostarczyć użytkownikowi rozwiązanie problemu klucza, crackerzy stosują dwa sposoby. Pierwszy polega na wygenerowaniu klucza dla wybranej przez siebie nazwy użytkownika, który następnie jest udostępniany poprzez witryny internetowe albo poprzez programy zawierające bazy danych aktualnych kluczy rejestracyjnych popularnych programów. Najbardziej znanym tego typu programem jest Oscar grupy Phrozen Crew. Zawiera on (oprócz kluczy) kilkadziesiąt plików kluczowych oraz adresy stron WWW producentów oprogramowania. Można również dodać własne klucze rejestracyjne poszerzając tym samym bazę Oscara. Drugi sposób polega na zamianie części kodu odpowiedzialnej za sprawdzenie czy kod wpisany przez użytkownika jest poprawny i został dostarczony przez producenta. Wówczas wystarczy, że użytkownik wpisze dowolny klucz, a zmieniony program uzna, iż jest on poprawny i zarejestruje program. W tym wypadku cracker pisze cracka, który po uruchomieniu zamienia część łamanego programu umożliwiając w ten sposób wprowadzenie dowolnego klucza.

Niektóre programy (jak np. WinDAC32) wymagają osobnego programu, dostarczanego przez producenta po wpłaceniu opłaty rejestracyjnej, który usuwa jego ograniczenia i w ten sposób zamienia go na pełną wersję bez ograniczeń. Do zadań crackera w tym przypadku należy znalezienie wszystkich miejsc, w których program jest ograniczany funkcjonalnie bądź czasowo, a następnie napisanie cracka, który zlikwiduje te ograniczenia. Spełnia więc on taką samą rolę jak dostarczony przez producenta tzw. upgrade patch. Zdarza się jednak i tak, że w Internecie zamiast cracków są umieszczane programy upgrade patch pochodzące wprost od producenta programu, które zostały dostarczone przez jednego z legalnych użytkowników programu albo wykradzione z serwera firmy. W tym wypadku plikiem kluczowym jest wygenerowany przez producenta plik, w którym zawarte są
w postaci zaszyfrowanej informacje dotyczące użytkownika, który dokonał opłaty rejestracyjnej. Ponieważ jest to zwykle mały plik wielkości kilku kilobajtów, jest przesyłany pocztą elektroniczną lub — coraz rzadziej — na dyskietkach pocztą tradycyjną. Proponuje się w tym przypadku dwa rozwiązania. Pierwsze polega na tym, że cracker musi zmodyfikować kod programu tak, aby ignorował on nieobecność pliku kluczowego, a mimo to zachowywał się w taki sposób, jak gdyby on istniał
i upoważniał do korzystania ze wszystkich funkcji programu przez czas nieokreślony. Drugim, bardziej eleganckim, chociaż trudniejszym rozwiązaniem jest wygenerowanie key file (najczęściej z danymi zawierającymi jako nazwę użytkownika pseudonim crackera). Wystarczy wówczas skopiować taki plik do katalogu łamanego programu i ten uzna, iż został poprawnie zarejestrowany.

Na rysunku przedstawiony został ekran powitalny słynnego programu grupy Phrozen Crew-Oscar.

Numery seryjne dla systemu operacyjnego Windows 2000 Professional w programie Oscar Y2k przedstawiają się tak, jak to widać na rysunku.

Zupełnie inną kategorią cracków, są te, które usuwają zabezpieczenia z gier i innych programów dostarczanych na płytach CD. Wymagają one często tego, by podczas ich działania krążek CD był uruchomiony. W tym wypadku cracker usuwa zabezpieczenia sprawdzające, czy nośnik, z którego odczytywane są poszczególne informacje, jest płytą CD. Oczywiście wszystkie dane muszą być wcześniej skopiowane na dysk twardy. Czasem wystarczy jednak zainstalować program emulujący stację CD-ROM w konkretnym katalogu dzięki czemu program zachowuje się dokładnie tak, jak gdyby był uruchamiany z prawdziwej płyty CD.

Ale zdarzyć się może (np. w przypadku gier), że dane programu zajmują całą płytę (650 MB), co sprawia, że taki program, z którego tylko usunięto sprawdzanie na obecność płyty i tak będzie zbyt duży, by go rozpowszechniać. Wtedy cracker musi usunąć nadmiar danych z płyty (np. filmy, animacje itp.) występujących pomiędzy poszczególnymi elementami gry. W ten sposób można zmniejszyć objętość programu do kilkudziesięciu lub kilkunastu megabajtów.

W przypadku programów innych niż gry wycina się zwykle wszystkie dodatki, takie jak zbiory rysunków, dodatkowe biblioteki, programy w wersjach próbnych, programy pomocnicze itp. Tutaj najbardziej widoczna staje się różnica pomiędzy złamanym programem, a jego pełną wersją — użytkownik otrzymuje esencję produktu, jednak nie ma możliwości skorzystania ze wszystkich dodatkowych elementów współtworzących klimat gry lub środowisko pracy programu. Jeżeli jednak ktoś dysponuje internetowym łączem stałym taka alternatywa może być wystarczająco kusząca.

Ograniczenia w programach typu trial są równie interesujące. Producenci zwykle nie wyposażają tych programów we wszystkie funkcje oferowane w pełnej wersji produktu, więc nie wystarczy  pominąć zabezpieczeń, by rozszerzyć możliwości programu. Dodatkowo wersje demo programów działają tylko przez określony ...

Zgłoś jeśli naruszono regulamin