Cracking

Cracking – nielegalne łamanie zabezpieczeń oprogramowania.

Pojęcie cracking odnosi się do zbioru działań polegających na analizie i zmianie działania funkcji programu, w szczególności związanych z jego zabezpieczeniami, w celu ich ominięcia bez korzystania z kodu źródłowego programu. Fundamentem crackingu jest tzw. inżynieria wsteczna polegająca na tłumaczeniu skompilowanego programu z powrotem na język programowania najczęściej niższego poziomu. Słowo cracking wywodzi się od angielskiego czasownika crack („łamać”). Cracking dokonywany jest najczęściej z naruszeniem praw autorskich, a tym samym nielegalnie (wyjątkiem od tej reguły jest łamanie crackme). Termin zaczął być używany w odniesieniu do łamania zabezpieczeń oprogramowania w latach 80. XX w. (zobacz: crack, cracker).

Zakres pojęcia nie jest ustalony jednolicie. Opublikowany przez IETF słownik terminów internetowych określa crackera jako osobę próbującą uzyskać nieuprawniony dostęp do systemów komputerowych, przeciwstawiając ją hakerowi; zaznacza przy tym, że słowa „haker” często używa się pejoratywnie tam, gdzie właściwe byłoby określenie „cracker”. Część polskich opracowań wyróżnia natomiast cracking sieciowy, czyli pokonywanie zabezpieczeń systemów komputerowych, oraz cracking oprogramowania – zaznaczając jednocześnie, że pierwszy z nich najczęściej określa się mianem hackingu.

Łamanie oraz rozpowszechnianie zmodyfikowanego przez crackerów oprogramowania jest w większości państw nielegalne. Środowisko crackerskie odróżniało jednak swoją działalność od piractwa komputerowego, którym zajmowały się osobne grupy określane jako warez dOOdz, rozprowadzające nielegalne kopie programów; do plików dołączanych do cracków często trafiało wezwanie, by kupić program, jeśli okaże się przydatny.

Cracking oprogramowania

Historia łamania zabezpieczeń oprogramowania sięga lat 80. XX w. i komputerów Atari oraz Commodore. Już wtedy producenci oprogramowania zaczęli stosować zabezpieczenia przed nielegalnym kopiowaniem. Wraz z nimi pojawiły się osoby, które zaczęły te zabezpieczenia analizować i łamać, z czasem tworząc grupy rywalizujące ze sobą.

Łamanie zabezpieczeń opiera się na inżynierii wstecznej. Kod programu poddawany jest dezasemblacji, a następnie analizowany przez crackera w celu usunięcia zabezpieczenia z wykorzystaniem deasemblerów takich jak IDA czy W32Dasm, bądź też analizowany bezpośrednio w trakcie działania programu z wykorzystaniem debuggerów takich jak SoftICE lub OllyDbg. Działania te wymagają dobrej znajomości asemblera oraz wykorzystywanych przez oprogramowanie funkcji API. Czasami możliwe jest również wykorzystanie dekompilatora w celu przekształcenia skompilowanego programu na język wyższego poziomu, np. gdy program został napisany w języku Java.

Do najczęściej łamanych typów zabezpieczeń zalicza się ograniczenia czasowe lub funkcjonalne (wersje trial), pliki z kluczem, sprawdzanie obecności oryginalnej płyty CD lub klucza sprzętowego, klucze licencyjne wprowadzane w aplikacji oraz tzw. nag screeny, czyli okienka nakłaniające do kupna pełnej wersji. Producenci komercyjnego oprogramowania stosują w celu utrudnienia złamania zabezpieczeń m.in. obfuskację kodu, szyfrowanie danych, kod samomodyfikujący, wykrywanie modyfikacji kodu programu, fałszywe funkcje zabezpieczające, a także wykrywanie obecności popularnych narzędzi stosowanych przez crackerów.

Po złamaniu zabezpieczenia crackerzy często piszą programy, które automatycznie usuwają je z danego programu (tzw. cracki). Najczęściej crack ma formę tzw. patcha, czyli niewielkiego programu, który podmienia niektóre bajty w oryginalnym pliku wykonywalnym. Czasami można spotkać również cracki w formie tzw. loadera, który nie zmienia oryginalnego pliku, lecz modyfikuje pamięć programu po jego uruchomieniu. Takie rozwiązanie stosuje się np. wtedy, gdy oryginalny plik binarny jest skompresowany kompresorem do plików wykonywalnych, np. UPX.

Programów napisanych przez crackerów używają czasem również legalni użytkownicy, by pozbyć się uciążliwych zachowań programu, takich jak wymaganie oryginalnych nośników danych, kluczy sprzętowych, oglądania reklam lub rejestracji w Internecie. Bywa to problemem dla użytkownika, który np. wolałby korzystać z programu bez płyty CD, wykonać kopię zapasową lub zmienił komputer i ma teraz konfigurację uznawaną za niepoprawną przez oprogramowanie, które wcześniej legalnie zarejestrował.

