Кіріспе

Бағдарламалық жасақтаманы өзгерту, көбінесе оны тегін пайдалану үшін.

Бағдарламалық жасақтаманы бұзу (1980-ші жылдары көбінесе "брейкинг" деп аталған) – бағдарламалық жасақтамадан авторлық құқықты қорғауды жою әрекеті. Бұзудың мысалдары: түзетулерді қолдану немесе кері инженерия арқылы жасалған тізбек нөмірлерін (кейгендер) құру, осылайша бағдарламаны тіркеуден және төлемдерден қашып құтылуға немесе бағдарламаның сынақ/демо нұсқасын толыққанды жұмыс істейтін нұсқаға айналдыру. Бағдарламалық жасақтаманы бұзу онлайн-пираттықтың кеңеюіне әкеледі, онда пираттық бағдарламалар соңғы пайдаланушыларға таратылады. Жүктеуші (loader) бағдарламаның басталу процесін өзгертеді, қорғанысты жоймайды, бірақ оны айналып өтеді. Ойын ішінде алдау үшін қолданылатын трейнерлер жүктеушінің кең таралған мысалы. Fairlight өздерінің NFO файлдарының бірінде осындай бұзулар warez сахнасының ойын шығарылымдарында рұқсат етілмейтінін көрсетті. Ядролық соғыс (nukewar) көрсеткендей, қорғаныс жарамды бұзу үшін ешқашан іске қосылмауы мүмкін. Бағдарламалық жасақтаманы бұзу кері инженериямен тығыз байланысты, себебі авторлық құқықты қорғау технологиясына шабуыл жасау процесі кері инженерия процесіне ұқсас. Белгілі бір жағдайларда бұзылған бағдарламаларды пайдалану заңды болуы мүмкін. Кері инженерия және бағдарламалық жасақтаманы бұзу бойынша оқу ресурстары заңды және Crackme бағдарламалары түрінде қолжетімді.

Тарих

Бағдарламалық құралдар жасау өте қымбат, бірақ көшіру және тарату арзан. Сондықтан бағдарламалық құрал өндірушілер оны нарыққа шығару алдында көшірмеден қорғаудың бір түрін енгізуге тырысты. 1984 жылы бағдарламалық қамтамасыз етуді қорғау компаниясы Formaster-дың бағдарламалық қамтамасыз етуді дамыту бөлімінің басшысы Лэйн Хантсман: «Кез келген қорғау жүйесін тапқыр бағдарламашылар бірнеше айдан астам уақытқа бұза алмайды» деді. 2001 жылы Райс университетінің профессоры Дэн С. Уоллах: «Көшірмеден қорғауды айналып өтуге бейілділер әрқашан оны іске асырудың жолын тапты – және әрқашан табады» деді. Бастапқы бағдарламалық құралдарды бұзушылар көбінесе компьютер хоббишілері болды, олар бағдарламалық құралды бұзып, таратуда бір-бірімен бәсекелесетін топтар құрды. Жаңа көшірмеден қорғау схемасын мүмкіндігінше жылдам бұзу, ақша табу мүмкіндігінен гөрі, техникалық басымдығын көрсету мүмкіндігі ретінде қарастырылды. Бағдарламалық құралдарды бұзушылар әдетте өз әрекеттерінен материалдық пайда көре алмады және олардың мотивациясы қорғанысты жоюдың өзі болды. Техникалық бәсекелестік бұзудың қиындықтарынан визуалды түрде әсерлі интроларды жасаудың қиындықтарына дейін кеңейгеннен кейін, демосцен деп аталатын жаңа субмәдениеттің негізі қаланды. Demoscene 1990-шы жылдары заңсыз «warez сахнасынан» бөлініп шыға бастады және қазір мүлдем басқа субмәдениет ретінде қарастырылады. Көптеген бағдарламалық құралдарды бұзушылар кейін өте қабілетті бағдарламалық құралдарды кері инженерияға айналды. Қорғанысты бұзу үшін қажетті құрастыру туралы терең білім оларға Windows үшін тек бинарлық драйверлерден Linux және басқа да ашық операциялық жүйелер үшін бастапқы коды бар драйверлерге порттау үшін драйверлерді кері инженерия жасауға мүмкіндік берді. Сондай-ақ, музыка мен ойынның кіріспесі ойынның ажырамас бөлігі болғандықтан, музыка форматы мен графика үй пайдаланушысы үшін қолжетімді болған кезде өте танымал болды. Интернет пайда болғаннан кейін бағдарламалық құралдарды бұзушылар құпия онлайн ұйымдар құрды. 1990-шы жылдардың соңында «бағдарламалық қорғанысты кері инженериялау» туралы ақпараттың ең беделді көздерінің бірі Fravia веб-сайты болды. 2017 жылы бағдарламалық құралдарды бұзушылар тобы Apple II бағдарламалық құралын Apple II-нің көшірмеден қорғауын алып тастау арқылы сақтау жобасын бастады.

