Злом програмного забезпеченняЗлом програмного забезпечення (англ. software cracking) — дії, спрямовані на усунення захисту програмного забезпечення (ПЗ), вбудованої розробниками для обмеження функціональних можливостей. Останнє необхідно для стимуляції покупки такого пропрієтарного ПЗ, після якої обмеження знімаються. Крек (також спотворене кряк і, вкрай рідко, крак) (англ. crack) — програма, що дозволяє здійснити злом програмного забезпечення. Як правило, крек придатний для масового використання. По суті, крек є втіленням одного з видів злому, найчастіше, це звичайний патч. Для слова тріщина використовуються такі евфемізми: «ліки», «таблетка», «аспірин» і т. п.[1] Крекер (також спотворене крякер) (англ. cracker) — людина, яка займається створенням креків. Види зломуПрактично будь-який злом зводиться до використання одного з наступних способів:
При зломі складних захистів, а також при необхідності досягти максимального ефекту, застосовується комбінація перерахованих вище способів. В окремих випадках це відбувається при недостатній кваліфікації зломщика. Цей список не є вичерпним, а лише позначає найбільш розповсюдженні способи злому. Вид злому, в більшості випадків, обумовлений видом захисту. Для деяких захистів можливо використовувати різні види злому, для інших — спосіб може бути єдиним. Принципи зломуЯк правило, в основі роботи крекера лежить дослідження асемблерного коду, отриманого з машинних інструкцій з допомогою спеціально призначеної для цієї програми-дизассемблера. В залежності від обраного способу злому, результат дослідження може використовуватися, наприклад, для побудови генератора ключів або для внесення необхідних змін в виконуваний файл. Останній спосіб в більшості випадків найбільш легкий, так як не вимагає вивчення алгоритму перевірки правильності ключа: злом найчастіше зводиться до пошуку перевірки кількох умов (на зразок «Введене Число дорівнює Еталонному Числу?») і заміні такої умови на безумовний перехід (goto, jmp), або, рідше, на протилежне (тобто для даного прикладу на «Введене Число не дорівнює Еталонному Числу?»). Крім того, внесення змін в виконуваний файл (патч) може проводитися з метою відключення небажаних дій з боку програми (наприклад, нагадування про необхідність реєстрації), скорочення функціональності програми. У цих випадках, часто, відповідні команди процесора замінюються на байти зі значенням 90h (у шістнадцятковій системі числення), що відповідає ассемблерной команді nop (No Operation), тобто «порожній команді», яка не виконує ніяких дій. Якщо таких команд багато, то застосовується безумовний перехід (перестрибування непотрібного коду). Можливо також розширення можливостей програми написанням додаткового коду, але, як правило, це дуже трудомісткий процес, який не виправдовує тимчасових витрат. Між тим, патч можливий, як правило, у тому разі, коли виконуваний файл програми не захищений спеціальними «пакерами» і «протекторами» — програмами, які приховують реальний код виконуваного файлу. Для останнього типу програм часто використовується найбільш інтелектуальна частина зворотної розробки (англ. reverse engineering) — дослідження коду програми за допомогою відладчика і створення генератора ключів, але можливі й інші рішення, наприклад, створення завантажувача (див. вище). Правові аспекти діяльностіФакт злому дуже важко довести: угода, як правило, забороняє декомпіляцію програми, а закон — створення і поширення результату такої роботи. Однак, декомпільований текст продукту по закінченні роботи легко знищити, а результат роботи — поширити по захищених каналах і викласти на сервері, який хоститься в країні з більш ліберальними законами. У поширенні крекерам допомагають і файлообмінні мережі, оскільки в більшості з них вкрай важко знайти оригінальне джерело файлу, а знищити всі копії і зовсім неможливо. Див. також
Посилання
Примітки
|
Portal di Ensiklopedia Dunia