Cracking dotyczy zazwyczaj płatnego, zamkniętego oprogramowania lub pisanych hobbistycznie tzw. crackme, czyli programów zawierających zwykle samo zabezpieczenie, bez innych funkcji. W przypadku wolnego oprogramowania zabezpieczenia zazwyczaj nie występują, gdyż użytkownik dysponuje pełnym dostępem do kodu źródłowego i może je sam swobodnie modyfikować.

Innym rozwiązaniem jest stworzenie generatora kluczy licencyjnych, czyli keygena. Czasem rozpowszechnianemu crackowi bądź keygenowi towarzyszy wstawka artystyczna, tzw. cracktro, lub w przypadku gier trainer. Często dołączany jest również plik tekstowy z rozszerzeniem NFO, zawierający ASCII-Art grupy crackerskiej, datę wydania cracka bądź inne informacje o grupie.

W tutorialach grup crackerskich cracking bywał opisywany nie jako działanie wymierzone w sam program, lecz w zawartą w nim informację, co wiąże go ściśle z inżynierią wsteczną, rozumianą jako odkrywanie zasad działania oprogramowania. Z czasem punkt ciężkości przesuwał się od łamania zabezpieczeń programów komercyjnych ku analizie crackme, a zamiast gotowych cracków publikowano coraz częściej opisy sposobu złamania danego zabezpieczenia.

Cracking sieciowy

 Osobny artykuł: Haker (bezpieczeństwo komputerowe).

Określeniem cracking sieciowy bywa nazywane łamanie zabezpieczeń serwerów i innych systemów komputerowych, przy czym w praktyce częściej używa się w tym znaczeniu terminu hacking.

Aspekt prawny crackingu

Za łamanie zabezpieczeń, oprócz np. kary umownej za naruszenie postanowień umowy lub odpowiedzialności za wyrządzoną szkodę, polskie prawo przewiduje sankcje karne.

Ustawa o prawie autorskim i prawach pokrewnych

Art. 1181 ust. 1

Kto wytwarza urządzenia lub ich komponenty przeznaczone do niedozwolonego usuwania lub obchodzenia skutecznych technicznych zabezpieczeń przed odtwarzaniem, przegrywaniem lub zwielokrotnianiem utworów lub przedmiotów praw pokrewnych albo dokonuje obrotu takimi urządzeniami lub ich komponentami, albo reklamuje je w celu sprzedaży lub najmu, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do lat 3.

Art. 1181 ust. 2

Kto posiada, przechowuje lub wykorzystuje urządzenia lub ich komponenty, o których mowa w ust. 1, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do roku.

Art. 121 ust. 1

W wypadku skazania za czyn określony w art. 115, 116, 117, 118 lub 1181, sąd orzeka przepadek przedmiotów pochodzących z przestępstwa, chociażby nie były własnością sprawcy.

Kodeks karny

Art. 269b § 1

Kto wytwarza, pozyskuje, zbywa lub udostępnia innym osobom urządzenia lub programy komputerowe przystosowane do popełnienia przestępstwa określonego w art. 165 § 1 pkt 4, art. 267 § 3, art. 268a § 1 albo § 2 w związku z § 1, art. 269 § 1 lub 2 albo art. 269a, a także hasła komputerowe, kody dostępu lub inne dane umożliwiające nieuprawniony dostęp do informacji przechowywanych w systemie informatycznym, systemie teleinformatycznym lub sieci teleinformatycznej, podlega karze pozbawienia wolności od 3 miesięcy do lat 5.

Art. 269b § 1a

Nie popełnia przestępstwa określonego w § 1, kto działa wyłącznie w celu zabezpieczenia systemu informatycznego, systemu teleinformatycznego lub sieci teleinformatycznej przed popełnieniem przestępstwa wymienionego w tym przepisie albo opracowania metody takiego zabezpieczenia.

Art. 269b § 2

W razie skazania sprawcy za przestępstwo określone w § 1, sąd orzeka przepadek określonych w nim przedmiotów, a może orzec ich przepadek, jeżeli nie stanowiły własności sprawcy.

Zobacz też

Literatura

Przypisy

  1. ↑ Leksykon terminów medialnych: A-L, Toruń: Wydawnictwo Adam Marszałek, 2024, s. 114, ISBN 978-83-8180-650-3.
  2. ↑ Jakub Zemánek, Cracking bez tajemnic : wszystko, co kiedykolwiek chciałeś wiedzieć o crackingu, Gliwice: Helion, 2004, ISBN 83-7361-444-3, OCLC 749394144.
  3. ↑ RFC 1983: Internet Users' Glossary. RFC Editor, 1996-08. [dostęp 2026-09-08]. (ang.).
  4. 1 2 Przestępczość komputerowa. Zintegrowana Platforma Edukacyjna. [dostęp 2026-09-08]. (pol.).
  5. 1 2 3 Andrzej Kmiecik, Postawy etyczne hakera i krakera [online], 2003 [dostęp 2026-09-08] (pol.). W: Marek Sokołowski (red.), Media i edukacja w globalizującym się świecie, Olsztyn 2003, s. 462–469.
  6. ↑ Pavol Červeň, Crackproof your software : the best ways to protect your software against crackers, San Francisco: No Starch Press, 2002, ISBN 1-59327-022-4, OCLC 70747001 [dostęp 2022-09-02].

Linki zewnętrzne