+ HCU

Жоғары Крейкинг Университеті (+HCU) Реверс Код Инженериясы (RCE) саласындағы зерттеулерді дамыту мақсатымен, кері инженерия шебері және RCE-нің легендарлы тұлғасы саналатын Ескі Қызыл Крейкер (+ORC) құрған. Ол сонымен қатар бұл тақырып бойынша көптеген еңбектер оқытып, жазған, ал оның мәтіндері саладағы классика болып есептеледі және RCE студенттері үшін міндетті оқу материалы болып табылады. +HCU жыл сайын жаңа кері инженериялық есеп жариялап, ең жақсы жауап бергендердің шағын тобы университетте бакалаврлық позицияға ие болатын. Бүгінде +HCU түлектерінің көпшілігі Linux-қа көшкен, ал қалғандары Windows-ты кері инженериялаумен айналысып келеді. Университеттегі ақпаратты RCE саласындағы жаңа буын зерттеушілер мен тәжірибелі мамандар қайта ашты және жаңа ғылыми жобаларды бастады. Бағдарламалық қамтамасыздыруды бұзушылар OllyDbg, GDB немесе MacsBug құралдарын қолданып, бағдарламаны қорғаудың негізгі әдісі сақталған кіші бағдарламаға жеткенше (немесе IDA сияқты бағдарламамен орындалатын файлды талдау арқылы) іздейді. Содан кейін екілік файлды дебьюгер немесе HIEW немесе монитор сияқты гекса-редакторды пайдаланып өзгертіді, бұрынғы тармақталу опкодын оның толықтырғышымен немесе NOP опкодымен алмастырады, осылайша негізгі тармақ белгілі бір кіші бағдарламаны әрқашан орындайды немесе оны өткіріп жібереді. Көптеген бағдарламалық жасақтамалардың бұзылулары осы типтің вариациялары болып табылады. Кодтың ішке кірмеуі керек бөлігін "жаман бала" деп, ал орындалуы керек бөлігін "жақсы бала" деп атайды. Бағдарламалық жасақтаманы жасаушылар екілік кодты өзгертуді қиындату үшін кодты жасыру, шифрлау және өзін-өзі өзгерту коды сияқты әдістерді үздіксіз жетілдіріп келеді. Осы шаралар қабылданғанмен, бағдарлама жасаушылар бағдарламалық жасақтаманы бұзумен күресуде. Себебі, кәсіби маман үшін қарапайым бұзылған EXE немесе Retrium Installer-ді жалпыға қолжетімді жүктеуге жариялау жиі кездеседі, бұл тәжірибесіз пайдаланушылардың бағдарламалық жасақтаманы өздері бұзу қажеттілігін жояды. Бұл техниканың нақты мысалы – қолданбаның уақыт бойынша шектеулі сынақ нұсқасынан мерзімдік шектеуді алып тастайтын бұзу. Бұл бұзулар әдетте бағдарламаның орындалатын файлын өзгертетін бағдарламалар болып табылады, кейде DLL немесе қолданбамен байланысты файлдарды және бастапқы екілік файлдарды өзгерту процесі "жамау" деп аталады. Дәл осындай бұзулар аппараттық донглді қажет ететін бағдарламалық жасақтама үшін де қолжетімді. Компания заңды түрде сатып алынған, бірақ белгілі бір аппараттық құралға лицензияланған бағдарламалардың көшірмелерін қорғауды бұзуға болады, осылайша аппараттық ақаулықтан туындаған жұмыстың тоқтауының қаупі болмайды (әрине, бағдарламаны тек сатып алынған аппараттық құралда ғана пайдаланумен шектелудің қажеті жоқ). Тағы бір әдіс – CloneCD сияқты арнайы бағдарламалық жасақтаманы пайдаланып, коммерциялық көшірмеден қорғау бағдарламасын анықтау. Қолданбаны қорғау үшін пайдаланылған бағдарламалық жасақтаманы анықтағаннан кейін, CD немесе DVD-дегі бағдарламалық жасақтамадан көшірмеден қорғауды жою үшін басқа құрал қолданылуы мүмкін. Бұл Alcohol 120%, CloneDVD, Game Jackal немесе Daemon Tools сияқты басқа бағдарламаларға қорғалған бағдарламаны пайдаланушының қатты дискісіне көшіруге мүмкіндік береді. Көшірмеден қорғауды анықтауға болатын танымал коммерциялық қосымшаларға SafeDisc және StarForce кіреді. Кейде бағдарламаны бастапқы бастапқы кодқа немесе машиналық кодтан жоғары деңгейдегі кодқа қол жеткізу үшін декомпиляциялау мүмкін болады. Бұл көбінесе скрипт тілдерімен және JIT компиляциясын пайдаланатын тілдермен мүмкін. Мысалы, NET платформасында CIL-ді өз қажеттіліктеріне сәйкес өңдеуге болатын бұзу (немесе жөндеу). Java-ның байт-коды да осыған ұқсас жұмыс істейді, онда бағдарлама платформаға тәуелді машиналық кодқа компиляцияланбастан бұрын аралық тіл бар. SecuROM, SafeDisc, StarForce немесе Denuvo сияқты қорғанысқа қарсы озық кері инженерияға крекер немесе көптеген крекерлер қорғанысты зерттеуге көп уақыт жұмсауы керек, содан кейін қорғаныс кодындағы барлық кемшіліктерді тауып, қорғанысты орындалатын (.EXE) және кітапхана (.DLL) файлдарынан автоматты түрде ажырату үшін өз құралдарын жасайды. Интернетте көптеген сайттар бар, олар пайдаланушыларға танымал ойындар мен қосымшалар үшін warez топтары жасаған бұзуларды жүктеуге мүмкіндік береді (бірақ мұндай сайттар арқылы таралатын зиянды бағдарламалық жасақтаманы алу қаупі бар). Бұл бұзулар бағдарламалық жасақтаманың заңды сатып алушылары тарапынан қолданылса да, оларды заңсыз көшірмелерді жүктеген немесе басқа жолмен алған адамдар да пайдалана алады (көбінесе P2P желілері арқылы).

Бағдарламалық жасақтамалардың пираттығы

Бағдарламалық жасақтаманы бұзу бүкіл әлемде пираттық бағдарламалық жасақтаманың таралуына әкелді (бағдарламалық жасақтама пираттығы). 1996 жылы АҚШ бизнес-қолданбалы бағдарламалық жасақтамадан 2,3 миллиард АҚШ долларына шығын келтірді деп есептелді. Бағдарламалық жасақтаманың пираттық деңгейі Африка, Азия, Шығыс Еуропа және Латын Америка елдерінде ерекше жоғары болды. Индонезия, Пәкістан, Кувейт, Қытай және Сальвадор сияқты елдерде қолданылатын бағдарламалық жасақтаманың 90 пайызы пираттық еді.