Злом програмного забезпечення (англ. software cracking) — дії, спрямовані на усунення захисту програмного забезпечення (ПЗ), вбудованої розробниками для обмеження функціональних можливостей. Останнє необхідно для стимуляції покупки такого пропрієтарного ПЗ, після якої обмеження знімаються.
Крек (також спотворене кряк і, вкрай рідко, крак) (англ. crack) — програма, що дозволяє здійснити злом програмного забезпечення. Як правило, крек придатний для масового використання. По суті, крек є втіленням одного з видів злому, найчастіше, це звичайний патч. Для слова тріщина використовуються такі евфемізми: «ліки», «таблетка», «аспірин» і т. п.Крекер (також спотворене крякер) (англ. cracker) — людина, яка займається створенням креків.
Види злому
Практично будь-який злом зводиться до використання одного з наступних способів:
- Введення серійного номера (реєстраційного коду) (жарг. серійник) (англ. serial number, S/n) — злом програми за допомогою введення правильного реєстраційного ключа (або фрази), отриманого нелегальним способом. Ключ може генеруватися на основі будь-якої інформації (імені власника ПЗ, характеристик апаратної частини комп'ютера, і т. ін.), або мати фіксоване значення. Для генерації реєстраційного ключа використовується той же алгоритм, що і в програмі.
- Примітка1: Реєстраційний код може поширюватися в ключовому файлі (файл ліцензії)(англ. keyfile), який зазвичай поміщається в каталог з встановленою програмою.
- Примітка2: Для масового злому, найчастіше, створюється (і в подальшому використовується) генератор ключів (жарг. кейген) (англ. keygen скор. від key generator) — програма для генерації реєстраційних ключів (див. вище). Даний вид злому найбільш затребуваний (особливо, коли програма часто оновлюється або рег. Ключ генерується на основі якоїсь інформації (див. Вище)) і тому найбільш цінується. Як правило, вимагає більшої кваліфікації зломщика в порівнянні з іншими видами злому, але не завжди.
- Використання завантажувача (жарг. лоадер) (англ. loader) — спосіб обходити деякі види захисту ПЗ, полягають у використанні зовнішніх (навісних) систем захисту. Полягає у зміні певних фрагментів програми в оперативній пам'яті відразу після її завантаження в цю пам'ять, але перед її запуском (тобто перед виконанням коду в точці входу).
- Використання (бінарного) патчу (часто жарг. крек або кряк от англ. crack) (англ. byte patch) — спосіб, схожий на «завантажувач», але модифікація виробляється статично в файлах програми. Як правило, це один з найпростіших і швидких способів злому ПЗ.
- Використання зламаної версії файлу(ів) (англ. cracked) — спосіб полягає в підміні оригінальних файлів програми файлами, які вже зламані.
- Використання емулятора ключа (англ. key emulator) — спосіб використовується для обману захистів, побудованих на використанні в якості захисту електронного ключа (як правило, підключається до LPT або USB порту комп'ютера). Полягає в знятті дампу внутрішньої пам'яті ключа. Файл з вмістом цієї пам'яті подається на вхід спеціальною програмою — емулятора, яка підключає свій драйвер-фільтр в стек драйверів і обманює захищену програму, емулюючи роботу з апаратним ключем. У випадках наявності в програмі звернень до ключу для апаратного шифрування ділянки пам'яті цей метод використовується в зв'язці з методом Бінарний патч.
- Підміна офіційного сайту програм і / або відповідну зміну налаштувань з метою обійти перевірку ключа, якщо вона була винесена розробниками на будь-якої інтернет-ресурс (В абсолютній більшості випадків — для запобігання злому, рідше — для обліку і ведення статистики, збору відомостей). Найчастіше здійснюється на примітивному рівні шляхом модифікування файлу hosts і запуску різних емуляторів, іноді — використання різних програм (Денвер) або використання реально існуючого вебресурсу.
- Заборона доступу програмі до інтернету полягає в комплексі дій, спрямованих на здійснення примусової заборони доступу програми до інтернету. Виконується в тих випадках, коли програма вимагає активації ліцензійного ключа через інтернет (як правило, офіційний сайт розробника), або у випадках, коли програма зв'язується з сервером розробника для обміну даними або поновлення. Як правило, встановлюється спеціальна утиліта, яка блокує доступ програми в мережу інтернет. Ця дія, зазвичай, проводиться після введення ключа, згенерованого кейгеном.
При зломі складних захистів, а також при необхідності досягти максимального ефекту, застосовується комбінація перерахованих вище способів. В окремих випадках це відбувається при недостатній кваліфікації зломщика.
Цей список не є вичерпним, а лише позначає найбільш розповсюдженні способи злому.
Вид злому, в більшості випадків, обумовлений видом захисту. Для деяких захистів можливо використовувати різні види злому, для інших — спосіб може бути єдиним.
Принципи злому
Як правило, в основі роботи крекера лежить дослідження асемблерного коду, отриманого з машинних інструкцій з допомогою спеціально призначеної для цієї програми-дизассемблера. В залежності від обраного способу злому, результат дослідження може використовуватися, наприклад, для побудови генератора ключів або для внесення необхідних змін в виконуваний файл. Останній спосіб в більшості випадків найбільш легкий, так як не вимагає вивчення алгоритму перевірки правильності ключа: злом найчастіше зводиться до пошуку перевірки кількох умов (на зразок «Введене Число дорівнює Еталонному Числу?») і заміні такої умови на безумовний перехід (goto, jmp), або, рідше, на протилежне (тобто для даного прикладу на «Введене Число не дорівнює Еталонному Числу?»).
Крім того, внесення змін в виконуваний файл (патч) може проводитися з метою відключення небажаних дій з боку програми (наприклад, нагадування про необхідність реєстрації), скорочення функціональності програми. У цих випадках, часто, відповідні команди процесора замінюються на байти зі значенням 90h (у шістнадцятковій системі числення), що відповідає ассемблерной команді nop (No Operation), тобто «порожній команді», яка не виконує ніяких дій. Якщо таких команд багато, то застосовується безумовний перехід (перестрибування непотрібного коду). Можливо також розширення можливостей програми написанням додаткового коду, але, як правило, це дуже трудомісткий процес, який не виправдовує тимчасових витрат.
Між тим, патч можливий, як правило, у тому разі, коли виконуваний файл програми не захищений спеціальними «пакерами» і «протекторами» — програмами, які приховують реальний код виконуваного файлу. Для останнього типу програм часто використовується найбільш інтелектуальна частина зворотної розробки (англ. reverse engineering) — дослідження коду програми за допомогою відладчика і створення генератора ключів, але можливі й інші рішення, наприклад, створення завантажувача (див. вище).
Правові аспекти діяльності
Факт злому дуже важко довести: угода, як правило, забороняє декомпіляцію програми, а закон — створення і поширення результату такої роботи. Однак, декомпільований текст продукту по закінченні роботи легко знищити, а результат роботи — поширити по захищених каналах і викласти на сервері, який хоститься в країні з більш ліберальними законами. У поширенні крекерам допомагають і файлообмінні мережі, оскільки в більшості з них вкрай важко знайти оригінальне джерело файлу, а знищити всі копії і зовсім неможливо.
Див. також
Посилання
- Середа С. А.
- Середа С. А.
- Розділ «Захист програмного забезпечення» на CITForum.ru [ 6 квітня 2018 у Wayback Machine.]
- Портал дослідження захисту програм [ 11 червня 2022 у Wayback Machine.]
Примітки
- Хайдарова В. Ф. {{{Заголовок}}}. — 1000 прим. — .
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Zlom programnogo zabezpechennya angl software cracking diyi spryamovani na usunennya zahistu programnogo zabezpechennya PZ vbudovanoyi rozrobnikami dlya obmezhennya funkcionalnih mozhlivostej Ostannye neobhidno dlya stimulyaciyi pokupki takogo propriyetarnogo PZ pislya yakoyi obmezhennya znimayutsya Krek takozh spotvorene kryak i vkraj ridko krak angl crack programa sho dozvolyaye zdijsniti zlom programnogo zabezpechennya Yak pravilo krek pridatnij dlya masovogo vikoristannya Po suti krek ye vtilennyam odnogo z vidiv zlomu najchastishe ce zvichajnij patch Dlya slova trishina vikoristovuyutsya taki evfemizmi liki tabletka aspirin i t p Kreker takozh spotvorene kryaker angl cracker lyudina yaka zajmayetsya stvorennyam krekiv Vidi zlomuPraktichno bud yakij zlom zvoditsya do vikoristannya odnogo z nastupnih sposobiv Vvedennya serijnogo nomera reyestracijnogo kodu zharg serijnik angl serial number S n zlom programi za dopomogoyu vvedennya pravilnogo reyestracijnogo klyucha abo frazi otrimanogo nelegalnim sposobom Klyuch mozhe generuvatisya na osnovi bud yakoyi informaciyi imeni vlasnika PZ harakteristik aparatnoyi chastini komp yutera i t in abo mati fiksovane znachennya Dlya generaciyi reyestracijnogo klyucha vikoristovuyetsya toj zhe algoritm sho i v programi Primitka1 Reyestracijnij kod mozhe poshiryuvatisya v klyuchovomu fajli fajl licenziyi angl keyfile yakij zazvichaj pomishayetsya v katalog z vstanovlenoyu programoyu Primitka2 Dlya masovogo zlomu najchastishe stvoryuyetsya i v podalshomu vikoristovuyetsya generator klyuchiv zharg kejgen angl keygen skor vid key generator programa dlya generaciyi reyestracijnih klyuchiv div vishe Danij vid zlomu najbilsh zatrebuvanij osoblivo koli programa chasto onovlyuyetsya abo reg Klyuch generuyetsya na osnovi yakoyis informaciyi div Vishe i tomu najbilsh cinuyetsya Yak pravilo vimagaye bilshoyi kvalifikaciyi zlomshika v porivnyanni z inshimi vidami zlomu ale ne zavzhdi Vikoristannya zavantazhuvacha zharg loader angl loader sposib obhoditi deyaki vidi zahistu PZ polyagayut u vikoristanni zovnishnih navisnih sistem zahistu Polyagaye u zmini pevnih fragmentiv programi v operativnij pam yati vidrazu pislya yiyi zavantazhennya v cyu pam yat ale pered yiyi zapuskom tobto pered vikonannyam kodu v tochci vhodu Vikoristannya binarnogo patchu chasto zharg krek abo kryak ot angl crack angl byte patch sposib shozhij na zavantazhuvach ale modifikaciya viroblyayetsya statichno v fajlah programi Yak pravilo ce odin z najprostishih i shvidkih sposobiv zlomu PZ Vikoristannya zlamanoyi versiyi fajlu iv angl cracked sposib polyagaye v pidmini originalnih fajliv programi fajlami yaki vzhe zlamani Vikoristannya emulyatora klyucha angl key emulator sposib vikoristovuyetsya dlya obmanu zahistiv pobudovanih na vikoristanni v yakosti zahistu elektronnogo klyucha yak pravilo pidklyuchayetsya do LPT abo USB portu komp yutera Polyagaye v znyatti dampu vnutrishnoyi pam yati klyucha Fajl z vmistom ciyeyi pam yati podayetsya na vhid specialnoyu programoyu emulyatora yaka pidklyuchaye svij drajver filtr v stek drajveriv i obmanyuye zahishenu programu emulyuyuchi robotu z aparatnim klyuchem U vipadkah nayavnosti v programi zvernen do klyuchu dlya aparatnogo shifruvannya dilyanki pam yati cej metod vikoristovuyetsya v zv yazci z metodom Binarnij patch Pidmina oficijnogo sajtu program i abo vidpovidnu zminu nalashtuvan z metoyu obijti perevirku klyucha yaksho vona bula vinesena rozrobnikami na bud yakoyi internet resurs V absolyutnij bilshosti vipadkiv dlya zapobigannya zlomu ridshe dlya obliku i vedennya statistiki zboru vidomostej Najchastishe zdijsnyuyetsya na primitivnomu rivni shlyahom modifikuvannya fajlu hosts i zapusku riznih emulyatoriv inodi vikoristannya riznih program Denver abo vikoristannya realno isnuyuchogo vebresursu Zaborona dostupu programi do internetu polyagaye v kompleksi dij spryamovanih na zdijsnennya primusovoyi zaboroni dostupu programi do internetu Vikonuyetsya v tih vipadkah koli programa vimagaye aktivaciyi licenzijnogo klyucha cherez internet yak pravilo oficijnij sajt rozrobnika abo u vipadkah koli programa zv yazuyetsya z serverom rozrobnika dlya obminu danimi abo ponovlennya Yak pravilo vstanovlyuyetsya specialna utilita yaka blokuye dostup programi v merezhu internet Cya diya zazvichaj provoditsya pislya vvedennya klyucha zgenerovanogo kejgenom Pri zlomi skladnih zahistiv a takozh pri neobhidnosti dosyagti maksimalnogo efektu zastosovuyetsya kombinaciya pererahovanih vishe sposobiv V okremih vipadkah ce vidbuvayetsya pri nedostatnij kvalifikaciyi zlomshika Cej spisok ne ye vicherpnim a lishe poznachaye najbilsh rozpovsyudzhenni sposobi zlomu Vid zlomu v bilshosti vipadkiv obumovlenij vidom zahistu Dlya deyakih zahistiv mozhlivo vikoristovuvati rizni vidi zlomu dlya inshih sposib mozhe buti yedinim Principi zlomuYak pravilo v osnovi roboti krekera lezhit doslidzhennya asemblernogo kodu otrimanogo z mashinnih instrukcij z dopomogoyu specialno priznachenoyi dlya ciyeyi programi dizassemblera V zalezhnosti vid obranogo sposobu zlomu rezultat doslidzhennya mozhe vikoristovuvatisya napriklad dlya pobudovi generatora klyuchiv abo dlya vnesennya neobhidnih zmin v vikonuvanij fajl Ostannij sposib v bilshosti vipadkiv najbilsh legkij tak yak ne vimagaye vivchennya algoritmu perevirki pravilnosti klyucha zlom najchastishe zvoditsya do poshuku perevirki kilkoh umov na zrazok Vvedene Chislo dorivnyuye Etalonnomu Chislu i zamini takoyi umovi na bezumovnij perehid goto jmp abo ridshe na protilezhne tobto dlya danogo prikladu na Vvedene Chislo ne dorivnyuye Etalonnomu Chislu Krim togo vnesennya zmin v vikonuvanij fajl patch mozhe provoditisya z metoyu vidklyuchennya nebazhanih dij z boku programi napriklad nagaduvannya pro neobhidnist reyestraciyi skorochennya funkcionalnosti programi U cih vipadkah chasto vidpovidni komandi procesora zaminyuyutsya na bajti zi znachennyam 90h u shistnadcyatkovij sistemi chislennya sho vidpovidaye assemblernoj komandi nop No Operation tobto porozhnij komandi yaka ne vikonuye niyakih dij Yaksho takih komand bagato to zastosovuyetsya bezumovnij perehid perestribuvannya nepotribnogo kodu Mozhlivo takozh rozshirennya mozhlivostej programi napisannyam dodatkovogo kodu ale yak pravilo ce duzhe trudomistkij proces yakij ne vipravdovuye timchasovih vitrat Mizh tim patch mozhlivij yak pravilo u tomu razi koli vikonuvanij fajl programi ne zahishenij specialnimi pakerami i protektorami programami yaki prihovuyut realnij kod vikonuvanogo fajlu Dlya ostannogo tipu program chasto vikoristovuyetsya najbilsh intelektualna chastina zvorotnoyi rozrobki angl reverse engineering doslidzhennya kodu programi za dopomogoyu vidladchika i stvorennya generatora klyuchiv ale mozhlivi j inshi rishennya napriklad stvorennya zavantazhuvacha div vishe Pravovi aspekti diyalnostiFakt zlomu duzhe vazhko dovesti ugoda yak pravilo zaboronyaye dekompilyaciyu programi a zakon stvorennya i poshirennya rezultatu takoyi roboti Odnak dekompilovanij tekst produktu po zakinchenni roboti legko znishiti a rezultat roboti poshiriti po zahishenih kanalah i viklasti na serveri yakij hostitsya v krayini z bilsh liberalnimi zakonami U poshirenni krekeram dopomagayut i fajloobminni merezhi oskilki v bilshosti z nih vkraj vazhko znajti originalne dzherelo fajlu a znishiti vsi kopiyi i zovsim nemozhlivo Div takozhZvorotna rozrobka Dizassembler Vidladchik Zahist programnogo zabezpechennya Porushennya avtorskogo prava VarezPosilannyaSereda S A Sereda S A Rozdil Zahist programnogo zabezpechennya na CITForum ru 6 kvitnya 2018 u Wayback Machine Portal doslidzhennya zahistu program 11 chervnya 2022 u Wayback Machine PrimitkiHajdarova V F Zagolovok 1000 prim ISBN 978 5 9765 1187 3