Як зламати програму?
Проблема захисту програм від злому в даний час набирає все більшу популярність. Найчастіше програмне забезпечення захищають кодом, який повідомляється користувачеві після реєстрації.
До активації програма може мати обмежений термін використання, може бути заповненою дратівливою рекламою, в ній можуть бути відключені потрібні функції.
При активації програмного забезпечення користувачеві видається код, при введенні якого відбувається його звірка і, якщо він коректний, надається доступ з усіма необхідними функціями.
Найчастіше захист для програм розробляється засновниками одноманітно, що дозволяє їх зламати за лічені хвилини. Ця стаття створена виключно в просвітницьких цілях і злом програм проводити не рекомендується.
Зараз ви дізнаєтеся про часто використовуваних способах злому зловмисниками, щоб почати ефективно боротися з несанкціонованим доступом до програм і вдосконалити систему захисту. Стаття 159.6 Кримінального кодексу Російської Федерації передбачає максимальний термін покарання до 10 років позбавлення волі за шахрайство в сфері комп`ютерної інформації.
способи злому
Для злому програм на .Net на даний момент передбачено три дуже простих способи, доступних навіть новачкам-хакерам з використанням загальнодоступних безкоштовних програмних інструментів таких, як Reflector `. Для прикладу візьмемо будь-яку програму, в ліцензії якої не міститься вказівок про злом, але потрібна реєстрація і дається можливість використання демо-періоду.
Прикладом такого сайту служить Espresso, що надає безкоштовний доступ без реєстрації на 60 днів після установки. Треба відзначити, що програми на .Net є код, написаний мовою Delfi.NER, С #, F # або Visual Basic, і який компілювати в MSIL або IL. Тому неправильно в цьому випадку застосовувати поняття декомпіляцію програмного забезпечення, так як прога знаходиться у відкритому доступі, а такі програми, як Reflector `здатні підвищити читабельність коду, перетворюючи MSIL згідно конструкції мов F #, C # та інших.
обнулення тріалу
Одним з варіантів швидкого злому є обнулення тріалу, яке складно назвати зломом, так як метод являє собою збільшення демо-періоду програми, яка ще не зареєстрована офіційно.
- Знаходимо місце зберігання дати інсталяції програми.
- Змінюємо її або видаляємо.
На прикладі Espresso:
- За допомогою Reflector переглядаємо код.
- У конструкторі MainForm знаходимо рядок this.ExpressoKey = @ «Software Ultrapico Expresso».
- Відкривши редактор реєстру, заходимо в HKEY_CURRENT_USERSoftwareUltrapicoExpresso і шукаємо ключі, що містять інформацію про дату першого запуску програми.
- Видаляємо їх.
Тепер термін дії програми вдалося продовжити ще на 60 днів!
написання keygen`а
- Відкриваємо Reflector `і шукаємо код, що містить класи Registration або License. Наприклад, код Expresso виглядає так: Public bool IsValid (string UserName, string RegistrationCode)
- При введенні UserName і Соde, по імені відбувається обчислення хеш, який в подальшому порівнюється з кодом. Public string ComputeCode (string UserName). Цей хеш використовує префікси і DES.
- Відкриваємо IDE, копіюємо всі необхідні елементи-коди.
З`ясувавши значення у Prefix, Suffix, параметри реалізації MyDES, можна в кінцевому підсумку згенерувати ключ під будь-який заданий ім`я.
Використання врапперов
Використання врапперов служить третім варіантом злому. Так як перевірка ліцензії дуже проблематична і займає купу часу, засновники програм перевіряють ліцензію всього 1 раз, а потім встановлюють прапорець - правильна вона чи ні. Цей момент може використовуватися при зломі, досить вказати програмному забезпеченню, що перевірка ліцензії вже проводилася або що вона правильна. Для зломщиків тут існують деякі складності, так як програмне забезпечення декомпілюються в MSIL, а потім збирається назад.
Для проведення процесу декомпіляцію потрібно утиліта ildasm з SDK, а в якості компілятора використовується Framework ilasm. При даному способі оригінальний підпис замінюється на підпис зломщика, в результаті чого можуть виникнути проблеми при роботі з бібліотеками, адже їх необхідно буде розбирати, а потім знову збирати. Але зате в результаті отримуємо безкоштовну програму з власним ключем.
На прикладі Expresso видно, що якщо програма вже зареєстрована, то вона не перевіряє коректність ліцензії, цим і можна скористатися. Для цього необхідно створити новий проект, додати Reference на Expresso.exe і запустити його через себе. Як захист від зломщиків розробникам рекомендується перевіряти ліцензію дещо частіше, так вдасться запобігти можливості установки непотрібних змінних.
рекомендації
- На підставі запропонованої інформації можна ефективно боротися з несанкціонованим доступом і зломом програм зловмисниками, створити більш ефективну систему захисту.
- Робимо висновок, що програми на .NET дуже просто зламати, якщо розробник не був досить обережний. Питання про доцільність витрат часу і ресурсів на захист програмного забезпечення вирішувати тільки творцям.
- Як альтернативний варіант варто розглянути можливість створення web-системи або безкоштовної версії програми з обмеженими функціями.